有没有一种简单的方法可以将 Django 的模型和迁移链与 db 验证一致性进行比较?

Posted

技术标签:

【中文标题】有没有一种简单的方法可以将 Django 的模型和迁移链与 db 验证一致性进行比较?【英文标题】:Is there an easy way to compare Django's models and migration chain against the db verify consistency? 【发布时间】:2015-03-23 05:10:19 【问题描述】:

随着时间的推移,我遇到了一些迁移问题,并且偶尔会遇到无法正确迁移字段的情况(几乎可以肯定是因为我尝试了一些虚假迁移以使我的开发数据库处于工作状态)。

执行自动模式迁移将根据模型检查迁移链,但不会根据实际数据库检查其中任何一个。

有没有一种方法可以轻松地将数据库与当前模型或迁移链进行比较,并验证数据库、模型和迁移链是否一致?

作为一个稻草人,假设您删除了迁移,创建了一个新的初始迁移,并在删除幽灵迁移时假冒了该初始迁移。

验证数据库是否与初始迁移同步?

【问题讨论】:

manage.py sql appname 和实际转储之间运行一个差异如何? 这是一个有趣的想法,可能会奏效,但需要围绕它编写更多脚本。我希望这样的事情可以通过一些简单的标准方式来完成(即带有一个或两个选项的命令) 【参考方案1】:

django-extensions 应用程序提供sqldiff 管理命令,显示当前数据库和您的模型之间的差异。因此,如果您的数据库和模型之间存在差异(运行makemigrations 命令后迁移应该相同),您会看到。

【讨论】:

以上是关于有没有一种简单的方法可以将 Django 的模型和迁移链与 db 验证一致性进行比较?的主要内容,如果未能解决你的问题,请参考以下文章

有没有一种简单的方法可以在 Django 管理站点中创建链式动态下拉列表?

有没有一种简单的方法可以在 django 中获取用户的组名

如何获取 Django 模型中字段的默认值?

如何自省 Django 中的属性和模型字段?

Django 1.8 和 Django Crispy Forms:是不是有一种简单易行的方法来实现日期选择器?

有没有一种简单的方法可以使用 DataContext 实现 LINQ 到对象?