20200211220920_constraints.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { Knex } from "knex";
  2. import * as models from "../models";
  3. export async function up(knex: Knex): Promise<any> {
  4. await models.createUserTable(knex);
  5. await models.createIPTable(knex);
  6. await models.createDomainTable(knex);
  7. await models.createHostTable(knex);
  8. await models.createLinkTable(knex);
  9. await models.createVisitTable(knex);
  10. await Promise.all([
  11. knex.raw(`
  12. ALTER TABLE domains
  13. DROP CONSTRAINT domains_user_id_foreign,
  14. ADD CONSTRAINT domains_user_id_foreign
  15. FOREIGN KEY (user_id)
  16. REFERENCES users (id)
  17. ON DELETE SET NULL;
  18. `),
  19. knex.raw(`
  20. ALTER TABLE links
  21. DROP CONSTRAINT links_user_id_foreign,
  22. ADD CONSTRAINT links_user_id_foreign
  23. FOREIGN KEY (user_id)
  24. REFERENCES users (id)
  25. ON DELETE CASCADE;
  26. `),
  27. knex.raw(`
  28. ALTER TABLE visits
  29. DROP CONSTRAINT visits_link_id_foreign,
  30. ADD CONSTRAINT visits_link_id_foreign
  31. FOREIGN KEY (link_Id)
  32. REFERENCES links (id)
  33. ON DELETE CASCADE;
  34. `)
  35. ]);
  36. }
  37. export async function down(): Promise<any> {
  38. // do nothing
  39. }