ПРОМПТ. Создать эталонную схему базы данных. Создание недостающих таблиц в базе данных.

Добавь в существующее веб-приложение раздел "Управление базой данных" с функцией проверки и синхронизации структуры БД по эталонному файлу schema.json.

Требования:

1. Это дополнение к уже работающему приложению — не создавать отдельный проект.

2. Файл schema.json должен содержать **точную структуру базы данных, требуемую текущим проектом**.  
   Он формируется на основе **реальных таблиц и полей, необходимых для функционирования приложения**.  
   Пример структуры:
   {
     "tables": {
       "users": {
         "columns": {
           "id": "INTEGER PRIMARY KEY AUTOINCREMENT",
           "username": "TEXT NOT NULL UNIQUE",
           "email": "TEXT",
           "role": "TEXT DEFAULT 'user'",
           "created_at": "TIMESTAMP DEFAULT CURRENT_TIMESTAMP"
         }
       },
       "orders": {
         "columns": {
           "id": "INTEGER PRIMARY KEY AUTOINCREMENT",
           "user_id": "INTEGER NOT NULL",
           "total": "REAL",
           "status": "TEXT DEFAULT 'pending'",
           "created_at": "TIMESTAMP DEFAULT CURRENT_TIMESTAMP"
         },
         "foreign_keys": [
           "FOREIGN KEY (user_id) REFERENCES users (id)"
         ]
       },
       "products": {
         "columns": {
           "id": "INTEGER PRIMARY KEY AUTOINCREMENT",
           "name": "TEXT NOT NULL",
           "price": "REAL",
           "stock": "INTEGER DEFAULT 0"
         }
       }
     }
   }

   ВАЖНО:  
   - schema.json не является шаблоном — это **эталонная схема текущего проекта**.  
   - При разработке или обновлении проекта — этот файл обновляется вручную или через генератор, чтобы отражать **актуальные требования к БД**.

3. В интерфейсе добавь панель с кнопками:
   - [Проверить подключение к БД]
     → Показывает: ✅ Подключено / ❌ Ошибка (с описанием)
   - [Проверить структуру БД]
     → Сравнивает текущие таблицы и столбцы с schema.json
     → Выводит:
        • Отсутствуют таблицы: orders
        • Нет столбцов: users.email, products.stock
   - [Создать недостающие таблицы и столбцы]
     → Автоматически создаёт всё, чего не хватает, на основе schema.json
     → Показывает лог: "Создана таблица orders", "Добавлен столбец users.email"

4. Реализация:
   - Бэкенд (на любом языке, встроенный в приложение) загружает schema.json
   - Проверяет подключение к БД
   - Получает реальную структуру БД (список таблиц и столбцов)
   - Сравнивает с эталоном из schema.json
   - При нажатии кнопки — генерирует и выполняет SQL (CREATE TABLE, ALTER TABLE ADD COLUMN)

5. API (пример):
   - GET /api/db/status → { connected: true }
   - GET /api/db/compare → { missing_tables: [...], missing_columns: [...] }
   - POST /api/db/migrate → выполняет миграции, возвращает лог

6. Интерфейс:
   - Простая админ-панель (в разделе "Настройки" или "Админка")
   - Кнопки: Проверить подключение, Проверить структуру, Создать недостающее
   - Результат — в виде списка с иконками
   - Лог операций — в раскрывающемся блоке

7. Безопасность:
   - Доступ только у администраторов
   - Подтверждение перед миграцией (опционально)

Цель: дать администратору возможность одним кликом проверить и привести структуру БД в соответствие с актуальной схемой проекта, описанной в schema.json.