当还涉及迁移时,如何使用 django 进行同步数据库

Posted

技术标签:

【中文标题】当还涉及迁移时,如何使用 django 进行同步数据库【英文标题】:How to do a syncdb with django, when migrations are also involved 【发布时间】:2011-12-19 08:01:56 【问题描述】:

当我执行 syncdb 时,每次都会收到以下错误:

未同步(使用迁移): - 交易 - 分析 (使用 ./manage.py migrate 迁移这些)

当我运行 sudo python manage.py migrate 时。我得到以下内容

为交易运行迁移: - 没有什么可迁移的。 - 加载交易的初始数据。 没有找到固定装置。 运行迁移以进行分析: - 没有什么可迁移的。 - 加载初始数据进行分析。 没有找到固定装置。

非常感谢您的帮助

【问题讨论】:

您的 django 项目正在使用名为 south 的第三方应用程序,该应用程序从 syncdb 接管一组选定的应用程序并处理数据库中的架构迁移等事情。阅读 south 上的文档了解更多信息。 【参考方案1】:

迁移似乎已经通过。检查数据库中的 south_migationhistory 表。

如果您想为有迁移的应用同步新数据库,只需在 settings.py 中禁用 south。

【讨论】:

【参考方案2】:

从输出看,数据库似乎已经与迁移同步。没有有问题的错误。 (虽然你不应该真的是 root 来运行迁移。)

如果您正在考虑创建更多迁移,请使用 south documentation,它通常在您修改模型后运行以下命令:

python manage.py schemamigration --auto <APP>

然后使用python manage.py migrate 应用更改。

【讨论】:

【参考方案3】:

您是否已运行架构迁移初始设置?

./manage.py schemamigration deals --initial
./manage.py migrate deals

如果您收到错误,db 已经存在执行此操作:

./manage.py schemamigration deals --initial
./manage.py migrate deals --fake

【讨论】:

以上是关于当还涉及迁移时,如何使用 django 进行同步数据库的主要内容,如果未能解决你的问题,请参考以下文章

Oracle数据迁移MySQL

Redis技术探索「数据迁移实战」手把手教你如何实现在线 + 离线模式进行迁移Redis数据实战指南(离线同步数据)

Django 迁移——是不是可以在项目中间使用 South?

Redis 技术探索「数据迁移实战」手把手教你如何实现在线+离线模式进行迁移Redis数据实战指南(离线同步数据)

如何在 django 中更改模型时填充数据库字段

Django 1.7 中的 Django-migrations 检测模型更改,但不会在迁移时应用它们