add knexfile and first migration file for timeslots table
This commit is contained in:
parent
e52c9b5493
commit
fee7f1a266
4 changed files with 65 additions and 61 deletions
63
README.md
63
README.md
|
@ -21,64 +21,5 @@ install pg MacOS -
|
|||
|
||||
knex for migration files
|
||||
npx knex migrate:make create_addresses_table
|
||||
npx knex migrate:latest
|
||||
npx knex migrate:rollback
|
||||
|
||||
npx knex seed:make 01_addresses
|
||||
npx knex seed:run
|
||||
|
||||
npx knex migrate:make create_addresses_table
|
||||
npx knex migrate:latest
|
||||
npx knex migrate:rollback
|
||||
|
||||
npx knex seed:make 01_addresses
|
||||
npx knex seed:run
|
||||
|
||||
npx knex migrate:make create_addresses_table
|
||||
npx knex migrate:latest
|
||||
npx knex migrate:rollback
|
||||
|
||||
npx knex seed:make 01_addresses
|
||||
npx knex seed:run
|
||||
|
||||
npx knex migrate:make create_addresses_table
|
||||
npx knex migrate:latest
|
||||
npx knex migrate:rollback
|
||||
|
||||
npx knex seed:make 01_addresses
|
||||
npx knex seed:run
|
||||
|
||||
npx knex migrate:make create_addresses_table
|
||||
npx knex migrate:latest
|
||||
npx knex migrate:rollback
|
||||
|
||||
npx knex seed:make 01_addresses
|
||||
npx knex seed:run
|
||||
|
||||
npx knex migrate:make create_addresses_table
|
||||
npx knex migrate:latest
|
||||
npx knex migrate:rollback
|
||||
|
||||
npx knex seed:make 01_addresses
|
||||
npx knex seed:run
|
||||
|
||||
npx knex migrate:make create_addresses_table
|
||||
npx knex migrate:latest
|
||||
npx knex migrate:rollback
|
||||
|
||||
npx knex seed:make 01_addresses
|
||||
npx knex seed:run
|
||||
|
||||
npx knex migrate:make create_addresses_table
|
||||
npx knex migrate:latest
|
||||
npx knex migrate:rollback
|
||||
|
||||
npx knex seed:make 01_addresses
|
||||
npx knex seed:run
|
||||
|
||||
npx knex migrate:make create_addresses_table
|
||||
npx knex migrate:latest
|
||||
npx knex migrate:rollback
|
||||
|
||||
npx knex seed:make 01_addresses
|
||||
npx knex seed:run
|
||||
npx knex migrate:latest --env development
|
||||
npx knex migrate:rollback --env development
|
20
knexfile.js
Normal file
20
knexfile.js
Normal file
|
@ -0,0 +1,20 @@
|
|||
|
||||
const env = require('dotenv').config();
|
||||
|
||||
|
||||
module.exports = {
|
||||
development: {
|
||||
client: 'postgresql',
|
||||
connection: {
|
||||
database: env.parsed.PGDATABASENAME,
|
||||
user: env.parsed.PGUSER,
|
||||
password: env.parsed.PGPASSWORD
|
||||
},
|
||||
migrations: {
|
||||
directory: './src/migrations'
|
||||
},
|
||||
seeds: {
|
||||
directory: './src/seeds'
|
||||
}
|
||||
}
|
||||
}
|
13
src/migrations/20230424234230_create_timeslots_table.js
Normal file
13
src/migrations/20230424234230_create_timeslots_table.js
Normal file
|
@ -0,0 +1,13 @@
|
|||
exports.up = function(knex) {
|
||||
return knex.schema.createTable('timeslots', function(table) {
|
||||
table.increments('id').primary();
|
||||
table.timestamp('start_time').notNullable();
|
||||
table.timestamp('end_time').notNullable();
|
||||
table.boolean('is_reserved').notNullable().defaultTo(false);
|
||||
table.timestamps(true, true);
|
||||
});
|
||||
};
|
||||
|
||||
exports.down = function(knex) {
|
||||
return knex.schema.dropTable('timeslots');
|
||||
};
|
30
src/seed/load-data.js
Normal file
30
src/seed/load-data.js
Normal file
|
@ -0,0 +1,30 @@
|
|||
exports.seed = async function(knex) {
|
||||
// Delete all existing data from the tables
|
||||
// check is table exists first
|
||||
const hasTable = await knex.schema.hasTable('timeslots');
|
||||
if (hasTable) {
|
||||
await knex('timeslots').del();
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Load data from the JSON files
|
||||
const holidays = require('../data/holidays.json');
|
||||
const timeslots = require('../data/timeslots.json');
|
||||
|
||||
// Insert the holiday dates into the holidays table
|
||||
for (const date of holidays) {
|
||||
await knex('holidays').insert({ date });
|
||||
}
|
||||
|
||||
// Insert the time slots into the timeslots table
|
||||
for (const { date, slots } of timeslots) {
|
||||
for (const slot of slots) {
|
||||
await knex('timeslots').insert({
|
||||
date,
|
||||
start_time: slot.start_time,
|
||||
end_time: slot.end_time
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
Loading…
Reference in a new issue