heroku - DatabaseError:relation" south_migrationhistory"不存在

时间:2014-12-29 22:46:09

标签: django git heroku amazon-s3 django-migrations

我购买了一个外包服务,在django开发一个网站,部署在heroku和AWS S3(boto包)中。 不幸的是,开发人员没有对代码发表评论,尽管有人提出要求,并且该项目尚未完成,无法跟进更大的客户。 我聘请了另一位django'专家'修复一个未开发的部分,他希望(过度)收取部署测试的费用,我认为这应该是良好做法的正常事项!我正在研究自己的项目,需要自己解决。

我能够让项目在本地运行并使自己成为未完全开发的前端模板,但是我在自己的暂存环境中部署代码时遇到了问题。

我在我的凭据下设置了一个暂存环境,以便在推送到生产之前检查一切是否正常。

我想我差不多到了那里:

heroku run python manage.py migrate --all --noinput --app my-app-staging

在控制台中生成:

Running `python manage.py migrate --all --noinput` attached to terminal... up, run.4833

DatabaseError:relation" south_migrationhistory"不存在 第1行:... gration"," south_migrationhistory"。" applied"来自" south_mig ......

在浏览器中:

DatabaseError at /
relation "django_site" does not exist
LINE 1: ..."django_site"."domain", "django_site"."name" FROM "django_si...
                                                             ^
Request Method: GET
Request URL:    http://my-app-staging.herokuapp.com/
Django Version: 1.5.6
Exception Type: DatabaseError
Exception Value:    
relation "django_site" does not exist
LINE 1: ..."django_site"."domain", "django_site"."name" FROM "django_si...
                                                             ^
Exception Location: /app/.heroku/python/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py in execute, line 5

我检查了我的设置,看起来没问题: 我检查AWS S3存储桶,它可以写在那里; heroku控制台中的设置显示已创建数据库。

我跟着: Heroku created table but when I'll migrate, he says that doesn't created

但看起来我的locals.py也可以,在我当地的git分支.gitignore将排除db.sqlite

我的git和heroku ssh密钥已生成并添加,所以我不会'认为这是一个认证问题。

我如何检查数据库是否正确连接到django项目并且我没有失效? 您能帮忙汇报一下,了解这个错误意味着什么,以及如何解决它?

非常感谢你。

1 个答案:

答案 0 :(得分:3)

听起来您可能没有在登台服务器上创建初始的南迁移表。这实际上是done using syncdb

  

添加南方后,您需要运行./manage.py syncdb来制作南迁移跟踪表(由于各种原因,南方不会为自己的模型使用迁移)。

要在Heroku上运行此功能,您可能希望使用类似

的功能
heroku run python manage.py syncdb

完成此操作后,您应该能够继续使用南方命令。