我购买了一个外包服务,在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项目并且我没有失效? 您能帮忙汇报一下,了解这个错误意味着什么,以及如何解决它?
非常感谢你。
答案 0 :(得分:3)
听起来您可能没有在登台服务器上创建初始的南迁移表。这实际上是done using syncdb
:
添加南方后,您需要运行
./manage.py syncdb
来制作南迁移跟踪表(由于各种原因,南方不会为自己的模型使用迁移)。
要在Heroku上运行此功能,您可能希望使用类似
的功能heroku run python manage.py syncdb
完成此操作后,您应该能够继续使用南方命令。