Delete comment
This commit is contained in:
@@ -1,8 +1,4 @@
|
||||
<?php
|
||||
/**
|
||||
* Быстрый скрипт для назначения прав администратора пользователю admin@mail.ru
|
||||
* Запуск: php migrations/grant_admin.php
|
||||
*/
|
||||
|
||||
require_once __DIR__ . '/../config/database.php';
|
||||
|
||||
@@ -16,7 +12,6 @@ try {
|
||||
|
||||
$email = 'admin@mail.ru';
|
||||
|
||||
// Проверяем, существует ли пользователь
|
||||
$checkStmt = $db->prepare("SELECT user_id, email, full_name, is_admin, is_active FROM users WHERE email = ?");
|
||||
$checkStmt->execute([$email]);
|
||||
$user = $checkStmt->fetch(PDO::FETCH_ASSOC);
|
||||
@@ -31,9 +26,9 @@ try {
|
||||
if ($user['is_admin']) {
|
||||
echo "[INFO] Пользователь уже имеет права администратора\n";
|
||||
} else {
|
||||
// Обновляем права
|
||||
|
||||
$updateStmt = $db->prepare("
|
||||
UPDATE users
|
||||
UPDATE users
|
||||
SET is_admin = TRUE,
|
||||
is_active = TRUE,
|
||||
updated_at = CURRENT_TIMESTAMP
|
||||
@@ -47,8 +42,6 @@ try {
|
||||
echo "[WARN] Пользователь с email $email не найден\n";
|
||||
echo "[INFO] Создаю нового пользователя с правами администратора...\n";
|
||||
|
||||
// Создаем пользователя с правами админа
|
||||
// Пароль по умолчанию: admin123
|
||||
$password_hash = password_hash('admin123', PASSWORD_DEFAULT);
|
||||
|
||||
$insertStmt = $db->prepare("
|
||||
@@ -73,7 +66,6 @@ try {
|
||||
echo "[WARN] Рекомендуется сменить пароль после первого входа!\n";
|
||||
}
|
||||
|
||||
// Проверяем результат
|
||||
$verifyStmt = $db->prepare("SELECT user_id, email, full_name, is_admin, is_active FROM users WHERE email = ?");
|
||||
$verifyStmt->execute([$email]);
|
||||
$finalUser = $verifyStmt->fetch(PDO::FETCH_ASSOC);
|
||||
@@ -91,4 +83,3 @@ try {
|
||||
echo "[ERROR] Ошибка: " . $e->getMessage() . "\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
<?php
|
||||
/**
|
||||
* Простой раннер миграций для PostgreSQL
|
||||
* Запуск: php migrations/migrate.php
|
||||
*/
|
||||
|
||||
// Подключаем конфиг базы данных
|
||||
require_once __DIR__ . '/../config/database.php';
|
||||
|
||||
echo "===========================================\n";
|
||||
@@ -15,7 +10,6 @@ try {
|
||||
$db = Database::getInstance()->getConnection();
|
||||
echo "[OK] Подключение к базе данных успешно\n\n";
|
||||
|
||||
// 1. Создаем таблицу для отслеживания миграций
|
||||
$db->exec("
|
||||
CREATE TABLE IF NOT EXISTS migrations (
|
||||
id SERIAL PRIMARY KEY,
|
||||
@@ -25,12 +19,10 @@ try {
|
||||
");
|
||||
echo "[OK] Таблица migrations готова\n";
|
||||
|
||||
// 2. Получаем список уже примененных миграций
|
||||
$stmt = $db->query("SELECT filename FROM migrations ORDER BY filename");
|
||||
$applied = $stmt->fetchAll(PDO::FETCH_COLUMN);
|
||||
echo "[INFO] Уже применено миграций: " . count($applied) . "\n\n";
|
||||
|
||||
// 3. Сканируем папку на SQL-файлы
|
||||
$migrationFiles = glob(__DIR__ . '/*.sql');
|
||||
sort($migrationFiles);
|
||||
|
||||
@@ -38,30 +30,26 @@ try {
|
||||
|
||||
foreach ($migrationFiles as $file) {
|
||||
$filename = basename($file);
|
||||
|
||||
// Пропускаем seed_data.sql - он запускается отдельно
|
||||
|
||||
if ($filename === 'seed_data.sql') {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Проверяем, была ли миграция уже применена
|
||||
if (in_array($filename, $applied)) {
|
||||
echo "[SKIP] $filename (уже применена)\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
// Применяем миграцию
|
||||
echo "[RUN] Применяю $filename... ";
|
||||
|
||||
|
||||
$sql = file_get_contents($file);
|
||||
|
||||
|
||||
try {
|
||||
$db->exec($sql);
|
||||
|
||||
// Записываем в таблицу миграций
|
||||
|
||||
$stmt = $db->prepare("INSERT INTO migrations (filename) VALUES (?)");
|
||||
$stmt->execute([$filename]);
|
||||
|
||||
|
||||
echo "OK\n";
|
||||
$newMigrations++;
|
||||
} catch (PDOException $e) {
|
||||
@@ -73,19 +61,18 @@ try {
|
||||
}
|
||||
|
||||
echo "\n-------------------------------------------\n";
|
||||
|
||||
|
||||
if ($newMigrations > 0) {
|
||||
echo "[SUCCESS] Применено новых миграций: $newMigrations\n";
|
||||
} else {
|
||||
echo "[INFO] Все миграции уже применены\n";
|
||||
}
|
||||
|
||||
// 4. Спрашиваем про seed_data
|
||||
$seedFile = __DIR__ . '/seed_data.sql';
|
||||
if (file_exists($seedFile)) {
|
||||
echo "\n[?] Хотите загрузить начальные данные (seed_data.sql)?\n";
|
||||
echo " Запустите: php migrations/migrate.php --seed\n";
|
||||
|
||||
|
||||
if (isset($argv[1]) && $argv[1] === '--seed') {
|
||||
echo "\n[RUN] Загружаю seed_data.sql... ";
|
||||
try {
|
||||
@@ -106,4 +93,3 @@ try {
|
||||
echo "[ERROR] Ошибка подключения к БД: " . $e->getMessage() . "\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user