20200211220920_constraints.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. const models = require("../models");
  2. async function up(knex) {
  3. await models.createUserTable(knex);
  4. await models.createIPTable(knex);
  5. await models.createDomainTable(knex);
  6. await models.createHostTable(knex);
  7. await models.createLinkTable(knex);
  8. await models.createVisitTable(knex);
  9. await Promise.all([
  10. knex.schema.alterTable('domains', (table) => {
  11. table.dropForeign('ignored', 'domains_user_id_foreign');
  12. table.foreign('user_id')
  13. .references('id')
  14. .inTable('users')
  15. .onDelete('SET NULL')
  16. .withKeyName('domains_user_id_foreign');
  17. }),
  18. knex.schema.alterTable('links', (table) => {
  19. table.dropForeign('ignored', 'links_user_id_foreign');
  20. table.foreign('user_id')
  21. .references('id')
  22. .inTable('users')
  23. .onDelete('CASCADE')
  24. .withKeyName('links_user_id_foreign');
  25. }),
  26. knex.schema.alterTable('visits', (table) => {
  27. table.dropForeign('ignored', 'visits_link_id_foreign');
  28. table.foreign('link_Id')
  29. .references('id')
  30. .inTable('links')
  31. .onDelete('CASCADE')
  32. .withKeyName('visits_link_id_foreign');
  33. }),
  34. ]);
  35. }
  36. async function down() {
  37. // do nothing
  38. }
  39. module.exports = {
  40. up,
  41. down
  42. }