mirror of
https://github.com/immich-app/immich.git
synced 2026-05-18 03:10:24 +03:00
fix copy race
This commit is contained in:
@@ -394,8 +394,9 @@ export class WriteBuffer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async copyInsert(tableName: string, rows: InsertRow[]) {
|
private async copyInsert(tableName: string, rows: InsertRow[]) {
|
||||||
const writable = await this
|
const conn = await this.pgPool.reserve();
|
||||||
.pgPool`COPY ${this.pgPool(tableName)} (code, data, priority, "runAfter") FROM STDIN WITH (FORMAT csv)`.writable();
|
try {
|
||||||
|
const writable = await conn`COPY ${conn(tableName)} (code, data, priority, "runAfter") FROM STDIN WITH (FORMAT csv)`.writable();
|
||||||
const now = new Date().toISOString();
|
const now = new Date().toISOString();
|
||||||
for (const row of rows) {
|
for (const row of rows) {
|
||||||
const data = row.data != null ? csvEscape(JSON.stringify(row.data)) : '';
|
const data = row.data != null ? csvEscape(JSON.stringify(row.data)) : '';
|
||||||
@@ -408,6 +409,9 @@ export class WriteBuffer {
|
|||||||
writable.on('finish', resolve);
|
writable.on('finish', resolve);
|
||||||
writable.on('error', reject);
|
writable.on('error', reject);
|
||||||
});
|
});
|
||||||
|
} finally {
|
||||||
|
conn.release();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private insertChunk(tableName: string, rows: InsertRow[]) {
|
private insertChunk(tableName: string, rows: InsertRow[]) {
|
||||||
|
|||||||
Reference in New Issue
Block a user