codecamp

Django4.0 多数据库-同步数据库

migrate ​管理命令一次只在一个数据库上进行操作。默认情况下,它在 ​default ​数据库上操作,但提供 ​--database​ 的话,它可以同步到不同数据库。因此,如果想在上面例子中的所有数据库上同步所有模型,你可以这样调用:

$ ./manage.py migrate
$ ./manage.py migrate --database=users

如果不想每个应用同步到特定数据库,可以定义 ​database router​ ,它实施限制特定模型可用性的策略。
如上述第二个例子,如果 ​default ​数据库为空,每次执行 ​migrate ​的时候,必须提供数据库名,否则会报错。

$ ./manage.py migrate --database=users
$ ./manage.py migrate --database=customers

使用其他管理命令

大部分 ​django-admin​ 命令像 ​migrate ​一样操作数据库——它们一次只操作一个数据库,使用 ​--database​  来控制所要使用的数据库。
这个规则的一个例外是 ​makemigrations ​命令。它验证数据库中的迁移历史,以便在创建新迁移之前发现现有迁移文件的问题(这可能是修改它们所产生)。默认情况下,它只检查 ​default ​数据库,但建议在任何模型安装时,执行 ​allow_migrate() method of routers​ 。


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; }