Sfoglia il codice sorgente

:bug: sorting tables before seed insert & inserting in batches

tags/0.0.1^2
juancarbajal98 3 anni fa
parent
commit
7b2b8c87b9
3 ha cambiato i file con 43 aggiunte e 31 eliminazioni
  1. 15
    11
      backend/db/seeds/01-users.js
  2. 14
    10
      backend/db/seeds/02-profiles.js
  3. 14
    10
      backend/db/seeds/04-responses.js

+ 15
- 11
backend/db/seeds/01-users.js Vedi File

@@ -10,15 +10,19 @@ for (let name of fileNames) {
10 10
         users = [...users, ...data.users]
11 11
     }
12 12
 }
13
+// sort data
14
+users = users.sort((a,b)=>{ return a.user_id < b.user_id })
13 15
 
14
-exports.seed = knex => {
15
-    // Deletes ALL existing entries
16
-    return knex('users')
17
-        .truncate()
18
-        .then(function () {
19
-            // Inserts seed entries
20
-            return users
21
-                ? knex('users').insert(users)
22
-                : knex('users').insert(mock.users)
23
-        })
24
-}
16
+exports.seed = async knex => {
17
+    await knex('users').del()
18
+    let usersToPush = []
19
+    let len = users.length
20
+    for (let i = 1; i <= len; i += 1) {
21
+        usersToPush.push(users.shift())
22
+        if (i % 500 === 0) {
23
+            await knex('users').insert(usersToPush)
24
+            usersToPush = []
25
+        }
26
+        
27
+    }
28
+}

+ 14
- 10
backend/db/seeds/02-profiles.js Vedi File

@@ -10,15 +10,19 @@ for (let name of fileNames) {
10 10
         profiles = [...profiles, ...data.profiles]
11 11
     }
12 12
 }
13
+// sort data
14
+profiles = profiles.sort((a,b)=>{ return a.profile_id < b.profile_id })
13 15
 
14
-exports.seed = knex => {
15
-    // Deletes ALL existing entries
16
-    return knex('profiles')
17
-        .truncate()
18
-        .then(function () {
19
-            // Inserts seed entries
20
-            return profiles
21
-                ? knex('profiles').insert(profiles)
22
-                : knex('profiles').insert(mock.profiles)
23
-        })
16
+
17
+exports.seed = async knex => {
18
+    await knex('profiles').del()
19
+    let profilesToPush = []
20
+    let len = profiles.length
21
+    for (let i = 1; i <= len; i += 1) {
22
+        profilesToPush.push(profiles.shift())
23
+        if (i % 500 === 0 || i > profiles.length) {
24
+            await knex('profiles').insert(profilesToPush)
25
+            profilesToPush = []
26
+        }
27
+    }
24 28
 }

+ 14
- 10
backend/db/seeds/04-responses.js Vedi File

@@ -11,14 +11,18 @@ for (let name of fileNames) {
11 11
     }
12 12
 }
13 13
 
14
-exports.seed = knex => {
15
-    // Deletes ALL existing entries
16
-    return knex('responses')
17
-        .truncate()
18
-        .then(function () {
19
-            // Inserts seed entries
20
-            return responses
21
-                ? knex('responses').insert(responses)
22
-                : knex('responses').insert(mock.responses)
23
-        })
14
+// sort data
15
+responses = responses.sort((a,b)=>{ return a.response_id < b.response_id })
16
+
17
+exports.seed = async knex => {
18
+    await knex('responses').del()
19
+    let responsesToPush = []
20
+    let len = responses.length
21
+    for (let i = 1; i <= len; i += 1) {
22
+        responsesToPush.push(responses.shift())
23
+        if (i % 500 === 0 || i > responses.length) {
24
+            await knex('responses').insert(responsesToPush)
25
+            responsesToPush = []
26
+        }
27
+    }
24 28
 }

Loading…
Annulla
Salva