2017-09-15 103 views
0

我最近對models.py文件進行了一些更改,該文件在PostgreSQL數據庫上創建數據庫表。Django AWS部署:部署後未創建新的數據庫表

在本地開發系統中,一切都很好。我將更改推送到GitHub,然後部署到我的測試AWS EC2 Linux系統。部署過程沒有錯誤,所有文件都反映了我在開發系統上的情況。

唯一的問題是數據庫表部署後未創建。如果我在測試AWS EC2上運行makemigrations,它只是表示沒有更改。創建反映我的models.py的新數據庫表的最佳方法是什麼?

供參考,這是我的部署腳本:

#!/bin/bash 
source venv/bin/activate 
git pull 
pip install -r requirements.txt 
./manage.py migrate 
./manage.py collectstatic --no-input 
initctl restart gunicorn 
+0

我有這個問題。必須授予我們使用的數據庫用戶的表上的權限。但遷移行爲就像是在工作。 –

+0

@Chris是的,它們出現在測試環境中。他們是爲了幷包含變化。 –

+0

@KevinHirst我正在運行一個Linux AWS EC2並且數據庫在RDS上。首先,這已經奏效,但我會如何去嘗試你的建議? –

回答

0

問題發生原因在於沒有正確適用舊的遷移文件。運行python manage.py showmigrations是一個命令,顯示哪些遷移文件已應用,哪些未遷移。對我而言,有8個遷移文件不適用。爲了解決這個問題,我從數據庫中的django-migrations表中刪除了最後一次已知的遷移。然後我重新運行python manage.py migrate,這將所有遷移應用到當前創建數據庫條目的當前遷移。然後,我從我的GitHub存儲庫進行部署,以確保自應用損壞的遷移文件以來的所有更改。這解決了我的問題,希望能夠幫助有這些類型遷移問題的下一個人。