2012-07-13 139 views
1

我一直在完成我的第一個Django應用程序,並遇到了Heroku中的遷移問題。我在南方本地遷移,然後嘗試將這些遷移遷移到Heroku上的數據庫。Django:Heroku遷移導致錯誤

當我跑:

heroku run stentorian/manage.py syncdb migrate report 

我收到以下錯誤:

['/app/stentorian', '/app/.heroku/venv/lib/python2.7/site-packages/pip-1.1-py2.7.egg', '/app', '/app/.heroku/venv/lib/python27.zip', '/app/.heroku/venv/lib/python2.7', '/app/.heroku/venv/lib/python2.7/plat-linux2', '/app/.heroku/venv/lib/python2.7/lib-tk', '/app/.heroku/venv/lib/python2.7/lib-old', '/app/.heroku/venv/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7', '/usr/local/lib/python2.7/plat-linux2', '/usr/local/lib/python2.7/lib-tk', '/app/.heroku/venv/lib/python2.7/site-packages', '/app/.heroku/venv/lib/python2.7/site-packages/PIL'] 
Error: Command doesn't accept any arguments 

我研究這一點,似乎無法找到如何解決這個問題。在此之前,我將django-flaggit應用程序安裝到了我的應用程序,該應用程序不使用遷移,並且必須使用傳統的syncdb來獲取在Heroku中設置的表。我想知道這是否有影響。

如果有人對此問題有任何洞見,將不勝感激。

回答

1

你在這裏做的是連續調用兩個不同的命令:syncdbmigrate

南方的常用工作流程是運行syncdb以同步所有非南方支持的應用程序,然後進行遷移,以在南方支持的應用程序上工作。實際上,如果您只是在安裝了南部的情況下運行syncdb,它會告訴您哪些應用程序未安裝並且必須進行遷移。

因此,要總結:

heroku run stentorian/manage.py syncdb 
heroku run stentorian/manage.py migrate report 
+0

非常感謝!遷移有時會有點混亂。我認爲我可能通過同步flaggit應用程序導致了問題,然後嘗試遷移。 – 2012-07-14 00:20:33

+1

是的,有時候你會將應用程序與遷移同步,因爲你可以「僞造」像migrate report --fake這樣的遷移,它將應用遷移而不需要實際做任何事情。有關更多信息,請參閱南文檔。 – 2012-07-14 00:26:35