Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

000_signups_addColumn_memo_timestamp.js 1.7KB

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