Files
Quiz-for-Mont/README_RU.md

79 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Опросник (Quiz for Mont)
Веб‑приложение на Flask + Peewee для проведения опросов и сравнения платформ.
## Запуск
Есть два основных способа запуска: локально с SQLite или через Docker Compose с Postgres.
### 1) Локально (SQLite)
По умолчанию приложение пытается подключиться к Postgres. Если он недоступен, код автоматически переключится на SQLite. Чтобы явно форсировать SQLite:
- PowerShell (Windows):
```
$env:USE_SQLITE = '1'
$env:SQLITE_PATH = 'survey.db' # необязательно, по умолчанию survey.db
python main.py # или flask --app main run
```
### 2) Docker Compose (Postgres)
В проекте есть `docker-compose.yml` c сервисами `db` (Postgres) и `flask-app`.
```
docker-compose up -d
```
После поднятия контейнеров приложение доступно на `http://localhost:3333`.
Переменные окружения для подключения к Postgres уже прописаны в `docker-compose.yml`:
- `POSTGRES_HOST=db`
- `POSTGRES_DB=survey`
- `POSTGRES_USER=servey`
- `POSTGRES_PASSWORD=utOgbZ09servey`
## База данных и фолбэк
В `models.py` используется следующая логика инициализации БД:
- Если установлено `USE_SQLITE=1`, используется SQLite (файл `survey.db`).
- Иначе выполняется попытка подключения к Postgres. Если соединение не удалось (например, приложение запущено вне Docker и хост `db` недоступен), приложение автоматически переключается на SQLite.
При первом запуске таблицы создаются автоматически.
## Миграция данных из SQLite в Postgres
В проекте есть скрипт `migrate_sqlite_to_postgres.py` (используйте его при необходимости переноса данных). Перед миграцией убедитесь, что Postgres доступен и параметры подключения верны.
## Полезные команды
- Установка зависимостей:
```
pip install -r requirements.txt
```
- Запуск Flask локально:
```
flask --app main run --debug
```
## Переменные окружения
- `USE_SQLITE` — если `1`, принудительно использовать SQLite.
- `SQLITE_PATH` — путь к файлу базы SQLite (по умолчанию `survey.db`).
- `POSTGRES_HOST` — хост Postgres (по умолчанию `db`).
- `POSTGRES_PORT` — порт Postgres (по умолчанию `5432`).
- `POSTGRES_DB` — имя БД (по умолчанию `survey`).
- `POSTGRES_USER` — пользователь Postgres (по умолчанию `servey`).
- `POSTGRES_PASSWORD` — пароль Postgres.
## Замечания по безопасности
Текущие значения по умолчанию для доступа к Postgres предназначены для локальной разработки и Docker. Для продакшена обязательно замените пароли и настройте защищённые секреты.