20211010141200_ssl_passthrough_host.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. const migrate_name = 'ssl_passthrough_host';
  2. const logger = require('../logger').migrate;
  3. /**
  4. * Migrate
  5. *
  6. * @see http://knexjs.org/#Schema
  7. *
  8. * @param {Object} knex
  9. * @param {Promise} Promise
  10. * @returns {Promise}
  11. */
  12. exports.up = function (knex/*, Promise*/) {
  13. logger.info('[' + migrate_name + '] Migrating Up...');
  14. return knex.schema.createTable('ssl_passthrough_host', (table) => {
  15. table.increments().primary();
  16. table.dateTime('created_on').notNull();
  17. table.dateTime('modified_on').notNull();
  18. table.integer('owner_user_id').notNull().unsigned();
  19. table.integer('is_deleted').notNull().unsigned().defaultTo(0);
  20. table.string('domain_name').notNull();
  21. table.string('forwarding_host').notNull();
  22. table.integer('forwarding_port').notNull().unsigned();
  23. table.integer('enabled').notNull().unsigned().defaultTo(1);
  24. table.json('meta').notNull();
  25. }).then(() => {
  26. logger.info('[' + migrate_name + '] Table created');
  27. })
  28. .then(() => {
  29. return knex.schema.table('user_permission', (table) => {
  30. table.string('ssl_passthrough_hosts').notNull();
  31. })
  32. .then(() => {
  33. return knex('user_permission').update('ssl_passthrough_hosts', knex.ref('streams'));
  34. })
  35. .then(() => {
  36. return knex.schema.alterTable('user_permission', (table) => {
  37. table.string('ssl_passthrough_hosts').notNullable().alter();
  38. });
  39. })
  40. .then(() => {
  41. logger.info('[' + migrate_name + '] permissions updated');
  42. });
  43. })
  44. ;
  45. };
  46. /**
  47. * Undo Migrate
  48. *
  49. * @param {Object} knex
  50. * @param {Promise} Promise
  51. * @returns {Promise}
  52. */
  53. exports.down = function (knex/*, Promise*/) {
  54. logger.info('[' + migrate_name + '] Migrating Down...');
  55. return knex.schema.dropTable('stream').then(() => {
  56. return knex.schema.table('user_permission', (table) => {
  57. table.dropColumn('ssl_passthrough_hosts');
  58. })
  59. })
  60. .then(function () {
  61. logger.info('[' + migrate_name + '] Table altered and permissions updated');
  62. });
  63. };