Skip to content

zerthmonk/airtaker

Repository files navigation

alt text

как запускать:
  1. скопировать .env.template в .env
  2. поправить значения переменных на свои
  3. поставить пакеты pipenv sync
с докером:
  1. запустить docker-compose up meta-db (для быстрого развертывания Postgres)
  2. запустить ./build-front.sh для билда Vue
без докера:
  1. указать DB_HOST DB_PORT для своей базы, если она уже есть
  2. скопировать содержимое .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:
  • кастомные команды, в которые можно завернуть скрипт получения данных
  • 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 не хватает чтобы понять, насколько это нормально :)

Спасибо, было интересно. Прочие комментарии и разъяснения готов рассказать лично.