Эх сурвалжийг харах

fix migrations by moving constraints to models

Pouria Ezzati 1 жил өмнө
parent
commit
3655260a16

+ 0 - 27
server/migrations/20200211220920_constraints.js

@@ -7,33 +7,6 @@ async function up(knex) {
   await models.createHostTable(knex);
   await models.createLinkTable(knex);
   await models.createVisitTable(knex);
-
-  await Promise.all([
-    knex.schema.alterTable('domains', (table) => {
-      table.dropForeign('ignored', 'domains_user_id_foreign');
-      table.foreign('user_id')
-        .references('id')
-        .inTable('users')
-        .onDelete('SET NULL')
-        .withKeyName('domains_user_id_foreign');
-    }),
-    knex.schema.alterTable('links', (table) => {
-      table.dropForeign('ignored', 'links_user_id_foreign');
-      table.foreign('user_id')
-        .references('id')
-        .inTable('users')
-        .onDelete('CASCADE')
-        .withKeyName('links_user_id_foreign');
-    }),
-    knex.schema.alterTable('visits', (table) => {
-      table.dropForeign('ignored', 'visits_link_id_foreign');
-      table.foreign('link_id')
-        .references('id')
-        .inTable('links')
-        .onDelete('CASCADE')
-        .withKeyName('visits_link_id_foreign');
-    }),
-  ]);
 }
 
 async function down() {

+ 6 - 2
server/models/domain.model.js

@@ -17,15 +17,19 @@ async function createDomainTable(knex) {
         .notNullable();
       table.string("homepage").nullable();
       table
-        .integer("user_id")
+        .integer("user_id");
+      table
+        .foreign("user_id")
         .references("id")
         .inTable("users")
-        .onDelete("SET NULL");
+        .onDelete("SET NULL")
+        .withKeyName("domains_user_id_foreign");
       table
         .uuid("uuid")
         .notNullable()
         .defaultTo(knex.fn.uuid());
       table.timestamps(false, true);
+      
     });
   }
 }

+ 5 - 2
server/models/link.model.js

@@ -22,10 +22,13 @@ async function createLinkTable(knex) {
       table.dateTime("expire_in");
       table.string("target", 2040).notNullable();
       table
-        .integer("user_id")
+        .integer("user_id");
+      table
+        .foreign("user_id")
         .references("id")
         .inTable("users")
-        .onDelete("CASCADE");
+        .onDelete("CASCADE")
+        .withKeyName("links_user_id_foreign");
       table
         .integer("visit_count")
         .notNullable()

+ 5 - 3
server/models/visit.model.js

@@ -10,11 +10,13 @@ async function createVisitTable(knex) {
         .defaultTo(knex.fn.now());
       table.dateTime("updated_at").defaultTo(knex.fn.now());
       table
-        .integer("link_id")
+        .integer("link_id");
+      table
+        .foreign("link_id")
         .references("id")
         .inTable("links")
-        .notNullable()
-        .onDelete("CASCADE");
+        .onDelete("CASCADE")
+        .withKeyName("visits_link_id_foreign");
       table.jsonb("referrers").defaultTo("{}");
       table
         .integer("total")