feat(db): add Postgres→SQLite fallback and Russian README
This commit is contained in:
78
README_RU.md
Normal file
78
README_RU.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# Опросник (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. Для продакшена обязательно замените пароли и настройте защищённые секреты.
|
||||
|
||||
Reference in New Issue
Block a user