first commit
This commit is contained in:
BIN
data/database_file.db3
Normal file
BIN
data/database_file.db3
Normal file
Binary file not shown.
7
data/dbConfig.js
Normal file
7
data/dbConfig.js
Normal file
@@ -0,0 +1,7 @@
|
||||
|
||||
const knex = require('knex');
|
||||
const config = require('../knexfile');
|
||||
|
||||
const environment = 'development';
|
||||
|
||||
module.exports = knex(config[environment]);
|
||||
13
data/migrations/20200207155645_countries.js
Normal file
13
data/migrations/20200207155645_countries.js
Normal 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');
|
||||
};
|
||||
20
data/migrations/20200207160031_cities.js
Normal file
20
data/migrations/20200207160031_cities.js
Normal 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');
|
||||
};
|
||||
|
||||
32
data/migrations/20200207160304_roads.js
Normal file
32
data/migrations/20200207160304_roads.js
Normal 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');
|
||||
};
|
||||
12
data/seeds/01-countries.js
Normal file
12
data/seeds/01-countries.js
Normal file
@@ -0,0 +1,12 @@
|
||||
|
||||
exports.seed = function(knex) {
|
||||
return knex('countries').truncate()
|
||||
.then(function () {
|
||||
return knex('countries').insert([
|
||||
{
|
||||
id: 1,
|
||||
name: 'Belgium',
|
||||
}
|
||||
]);
|
||||
});
|
||||
};
|
||||
59
data/seeds/02-cities.js
Normal file
59
data/seeds/02-cities.js
Normal file
@@ -0,0 +1,59 @@
|
||||
|
||||
exports.seed = function(knex) {
|
||||
return knex('cities').truncate()
|
||||
.then(function () {
|
||||
return knex('cities').insert([
|
||||
{
|
||||
"id": 1,
|
||||
"name": 'bruges',
|
||||
"country_id": 1
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": 'antwerp',
|
||||
"country_id": 1
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": 'ghent',
|
||||
"country_id": 1
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": 'mechelen',
|
||||
"country_id": 1
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"name": 'brussels',
|
||||
"country_id": 1
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"name": 'mons',
|
||||
"country_id": 1
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"name": 'namur',
|
||||
"country_id": 1
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"name": 'liege',
|
||||
"country_id": 1
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"name": 'arlon',
|
||||
"country_id": 1
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"name": 'tournai',
|
||||
"country_id": 1
|
||||
},
|
||||
|
||||
]);
|
||||
});
|
||||
};
|
||||
92
data/seeds/03-roads.js
Normal file
92
data/seeds/03-roads.js
Normal file
@@ -0,0 +1,92 @@
|
||||
|
||||
exports.seed = function(knex) {
|
||||
return knex('roads').truncate()
|
||||
.then(function () {
|
||||
return knex('roads').insert([
|
||||
{
|
||||
"id": 1,
|
||||
"start_city_id": 1,
|
||||
"end_city_id": 3,
|
||||
"distance": 50
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"start_city_id": 3,
|
||||
"end_city_id": 10,
|
||||
"distance": 80
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"start_city_id": 10,
|
||||
"end_city_id": 5,
|
||||
"distance": 89
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"start_city_id": 3,
|
||||
"end_city_id": 5,
|
||||
"distance": 56
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"start_city_id": 3,
|
||||
"end_city_id": 2,
|
||||
"distance": 60
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"start_city_id": 2,
|
||||
"end_city_id": 4,
|
||||
"distance": 25
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"start_city_id": 4,
|
||||
"end_city_id": 5,
|
||||
"distance": 27
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"start_city_id": 5,
|
||||
"end_city_id": 6,
|
||||
"distance": 80
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"start_city_id": 6,
|
||||
"end_city_id": 7,
|
||||
"distance": 91
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"start_city_id": 6,
|
||||
"end_city_id": 10,
|
||||
"distance": 51
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"start_city_id": 7,
|
||||
"end_city_id": 9,
|
||||
"distance": 129
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"start_city_id": 9,
|
||||
"end_city_id": 7,
|
||||
"distance": 123
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"start_city_id": 8,
|
||||
"end_city_id": 7,
|
||||
"distance": 65
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"start_city_id": 8,
|
||||
"end_city_id": 5,
|
||||
"distance": 97
|
||||
}
|
||||
]);
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user