当还涉及迁移时,如何使用 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 进行同步数据库的主要内容,如果未能解决你的问题,请参考以下文章
Redis技术探索「数据迁移实战」手把手教你如何实现在线 + 离线模式进行迁移Redis数据实战指南(离线同步数据)
Django 迁移——是不是可以在项目中间使用 South?