Kaynağa Gözat

Merge branch 'seed-batching-fix' of fyindr/siimee into dev

tags/0.0.1^2
maeda 3 yıl önce
ebeveyn
işleme
c6071c46a3

+ 3
- 0
backend/db/dataSort.js Dosyayı Görüntüle

@@ -0,0 +1,3 @@
1
+const dataSort = (table, id) => { return table.sort((a,b) => {return a[`${id}`] < b[`${id}`]})}
2
+
3
+module.exports = dataSort

+ 17
- 11
backend/db/seeds/01-users.js Dosyayı Görüntüle

@@ -1,5 +1,7 @@
1 1
 const mock = require('../data-generator/mock')
2 2
 const fs = require('fs')
3
+const dataSort = require ('../dataSort')
4
+const { batchSize } = require('../data-generator/config.json')
3 5
 
4 6
 let users = []
5 7
 const generatedDataPath = './db/generated'
@@ -10,15 +12,19 @@ for (let name of fileNames) {
10 12
         users = [...users, ...data.users]
11 13
     }
12 14
 }
15
+// sort data
16
+users = dataSort(users, 'user_id')
13 17
 
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
-}
18
+exports.seed = async knex => {
19
+    await knex('users').del()
20
+    let usersToPush = []
21
+    let len = users.length
22
+    for (let i = 1; i <= len; i += 1) {
23
+        usersToPush.push(users.shift())
24
+        if (i % batchSize === 0) {
25
+            await knex('users').insert(usersToPush)
26
+            usersToPush = []
27
+        }
28
+        
29
+    }
30
+}

+ 17
- 10
backend/db/seeds/02-profiles.js Dosyayı Görüntüle

@@ -1,5 +1,8 @@
1 1
 const mock = require('../data-generator/mock')
2 2
 const fs = require('fs')
3
+const dataSort = require ('../dataSort')
4
+const { batchSize } = require('../data-generator/config.json')
5
+
3 6
 
4 7
 let profiles = []
5 8
 const generatedDataPath = './db/generated'
@@ -10,15 +13,19 @@ for (let name of fileNames) {
10 13
         profiles = [...profiles, ...data.profiles]
11 14
     }
12 15
 }
16
+// sort data
17
+profiles = dataSort(profiles, 'profile_id')
18
+
13 19
 
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
-        })
20
+exports.seed = async knex => {
21
+    await knex('profiles').del()
22
+    let profilesToPush = []
23
+    let len = profiles.length
24
+    for (let i = 1; i <= len; i += 1) {
25
+        profilesToPush.push(profiles.shift())
26
+        if (i % batchSize === 0 || i > profiles.length) {
27
+            await knex('profiles').insert(profilesToPush)
28
+            profilesToPush = []
29
+        }
30
+    }
24 31
 }

+ 16
- 10
backend/db/seeds/04-responses.js Dosyayı Görüntüle

@@ -1,5 +1,7 @@
1 1
 const mock = require('../data-generator/mock')
2 2
 const fs = require('fs')
3
+const dataSort = require ('../dataSort')
4
+const { batchSize } = require('../data-generator/config.json')
3 5
 
4 6
 let responses = []
5 7
 const generatedDataPath = './db/generated'
@@ -11,14 +13,18 @@ for (let name of fileNames) {
11 13
     }
12 14
 }
13 15
 
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
-        })
16
+// sort data
17
+responses = dataSort(responses, 'response_id')
18
+
19
+exports.seed = async knex => {
20
+    await knex('responses').del()
21
+    let responsesToPush = []
22
+    let len = responses.length
23
+    for (let i = 1; i <= len; i += 1) {
24
+        responsesToPush.push(responses.shift())
25
+        if (i % batchSize === 0 || i > responses.length) {
26
+            await knex('responses').insert(responsesToPush)
27
+            responsesToPush = []
28
+        }
29
+    }
24 30
 }

Loading…
İptal
Kaydet