first commit

This commit is contained in:
2020-02-07 17:55:43 +01:00
commit 06b2078e4d
18 changed files with 2818 additions and 0 deletions

View File

@@ -0,0 +1,13 @@
exports.up = function(knex, Promise) {
return knex.schema.createTable('countries', function(countries) {
countries.increments();
countries
.string('name', 128)
.notNullable()
.unique();
});
};
exports.down = function(knex, Promise) {
return knex.schema.dropTableIfExists('countries');
};

View File

@@ -0,0 +1,20 @@
exports.up = function(knex) {
return knex.schema.createTable('cities', function(cities) {
cities.increments();
cities.string('name', 128).notNullable();
cities
.integer('country_id')
.unsigned()
.notNullable()
.references('id')
.inTable('countries')
.onDelete('CASCADE')
.onUpdate('CASCADE');
});
};
exports.down = function(knex) {
return knex.schema.dropTableIfExists('cities');
};

View File

@@ -0,0 +1,32 @@
exports.up = function(knex) {
return knex.schema.createTable('roads', function(roads) {
roads.increments();
roads
.integer('start_city_id')
.unsigned()
.notNullable()
.references('id')
.inTable('cities')
.onDelete('CASCADE')
.onUpdate('CASCADE');
roads
.integer('end_city_id')
.unsigned()
.notNullable()
.references('id')
.inTable('cities')
.onDelete('CASCADE')
.onUpdate('CASCADE');
roads
.integer('distance')
.unsigned()
.notNullable()
});
};
exports.down = function(knex) {
return knex.schema.dropTableIfExists('roads');
};