74 lines
3.0 KiB
JavaScript
74 lines
3.0 KiB
JavaScript
// Скрипт для установки премиум-статуса всем пользователям
|
||
require('dotenv').config();
|
||
const { Pool } = require('pg');
|
||
|
||
// Проверяем и выводим параметры подключения
|
||
console.log('Параметры подключения к БД:');
|
||
console.log('DB_USERNAME:', process.env.DB_USERNAME);
|
||
console.log('DB_HOST:', process.env.DB_HOST);
|
||
console.log('DB_NAME:', process.env.DB_NAME);
|
||
console.log('DB_PASSWORD:', process.env.DB_PASSWORD ? '[указан]' : '[не указан]');
|
||
console.log('DB_PORT:', process.env.DB_PORT);
|
||
|
||
// Создаем пул соединений
|
||
const pool = new Pool({
|
||
user: process.env.DB_USERNAME,
|
||
host: process.env.DB_HOST,
|
||
database: process.env.DB_NAME,
|
||
password: process.env.DB_PASSWORD,
|
||
port: parseInt(process.env.DB_PORT || '5432')
|
||
});
|
||
|
||
async function setAllUsersToPremium() {
|
||
try {
|
||
console.log('Устанавливаем премиум-статус для всех пользователей...');
|
||
|
||
// Проверка соединения с БД
|
||
console.log('Проверка соединения с БД...');
|
||
const testResult = await pool.query('SELECT NOW()');
|
||
console.log('✅ Соединение успешно:', testResult.rows[0].now);
|
||
|
||
// Проверка наличия столбца premium
|
||
console.log('Проверяем наличие столбца premium в таблице users...');
|
||
|
||
const checkResult = await pool.query(`
|
||
SELECT EXISTS (
|
||
SELECT FROM information_schema.columns
|
||
WHERE table_schema = 'public'
|
||
AND table_name = 'users'
|
||
AND column_name = 'premium'
|
||
);
|
||
`);
|
||
|
||
if (!checkResult.rows[0].exists) {
|
||
console.log('🔄 Добавляем столбец premium...');
|
||
await pool.query(`ALTER TABLE users ADD COLUMN premium BOOLEAN DEFAULT false;`);
|
||
console.log('✅ Столбец premium успешно добавлен');
|
||
} else {
|
||
console.log('✅ Столбец premium уже существует');
|
||
}
|
||
|
||
// Устанавливаем premium=true для всех пользователей
|
||
const updateResult = await pool.query(`
|
||
UPDATE users
|
||
SET premium = true
|
||
WHERE true
|
||
RETURNING id, telegram_id, premium
|
||
`);
|
||
|
||
console.log(`✅ Успешно установлен премиум-статус для ${updateResult.rows.length} пользователей:`);
|
||
updateResult.rows.forEach(row => {
|
||
console.log(`ID: ${row.id.substr(0, 8)}... | Telegram ID: ${row.telegram_id} | Premium: ${row.premium}`);
|
||
});
|
||
|
||
console.log('🎉 Все пользователи теперь имеют премиум-статус!');
|
||
} catch (error) {
|
||
console.error('❌ Ошибка при установке премиум-статуса:', error);
|
||
} finally {
|
||
await pool.end();
|
||
console.log('Соединение с базой данных закрыто');
|
||
}
|
||
}
|
||
|
||
setAllUsersToPremium();
|