search
This commit is contained in:
50
migrate.ts
Normal file
50
migrate.ts
Normal file
@@ -0,0 +1,50 @@
|
||||
import { createReadStream } from "node:fs";
|
||||
import { createInterface } from "node:readline/promises";
|
||||
|
||||
import { Paragraph, PrismaClient } from "@prisma/client";
|
||||
|
||||
import { prismaClient } from "./lib/db";
|
||||
|
||||
const client = new PrismaClient();
|
||||
|
||||
async function processLineByLine() {
|
||||
await prismaClient.$executeRaw`delete from Paragraph`;
|
||||
const fileStream = createReadStream("../paragraph.json");
|
||||
|
||||
const rl = createInterface({
|
||||
input: fileStream,
|
||||
crlfDelay: Infinity,
|
||||
});
|
||||
|
||||
let idx = 1;
|
||||
|
||||
let submitData: Paragraph[] = [];
|
||||
|
||||
for await (const line of rl) {
|
||||
const data = JSON.parse(line);
|
||||
idx++;
|
||||
submitData.push({
|
||||
id: data.id,
|
||||
content: data.content,
|
||||
cover: data.cover,
|
||||
title: data.title,
|
||||
tags: data.tags.join(","),
|
||||
author: data.author,
|
||||
markdown: data.markdown,
|
||||
time: new Date(data.time.$date),
|
||||
});
|
||||
if (idx % 1000 === 0) {
|
||||
console.log(idx);
|
||||
await client.paragraph.createMany({
|
||||
data: submitData,
|
||||
});
|
||||
submitData = [];
|
||||
}
|
||||
}
|
||||
|
||||
await client.paragraph.createMany({
|
||||
data: submitData,
|
||||
});
|
||||
}
|
||||
|
||||
processLineByLine();
|
||||
Reference in New Issue
Block a user