Django4.0 多数据库-同步数据库
2022-03-16 17:38 更新
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
。
以上内容是否对您有帮助:
更多建议: