/
Alcatraz
/
Wagomon
Обзор
Документация
Войти
/
Alcatraz
/
Wagomon
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
scripts/migrate.js
50 строк
1 KB
saitgalineu
start
25 фев 2026, 16:24
25 фев 2026, 16:24
e8a3e93
Код
Авторство
О чём код?
import 'dotenv/config'; import fs from 'node:fs/promises'; import path from 'node:path'; import pg from 'pg'; const { Client } = pg; async function main() { const fileArg = process.argv[2]; if (!fileArg) { console.error('Usage: npm run migrate -- <path/to/file.sql>'); process.exit(1); } const sqlPath = path.resolve(process.cwd(), fileArg); let sql; try { sql = await fs.readFile(sqlPath, 'utf8'); } catch (err) { console.error(`Не удалось прочитать файл SQL: ${sqlPath}`); console.error(err.message); process.exit(1); } const client = new Client({ user: process.env.PGUSER, host: process.env.PGHOST, database: process.env.PGDATABASE, password: process.env.PGPASSWORD, port: process.env.PGPORT ? Number(process.env.PGPORT) : undefined }); try { console.log(`Connecting to database ${process.env.PGDATABASE} on ${process.env.PGHOST}...`); await client.connect(); console.log(`Running migration from ${sqlPath}...`); await client.query(sql); console.log('Migration completed successfully.'); } catch (err) { console.error('Migration failed:'); console.error(err.message); process.exitCode = 1; } finally { await client.end(); } } main();