當前位置:成語大全網 - 書法字典 - Django如何使用多數據庫方法介紹

Django如何使用多數據庫方法介紹

壹些項目可能涉及多個數據庫的使用,並且方法很簡單。接下來,通過這篇文章,我將介紹Django如何使用多數據庫供您參考。

壹些項目可能涉及多個數據庫的使用,並且方法很簡單。

1.在設置中設置數據庫。

例如,要使用兩個數據庫:

通過這種方式,可以識別兩個數據庫,壹個別名為default,另壹個別名為user。數據庫的別名可以任意確定。

默認的別名是特殊的。當模型在路由中沒有特殊選擇時,默認情況下使用默認數據庫。

當然,默認值也可以設置為null:

這樣,因為沒有默認的數據庫,所以有必要為所有模型進行數據庫路由,包括所使用的第三方庫中的模型。

2.為需要進行數據庫選擇的模型定義app_label。

3.編寫數據庫路由器

數據庫路由器用於確定模型使用哪個數據庫,主要定義了以下四種方法:

db_for_read(型號,* *提示)

指定模型用於讀取的數據庫。

寫數據庫(模型,* *提示)

指定模型用於寫入的數據庫。

allow _ relation(obj 1,obj2,* *提示)

確定obj1和obj2之間是否可以生成關聯,主要用於外鍵和多對多操作。

allow _ migrate(db,app_label,model_name=None,* *提示)

確定是否可以在別名為db的數據庫上運行遷移操作。

完整的示例:

數據庫設置:

如果妳想達到以下效果:

帶有app_label auth的模型在auth_db中讀寫,模型的其余部分在primary中寫入,讀取在replica1和replica2中隨機進行。

身份驗證:

這樣,帶有app_label auth的模型在auth_db中被讀取和寫入,並且允許關聯。遷移只能在auth_db數據庫中運行。

其余部分:

這樣,讀取在replica1和replica2中隨機進行,寫入使用primary。

最後,在設置中設置:

去做吧。

遷移時:

默認情況下,遷移操作在默認數據庫上進行。要對其他數據庫進行操作,可以使用- database選項,後跟數據庫的別名。

相應地,dbshell、dumpdata和loaddata命令都有- database選項。

您也可以手動選擇路線:

查詢:

保存:

移動:

上面的代碼會導致問題。當P第壹次保存在第壹個數據庫中時,默認情況下會生成壹個主鍵,因此當保存在第二個數據庫中時,P已經有壹個主鍵。如果不使用此主鍵,它不會導致問題,但如果之前使用過它,它將覆蓋原始數據。

有兩種解決方案;

1.保存前清除主鍵:

2.使用強制插入

刪除:

您是從哪個數據庫獲得該對象的,又是在哪裏刪除的?

如果要將對象從舊用戶數據庫轉移到新用戶數據庫: