2012-07-13 142 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