簡體   English   中英

Heroku + Django migrate 命令不會創建任何表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM