![](/img/trans.png)
[英]Following Django tutorial, "python manage.py migrate" doesn't create any django tables (MySQL, Pycharm)
[英]Heroku + Django migrate command doesn’t create any table
據我所知,運行 $heroku run 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並向數據庫添加一些數據,但我的應用程序看不到這些數據。
有什么建議嗎? 我現在堅持了 3 天,所以我將不勝感激。
PS我使用帶有postgis擴展名的heroku postgresql hobby-basic。
繳費靈
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"
我想我找到了解決方案或一種解決方案。 該表已創建,但要訪問它,我必須使用雙引號:
select * from "findCharge_chargepoints";
我沒想到這是因為 migrate 創建的其他表(如 auth_user、auth_group 等)根本不需要任何 qoutes。
而不是運行:
heroku run python manage.py migrate
只需運行:
heroku run python manage.py migrate --run-syncdb
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.