20190227065017_settings.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. const migrate_name = 'settings';
  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('setting', (table) => {
  15. table.string('id').notNull().primary();
  16. table.string('name', 100).notNull();
  17. table.string('description', 255).notNull();
  18. table.string('value', 255).notNull();
  19. table.json('meta').notNull();
  20. })
  21. .then(() => {
  22. logger.info('[' + migrate_name + '] setting Table created');
  23. // TODO: add settings
  24. let settingModel = require('../models/setting');
  25. return settingModel
  26. .query()
  27. .insert({
  28. id: 'default-site',
  29. name: 'Default Site',
  30. description: 'What to show when Nginx is hit with an unknown Host',
  31. value: 'congratulations',
  32. meta: {}
  33. });
  34. })
  35. .then(() => {
  36. logger.info('[' + migrate_name + '] Default settings added');
  37. });
  38. };
  39. /**
  40. * Undo Migrate
  41. *
  42. * @param {Object} knex
  43. * @param {Promise} Promise
  44. * @returns {Promise}
  45. */
  46. exports.down = function (knex, Promise) {
  47. logger.warn('[' + migrate_name + '] You can\'t migrate down the initial data.');
  48. return Promise.resolve(true);
  49. };