gpt4 book ai didi

django - 南迁移错误 - 关系已存在

转载 作者:行者123 更新时间:2023-12-04 00:03:07 25 4
gpt4 key购买 nike

背景:
将 djangoratings 添加到我的项目后,我尝试运行

django-admin.py schemamigration djangoratings --initial 
--settings=myapp.settings.local

这导致了架构迁移的未知命令错误。
我试图通过将我的项目目录添加到 PYTHONPATH(我正在使用 virtualenv 和 virtualenvwrapper)来解决这个错误。
这解决了 schemamigration 的未知命令错误,但我想我为 PYTHONPATH 指定了我的项目目录上方的一个目录,并且当为 djangoratings 运行初始迁移时,它提示与 whoosh 有关(我在我的项目中使用) .我更改了 PYTHONPATH 目录并尝试运行
django-admin.py schemamigration djangoratings --initial 
--settings=myapp.settings.local

再次。然后我运行了迁移命令。这是我收到错误时:
django.db.utils.DatabaseError: relation "djangoratings_vote" already exists

我尝试使用以下方法一路迁移回来:
django-admin.py migrate djangoratings zero --settings=myapp.settings.local
Running migrations for djangoratings:
- Migrating backwards to zero state.
< djangoratings:0006_add_cookies
< djangoratings:0005_add_exclusions
< djangoratings:0004_rethink_recommendations
< djangoratings:0003_add_correlations
< djangoratings:0002_add_mean_and_stddev
< djangoratings:0001_initial

然后再次运行--initial,但是执行迁移命令后出现同样的错误。

我查看了数据库中的表列表,但没有看到任何 djangoratings_vote。

我当前的 djangoratings 迁移列表如下:
0001_initial.py                   0006_add_cookies.py
0001_initial.pyc 0006_add_cookies.pyc
0002_add_mean_and_stddev.py 0007_initial.py
0002_add_mean_and_stddev.pyc 0007_initial.pyc
0003_add_correlations.py 0008_initial.py
0003_add_correlations.pyc 0008_initial.pyc
0004_rethink_recommendations.py 0009_initial.py
0004_rethink_recommendations.pyc 0009_initial.pyc
0005_add_exclusions.py __init__.py
0005_add_exclusions.pyc __init__.pyc

如何解决关系“djangoratings_vote”已经存在的错误?最好使用南?

最佳答案

在我看来,South 似乎与您的数据库不同步(如果 South 已开始创建表,但随后无法完成向后迁移而失败,则可能会发生这种情况)。我建议按如下方式手动恢复数据库和南(如果出现错误,请先备份您的数据库):

  • 从数据库中删除所有 djangoratings_* 表。
  • 打开数据库中的south_migrationhistory表,按应用名称过滤。删除 djangoratings 的所有条目。
  • 删除 djangoratings/migrations 目录中的所有迁移文件。

  • 完成此操作后,您应该拥有一个干净的数据库和南部历史记录。此时,重新运行:
    ./manage.py schemamigration djangoratings --initial

    这将生成单个迁移文件。然后:
    ./manage.py migrate djangoratings.

    假设您没有第一次遇到错误,这应该设置数据库,以便您准备好使用 django ratings。

    关于django - 南迁移错误 - 关系已存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14969166/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com