mass refactor

This commit is contained in:
2025-09-18 08:31:14 +09:00
parent 856bf3ca2a
commit bdd7d0424f
58 changed files with 3009 additions and 291 deletions

62
scripts/migrate-sync.js Normal file
View 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();