codecamp

Django4.0 迁移-依赖

虽然迁移是针对每个应用程序的,但模型隐含的表和关系过于复杂,无法一次为一个应用程序创建。当您进行需要运行其他东西的迁移时 - 例如,您在图书应用程序中将 ​ForeignKey ​添加到您的作者应用程序 - 生成的迁移将包含对authors迁移中的依赖。

这意味着当您运行迁移时,authors迁移首先运行并创建 ​ForeignKey ​引用的表,然后生成 ​ForeignKey ​列的迁移随后运行并创建约束。如果这没有发生,迁移将尝试创建 ​ForeignKey ​列,而它所引用的表不存在,并且您的数据库将引发错误。

这种依赖行为会影响您限制为单个应用程序的大多数迁移操作。限制为单个应用程序(在 ​makemigrations ​或 ​migrate ​中)是尽力而为的承诺,而不是保证;任何其他需要用于正确获取依赖关系的应用程序都将是。

没有迁移的应用不得与有迁移的应用有关系(​ForeignKey​、​ManyToManyField ​等)。有时它可能有效,但不受支持。


Django4.0 迁移-事务
Django4.0 迁移-迁移文件
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Django4.0 模型和数据库

Django4.0 处理HTTP请求

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }