- скопировать
.env.template
в.env
- поправить значения переменных на свои
- поставить пакеты
pipenv sync
- запустить
docker-compose up meta-db
(для быстрого развертывания Postgres) - запустить
./build-front.sh
для билда Vue
- указать
DB_HOST
DB_PORT
для своей базы, если она уже есть - скопировать содержимое
.backup-build
вbackend/bemeta/core/static/
(ну или сбилдить руками как написано вfrontend/README.md
, но я не пробовал)
./run-django.sh
запустит тестовый сервер (внимание:host:port
прописан внизу скрипта)pipenv run python ./backend/bemeta/manage.py sync_air
- скрипт для заполнения базы из таблицы Airtable
- кастомные команды, в которые можно завернуть скрипт получения данных
- Django ORM я умею быстрее, чем SQLAlchemy
- серьезных проверок на consistency не делал
- использовал Джанговые unit tests вместо django-pytest из-за сложностей с доступом к базе у pytest
- не завелась
wait-for-db
команда (которая говорила подождать, если база недоступна), почему - так и не понял, вынес ее из кода вообще - проблема с переменной
$DJANGO_LISTEN
внизуrun-django.sh
- потратил достаточно времени на дебаг, но работает через раз. в итоге забил и захардкодил.
-
не учел сходу возможность пустых строк в Airtables - получился не очень красивый хотфикс -_-
-
не мастер настраивать .gitignore - в правилах игнора статики - бардак
-
не очень умею в ветки гита, старался сделать более-менее логичную структуру
-
не обучился .env для JS, поэтому вещи вроде BACKEND_URL - hardcoded
-
не уверен в сборке Vue - использовал simple-webpack темплейт, в процессе сборки много сообщений про deprecated - но моего знания экосистемы JS не хватает чтобы понять, насколько это нормально :)
Спасибо, было интересно. Прочие комментарии и разъяснения готов рассказать лично.