mass refactor
This commit is contained in:
62
scripts/migrate-sync.js
Normal file
62
scripts/migrate-sync.js
Normal file
@@ -0,0 +1,62 @@
|
||||
// migrate-sync.js
|
||||
// Этот скрипт создает записи о миграциях в таблице pgmigrations без применения изменений
|
||||
// Используется для синхронизации существующей базы с миграциями
|
||||
|
||||
const { Client } = require('pg');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
// Подключение к базе данных
|
||||
const client = new Client({
|
||||
host: '192.168.0.102',
|
||||
port: 5432,
|
||||
database: 'telegram_tinder_bot',
|
||||
user: 'trevor',
|
||||
password: 'Cl0ud_1985!'
|
||||
});
|
||||
|
||||
async function syncMigrations() {
|
||||
try {
|
||||
console.log('Подключение к базе данных...');
|
||||
await client.connect();
|
||||
|
||||
// Создаем таблицу миграций, если её нет
|
||||
await client.query(`
|
||||
CREATE TABLE IF NOT EXISTS pgmigrations (
|
||||
id SERIAL PRIMARY KEY,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
run_on TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
||||
)
|
||||
`);
|
||||
|
||||
// Получаем список файлов миграций
|
||||
const migrationsDir = path.join(__dirname, '../migrations');
|
||||
const files = fs.readdirSync(migrationsDir)
|
||||
.filter(file => file.endsWith('.js'))
|
||||
.sort();
|
||||
|
||||
// Проверяем, какие миграции уже записаны
|
||||
const { rows: existingMigrations } = await client.query('SELECT name FROM pgmigrations');
|
||||
const existingNames = existingMigrations.map(m => m.name);
|
||||
|
||||
// Записываем новые миграции
|
||||
for (const file of files) {
|
||||
const migrationName = file.replace('.js', '');
|
||||
if (!existingNames.includes(migrationName)) {
|
||||
console.log(`Добавление записи о миграции: ${migrationName}`);
|
||||
await client.query('INSERT INTO pgmigrations(name) VALUES($1)', [migrationName]);
|
||||
} else {
|
||||
console.log(`Миграция ${migrationName} уже записана`);
|
||||
}
|
||||
}
|
||||
|
||||
console.log('✅ Синхронизация миграций завершена успешно');
|
||||
await client.end();
|
||||
} catch (error) {
|
||||
console.error('❌ Ошибка при синхронизации миграций:', error);
|
||||
await client.end();
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
syncMigrations();
|
||||
Reference in New Issue
Block a user