Heroku + Django migrate命令不会创建任何表

时间:2016-11-26 11:54:44

标签: python django postgresql heroku postgis

据我所知,跑步时 $ heroku运行python manage.py migrate

它从models.py创建所有表。但我的输出看起来不一样:表格没有创建,甚至没有提到。

Operations to perform:
  Apply all migrations: findCharge

Running migrations:
  Applying findCharge.0001_initial... OK
  Applying findCharge.0002_auto_20161124_1729... OK
  Applying findCharge.0003_auto_20161124_1955... OK
  Applying findCharge.0004_chargepoints_description... OK

无论如何,当我打电话时

$ heroku pg:psql and then ONYX=> \dt

看起来表格是在关系列表中创建的,并且“findCharge_chargepoints”。

…
public | findCharge_chargepoints | table | owner_name
…

但是当我输入

ONYX=> SELECT * FROM findCharge_chargepoints;
ERROR:  relation "findcharge_chargepoints" does not exist

我试图在没有应用名称的情况下运行“python manage.py migrate”,但结果是一样的。在推送到git之前,我在本地机器上运行“makemigrations”。我也能够创建超级用户,我可以打开https://my-app-name.herokuapp.com/admin并向db添加一些数据,但我的应用程序没有看到这些数据。

有什么建议吗?我现在坚持了3天,所以我将不胜感激任何帮助。

P.S。我使用带有postgis扩展名的heroku postgresql hobby-basic。

P.P.S。

来自settings.py的数据库设置:

DATABASES = {
'default':{
    'ENGINE': 'django.contrib.gis.db.backends.postgis',
    'NAME': 'charging_points',
    'USER': 'postgres',
    'PASSWORD': 'XXX',
}
}

并在文件的末尾

import dj_database_url
DATABASES['default'] = dj_database_url.config()
DATABASES['default']['ENGINE'] = "django.contrib.gis.db.backends.postgis"

2 个答案:

答案 0 :(得分:1)

我想我找到了解决方案或一种解决方案。该表已创建,但要访问它,我必须使用双引号:

select * from "findCharge_chargepoints";

我没想到它导致迁移创建的其他表(如auth_user,auth_group等)根本不需要任何qoutes。

答案 1 :(得分:0)

而不是运行:

heroku run python manage.py migrate

只需运行:

heroku run python manage.py migrate --run-syncdb