Сбросить базу данных Postgres на Heroku за время развертывания - PullRequest
0 голосов
/ 31 января 2019

У меня есть веб-сайт Django с бэкэндом PostgreSQL, и я использую gitlab ci / cd для тестирования и развертывания его на Heroku.

Каждый раз я делаю много новых изменений в моделях и хочу, чтобыбаза данных, подлежащая очистке перед запуском Heroku: python manage.py migrate на ней.Я знаю, что могу запускать heroku pg: reset DATABASE с моего компьютера каждый раз, но я ищу способ сделать это автоматически в качестве шага развертывания.

Это содержимое моего .giltab-ci.yml файла:

image: python:3.6.5

services:
  - postgres:latest

variables:
  POSTGRES_DB: asdproject
  POSTGRES_USER: postgres
  POSTGRES_PASSWORD: asdpassword

test:
  script:
  - whoami
  - export PGPASSWORD=$POSTGRES_PASSWORD
  - apt-get update -qy
  - apt-get install -y python-dev python-pip
  - pip install -r requirements.txt
  - python manage.py test --settings=backend_settings.gitlab_runner_settings


production:
   type: deploy
   script:
      - apt-get update -qy
      - apt-get install -y ruby-dev
      - gem install dpl
      - dpl --provider=heroku --app=asd-g7 --api-key=$HEROKU_PRODUCTION_API_KEY
 only:
     - master

Куда поместить команду сброса?и как?

1 Ответ

0 голосов
/ 01 февраля 2019

Фаза релиза Heroku - это то, что вы ищете.Один из его основных вариантов использования - запуск операций с базой данных в сочетании с новыми выпусками.Вы можете определить процесс release в вашем Procfile.Например, миграция для типичного приложения rails может выглядеть примерно так:

web: bundle exec puma -C config/puma.rb
worker: bundle exec sidekiq
release: bundle exec rake db:migrate

В то время как вы хотите поменять местами соответствующую команду сброса для вашего приложения в процессе release.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...