| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- const readline = require('readline')
- const process = require('process')
-
- exports.up = function (knex) {
- return knex.schema.hasColumn('signups', 'tmestamp').then(hasTimestamp => {
- return knex.schema.hasColumn('signups', 'memo').then(hasMemo => {
- if (!hasTimestamp || !hasMemo) {
-
- const r1 = readline.createInterface({
- input: process.stdin,
- output: process.stdout
- })
- return new Promise((res, rej) => {
- r1.question('WARNING\n\nAbout to update your signups table. Please make sure there are no active signups. \nContinue? y/N', answer => {
- if(!answer || answer === "" || answer === "n" || answer === "N"){
- rej(new Error("User aborted"))
- }else{
- knex('signups').select('*').then(rows => {
- return knex.schema.dropTable('signups').then(_ => {
- return knex.schema.createTable('signups', function (table) {
- table.increments('id').primary()
- table.unique(['raidid', 'characterid'])
- table.integer('raidid')
- table.foreign('raidid').references('id').inTable('raids').onDelete('CASCADE')
- table.integer('characterid')
- table.foreign('characterid').references('id').inTable('characters').onDelete('CASCADE')
- table.boolean('benched').defaultTo('false')
- table.boolean('late')
- table.timestamp('timestamp').defaultTo(knex.fn.now())
- table.string('memo').nullable()
- res()
- }).catch(rej)
- })
- })
- }
- })
- })
- }
- })
- })
- }
-
-
- exports.down = function (knex, Promise) {
- return knex.schema.table('signups', function (table) {
- table.dropColumn('timestamp')
- table.dropColumn('memo')
- })
- }
|