Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 在部署时重置Heroku上的Postgres数据库_Django_Postgresql_Heroku_Gitlab Ci_Heroku Postgres - Fatal编程技术网

Django 在部署时重置Heroku上的Postgres数据库

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

我有一个带有PostgreSQL后端的Django网站,我正在使用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
我应该把重置命令放在哪里?怎么做呢?

你要找的是赫罗库。它的一个主要用例是与新版本一起运行数据库操作。您可以在
Procfile
中定义
release
过程。例如,典型rails应用程序的迁移可能类似于:

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

鉴于您希望在
发布过程中为您的应用程序交换适当的重置命令。

谢谢,您能否也为python和Django提供一个示例?