You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

002_signups_addColumn_not_attending.js 1.5KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. const readline = require('readline')
  2. const process = require('process')
  3. exports.up = function (knex) {
  4. return knex.schema.hasColumn('signups', 'absent').then(absent => {
  5. if (!absent) {
  6. const r1 = readline.createInterface({
  7. input: process.stdin,
  8. output: process.stdout
  9. })
  10. return new Promise((res, rej) => {
  11. return knex.schema.dropTable('signups').then(_ => {
  12. return knex.schema.createTable('signups', function (table) {
  13. table.increments('id').primary()
  14. table.unique(['raidid', 'characterid'])
  15. table.integer('raidid')
  16. table.foreign('raidid').references('id').inTable('raids').onDelete('CASCADE')
  17. table.integer('characterid')
  18. table.foreign('characterid').references('id').inTable('characters').onDelete('CASCADE')
  19. table.boolean('benched').defaultTo('false')
  20. table.boolean('late')
  21. table.boolean('absent').defaultTo(false)
  22. table.timestamp('timestamp').defaultTo(knex.fn.now())
  23. table.string('memo').nullable()
  24. res()
  25. }).catch(rej)
  26. })
  27. })
  28. }
  29. })
  30. }
  31. exports.down = function (knex) {
  32. return knex.schema.table('signups', function (table) {
  33. table.dropColumn('absent')
  34. })
  35. }