Миграции БД и резервное копирование

Процедуры изменений схемы и безопасного хранения данных.

Где хранить миграции

Запуск миграций

Пример миграции

-- database/migrations/20250101_1200_add_logs_table.sql
CREATE TABLE IF NOT EXISTS delivery_logs (
  id INT AUTO_INCREMENT PRIMARY KEY,
  created_at DATETIME NOT NULL,
  order_id INT NOT NULL,
  player_steam_id VARCHAR(20) NOT NULL,
  status ENUM('ok','failed') NOT NULL,
  message TEXT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE INDEX IF NOT EXISTS idx_delivery_logs_order ON delivery_logs(order_id);

Резервное копирование

База данных

Перенос товаров при переустановке (Экспорт/Импорт)

Если требуется переустановить сайт с нуля, но сохранить каталог товаров:

  1. Экспорт базы: Используйте скрипт export_products_web.php (доступен администратору) для скачивания SQL-дампа категорий, товаров и промокодов.
  2. Сохранение картинок: Скопируйте папку assets/img/products/ себе на компьютер.
  3. Восстановление:
    • Установите новую версию CMS.
    • Верните папку assets/img/products/ на сервер.
    • Импортируйте SQL-файл через phpMyAdmin в базу данных новой установки.

Файлы проекта (Важно!)

При переносе сайта или создании резервной копии обязательно сохраните следующие файлы, так как они не восстанавливаются из репозитория:

Пример команд

# Бэкап (Linux)
mysqldump -u USER -pPASSWORD DB_NAME | gzip > backups/db_$(date +%F).sql.gz

# Восстановление
gunzip -c backups/db_2025-01-10.sql.gz | mysql -u USER -pPASSWORD DB_NAME

Checklist