feat(db): перевести хранилище с SQLite на PostgreSQL
Docker images / prepare-release (push) Successful in 12s
Docker images / backend-test (push) Successful in 4m9s
Docker images / frontend-image (push) Successful in 4m28s
Docker images / updater-image (push) Successful in 58s
Docker images / backend-image (push) Successful in 2m49s
Docker images / notify-webhook (push) Skipped
Docker images / publish-release (push) Successful in 11s
Docker images / prepare-release (push) Successful in 12s
Docker images / backend-test (push) Successful in 4m9s
Docker images / frontend-image (push) Successful in 4m28s
Docker images / updater-image (push) Successful in 58s
Docker images / backend-image (push) Successful in 2m49s
Docker images / notify-webhook (push) Skipped
Docker images / publish-release (push) Successful in 11s
При старте backend накатывает схему PostgreSQL 18 и, если база пустая, один раз импортирует mikrotik.db с тома. Повторный старт не копирует данные. Бэкап в UI идёт через pg_dump. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
/** Convert SQLite-style @name / ? placeholders to node-pg $n. */
|
||||
|
||||
export function bindSql(
|
||||
sql: string,
|
||||
params?: unknown[] | Record<string, unknown>,
|
||||
): { text: string; values: unknown[] } {
|
||||
if (params == null) return { text: sql, values: [] }
|
||||
if (Array.isArray(params)) {
|
||||
let i = 0
|
||||
const text = sql.replace(/\?/g, () => {
|
||||
i += 1
|
||||
return `$${i}`
|
||||
})
|
||||
return { text, values: params }
|
||||
}
|
||||
const values: unknown[] = []
|
||||
const text = sql.replace(/@([a-zA-Z_][a-zA-Z0-9_]*)/g, (_, name: string) => {
|
||||
values.push(params[name])
|
||||
return `$${values.length}`
|
||||
})
|
||||
return { text, values }
|
||||
}
|
||||
Reference in New Issue
Block a user