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

2022-03-16 17:38 更新

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

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

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

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

使用其他管理命令

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


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號