Jelajahi Sumber

execute create index queries in splitted lines to support mysql

Pouria Ezzati 1 tahun lalu
induk
melakukan
324b8ca175
1 mengubah file dengan 21 tambahan dan 20 penghapusan
  1. 21 20
      server/migrations/20241223062111_indexes.js

+ 21 - 20
server/migrations/20241223062111_indexes.js

@@ -16,16 +16,17 @@ async function up(knex) {
   // using MySQL you should make sure you don't have these indexes already 
   const ifNotExists = isMySQL ? "" : "IF NOT EXISTS";
 
-  await knex.raw(`
-    CREATE INDEX ${ifNotExists} links_domain_id_index ON links (domain_id);
-    CREATE INDEX ${ifNotExists} links_user_id_index ON links (user_id);
-    CREATE INDEX ${ifNotExists} links_address_index ON links (address);
-    CREATE INDEX ${ifNotExists} links_expire_in_index ON links (expire_in);
-    CREATE INDEX ${ifNotExists} domains_address_index ON domains (address);
-    CREATE INDEX ${ifNotExists} domains_user_id_index ON domains (user_id);
-    CREATE INDEX ${ifNotExists} hosts_address_index ON hosts (address);
-    CREATE INDEX ${ifNotExists} visits_link_id_index ON visits (link_id);
-  `);
+  // create them separately because one string with break lines didn't work on MySQL
+  await Promise.all([
+    knex.raw(`CREATE INDEX ${ifNotExists} links_domain_id_index ON links (domain_id);`),
+    knex.raw(`CREATE INDEX ${ifNotExists} links_user_id_index ON links (user_id);`),
+    knex.raw(`CREATE INDEX ${ifNotExists} links_address_index ON links (address);`),
+    knex.raw(`CREATE INDEX ${ifNotExists} links_expire_in_index ON links (expire_in);`),
+    knex.raw(`CREATE INDEX ${ifNotExists} domains_address_index ON domains (address);`),
+    knex.raw(`CREATE INDEX ${ifNotExists} domains_user_id_index ON domains (user_id);`),
+    knex.raw(`CREATE INDEX ${ifNotExists} hosts_address_index ON hosts (address);`),
+    knex.raw(`CREATE INDEX ${ifNotExists} visits_link_id_index ON visits (link_id);`),
+  ]);
 };
 
 /**
@@ -37,16 +38,16 @@ async function down(knex) {
     table.dropUnique(["apikey"]);
   });
 
-  await knex.raw(`
-    DROP INDEX links_domain_id_index;
-    DROP INDEX links_user_id_index;
-    DROP INDEX links_address_index;
-    DROP INDEX links_expire_in_index;
-    DROP INDEX domains_address_index;
-    DROP INDEX domains_user_id_index;
-    DROP INDEX hosts_address_index;
-    DROP INDEX visits_link_id_index;
-  `);
+  await Promise.all([
+    knex.raw(`DROP INDEX links_domain_id_index;`),
+    knex.raw(`DROP INDEX links_user_id_index;`),
+    knex.raw(`DROP INDEX links_address_index;`),
+    knex.raw(`DROP INDEX links_expire_in_index;`),
+    knex.raw(`DROP INDEX domains_address_index;`),
+    knex.raw(`DROP INDEX domains_user_id_index;`),
+    knex.raw(`DROP INDEX hosts_address_index;`),
+    knex.raw(`DROP INDEX visits_link_id_index;`),
+  ]);
 };
 
 module.exports = {