sleep-tracker-backend/data/migrations/01-createUsersSessionsAndDailyAveragesTables.js
ruihildt 77a4c28757 Fix dailyAverages query on session update & test
- Add dailyAverages seeds
- Start implementing testing
2019-08-02 01:18:56 +02:00

79 lines
1.3 KiB
JavaScript

exports.up = function(knex) {
return knex.schema
.createTable('users', tbl => {
tbl
.increments();
tbl
.string('email')
.notNullable()
.unique();
tbl
.string('username')
.notNullable()
.unique();
tbl
.string('password')
.notNullable();
})
.createTable('sessions', tbl => {
tbl
.increments();
tbl
.integer('user_id')
.unsigned()
.notNullable()
.references('users.id')
.onUpdate('CASCADE')
.onDelete('CASCADE');
tbl
.datetime('bed_time')
.notNullable();
tbl
.datetime('wake_time');
tbl
.integer('wake_mood')
.unsigned();
tbl
.integer('day_mood')
.unsigned();
tbl
.integer('bed_tiredness')
.unsigned();
})
.createTable('dailyAverages', tbl => {
tbl
.increments();
tbl
.integer('session_id')
.unsigned()
.notNullable()
.references('sessions.id')
.unique()
.onUpdate('CASCADE')
.onDelete('CASCADE');
tbl
.integer('user_id')
.unsigned()
.notNullable()
.references('users.id')
.onUpdate('CASCADE')
.onDelete('CASCADE');
tbl
.integer('sleep_duration')
.unsigned();
tbl
.float('average_mood');
});
};
exports.down = function(knex) {
return knex.schema
.dropTableIfExists('dailyAverages')
.dropTableIfExists('sessions')
.dropTableIfExists('users');
};