-1

我购买了一项外包服务,以便在 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:关系“south_migrationhistory”不存在第 1 行:...gration”,“south_migrationhistory”。“applied” FROM “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 创建了表,但是当我迁移时,他说没有创建

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

我的 git 和 heroku ssh 密钥已生成并添加,所以我不认为这是身份验证问题。

我如何检查数据库是否正确连接到 django 项目并且我没有失效?您能否帮助进行汇报以了解此错误的含义以及如何解决?

非常感谢。

4

1 回答 1

3

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

添加 South 后,您需要运行./manage.py syncdb创建 South 迁移跟踪表(出于各种原因,South 不将迁移用于其自己的模型)。

要在 Heroku 上运行它,您可能需要使用类似

heroku run python manage.py syncdb

完成此操作后,您应该能够使用 South 命令继续前进。

于 2014-12-29T23:07:39.503 回答