Django4.0 多數(shù)據(jù)庫(kù)-同步數(shù)據(jù)庫(kù)

2022-03-16 17:38 更新

?migrate ?管理命令一次只在一個(gè)數(shù)據(jù)庫(kù)上進(jìn)行操作。默認(rèn)情況下,它在 ?default ?數(shù)據(jù)庫(kù)上操作,但提供 ?--database? 的話,它可以同步到不同數(shù)據(jù)庫(kù)。因此,如果想在上面例子中的所有數(shù)據(jù)庫(kù)上同步所有模型,你可以這樣調(diào)用:

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

如果不想每個(gè)應(yīng)用同步到特定數(shù)據(jù)庫(kù),可以定義 ?database router? ,它實(shí)施限制特定模型可用性的策略。
如上述第二個(gè)例子,如果 ?default ?數(shù)據(jù)庫(kù)為空,每次執(zhí)行 ?migrate ?的時(shí)候,必須提供數(shù)據(jù)庫(kù)名,否則會(huì)報(bào)錯(cuò)。

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

使用其他管理命令

大部分 ?django-admin? 命令像 ?migrate ?一樣操作數(shù)據(jù)庫(kù)——它們一次只操作一個(gè)數(shù)據(jù)庫(kù),使用 ?--database?  來(lái)控制所要使用的數(shù)據(jù)庫(kù)。
這個(gè)規(guī)則的一個(gè)例外是 ?makemigrations ?命令。它驗(yàn)證數(shù)據(jù)庫(kù)中的遷移歷史,以便在創(chuàng)建新遷移之前發(fā)現(xiàn)現(xiàn)有遷移文件的問(wèn)題(這可能是修改它們所產(chǎn)生)。默認(rèn)情況下,它只檢查 ?default ?數(shù)據(jù)庫(kù),但建議在任何模型安裝時(shí),執(zhí)行 ?allow_migrate() method of routers? 。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)