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
。
备案信息: 粤ICP备15087711号-2
Copyright © 2008-2024 啊嘎哇在线工具箱 All Rights.
本站所有资料来源于网络,版权归原作者所有,仅作学习交流使用,如不慎侵犯了您的权利,请联系我们。