Heroku + Django + Postgres,无法迁移到postgres

时间:2018-01-29 15:34:46

标签: django postgresql docker heroku

我正在尝试使用Docker将基于django的应用程序放在Heroku上。 我正在为postgres使用一个容器,在本地使用另一个容器。在制作中,我只推送我的应用程序并使用heroku postgres附加组件。

在当地它工作正常。但是当我尝试将其上传到Heroku时,我的应用程序似乎能够连接到postgres数据库,但找不到任何表格。 我不知道问题出在哪里,除非由于某些受限制的授权而导致迁移失败(但我没有通过Heroku日志看到任何错误输出):

这里是我的docker-compose:

web:
build: .
command: bash -c "python3 manage.py migrate && python3 manage.py runserver 0.0.0.0:8000"
volumes:
  - .:/code
ports:
  - "8000:8000"
depends_on:
  - db

这里有postgres conf:

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.postgresql',
    'NAME': 'postgres',
    'USER': 'postgres',
    'HOST': 'db',
    'PORT': 5432,
}
}
db_from_env = dj_database_url.config(conn_max_age=500)
DATABASES['default'].update(db_from_env)

这是我的问题:

1)我无法直接连接到heroku dyno,因为这是一个很痛苦的配置,我没有成功(文档有点模糊如何实现这一点)

2)我不知道postgres是否实际链接。 我所做的就是按照heroku文档中的要求输入 db_from_env = dj_database_url.config(conn_max_age = 500)。我得到的只是/的ProgrammingError 关系“wagtailcore_site”不存在,所以我假设postgres正在运行但表缺失。

请注意,我只是将我的网络图片推送到heroku。 Postgres已经可以通过heroku插件获得。

我的问题是我不知道为什么我的web命令:python3 manage.py migrate似乎什么也没产生,再一次,由于所有这些层,调试很麻烦。

修改

从我的heroku日志中,我已经为数据库生成了这个生成的配置。

{'default': {'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'dfoj555gqmetqk', 'USER': 'jspejdlnonepyj', 'HOST': 'ec2-54-235-240-126.compute-1.amazonaws.com', 'PORT': 5432 'CONN_MAX_AGE': 500}}

从Django Traceback,我得到了DB连接的确认。

DATABASES   
    {'default': {'ATOMIC_REQUESTS': False,
                 'AUTOCOMMIT': True,
                 'CONN_MAX_AGE': 500,
                 'ENGINE': 'django.db.backends.postgresql_psycopg2',
                 'HOST': 'ec2-54-235-240-126.compute-1.amazonaws.com',
                 'NAME': 'dfoj555gqmetqk',
                 'OPTIONS': {},
                 'PASSWORD': '********************',
                 'PORT': 5432,
                 'TEST': {'CHARSET': None,
                          'COLLATION': None,
                          'MIRROR': None,
                          'NAME': None},
                 'TIME_ZONE': None,
                 'USER': 'jspejdlnonepyj'}}

但是,我怎样才能迁移到这个数据库?当我将迁移规则放在Docker中时,数据库现在不存在吗?

0 个答案:

没有答案