Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
const SelectQuery = `select
metrics.id as metric_id,
uploads.id as upload_id,
(metrics.meta->>'image_id')::uuid as image_id,
(regexp_split_to_array(uploads.upload_url, '\\?'::text))[1] as url
from metrics
join uploads on uploads.upload_url like concat('%', metrics.meta ->> 'image_id', '%')
where
metrics.meta -> 'image_id' IS NOT NULL
and uploads.status = 'success'
and not exists(
select classification_roots.metric_id
from classification_roots
where classification_roots.metric_id = metrics.id
)
limit 20;`
const InsertQuery = `insert into
classification_roots(metric_id, upload_id, image_id, url)
${ SelectQuery }
`
async function main() {
const { sequelize } = require('database/models')
let totalCount = 0
let lastCount = 0
do {
const [_, inserted] = await sequelize.query(InsertQuery, { raw: true })
lastCount = inserted
totalCount += inserted
console.log("Inserted %d entries", lastCount)
await new Promise(r => setTimeout(r, 250))
} while (lastCount > 0)
console.log("Created %d New Roots", totalCount)
process.exit(0)
}
main()