据我所知,跑步时 $ 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"
答案 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