Django 在部署时重置Heroku上的Postgres数据库
我有一个带有PostgreSQL后端的Django网站,我正在使用gitlab ci/cd在Heroku上测试和部署它 我每次都在模型中做很多新的更改,我希望在Heroku运行之前清理数据库:Django 在部署时重置Heroku上的Postgres数据库,django,postgresql,heroku,gitlab-ci,heroku-postgres,Django,Postgresql,Heroku,Gitlab Ci,Heroku Postgres,我有一个带有PostgreSQL后端的Django网站,我正在使用gitlab ci/cd在Heroku上测试和部署它 我每次都在模型中做很多新的更改,我希望在Heroku运行之前清理数据库:python manage.py migrate。 我知道我每次都可以从我的计算机上运行heroku pg:reset DATABASE,但我正在寻找一种方法,作为部署过程中的一个步骤自动执行此操作 这是我的.giltab ci.yml文件的内容: image: python:3.6.5 services
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
我应该把重置命令放在哪里?怎么做呢?你要找的是赫罗库。它的一个主要用例是与新版本一起运行数据库操作。您可以在Procfile
中定义release
过程。例如,典型rails应用程序的迁移可能类似于:
web: bundle exec puma -C config/puma.rb
worker: bundle exec sidekiq
release: bundle exec rake db:migrate
鉴于您希望在
发布过程中为您的应用程序交换适当的重置命令。谢谢,您能否也为python和Django提供一个示例?