国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

Django4.0 遷移-后端支持

2022-03-16 17:49 更新

所有 Django 支持的數據庫后端都支持遷移,還有些支持表修改(通過 SchemaEditor 類實現)的第三方后端也支持。

然而,有些數據庫在表結構變更方面比其它數據庫更強;下面介紹一些注意事項。

PostgreSQL

PostgreSQL 在架構支持方面是所有數據庫中是最強的。
唯一需要注意的是,在 PostgreSQL 11 之前,添加具有默認值的列會導致表的完全重寫,時間長短與表的大小成正比。 因此,建議你始終使用 ?null=True? 創(chuàng)建新列,因為這樣可以立即添加它們。

MySQL

MySQL 缺乏對架構變更操作相關事務的支持,這意味著如果遷移失敗,你將必須手動取消更改才能重試(無法回滾到較早的時間)。

此外,MySQL 幾乎每一次架構操作都會完全重寫表,一般來說,增加或刪除列需要的時間與表的行數成正比。在速度較慢的硬件上,這可能比每百萬行一分鐘還要糟糕——在一個只有幾百萬行的表中添加幾列,可能會讓你的網站鎖定十幾分鐘。

最后,MySQL 對列、表和索引的名稱長度有相對較小的限制,并且對索引涵蓋的所有列的組合大小也有限制。 這意味著在其他后端上創(chuàng)建的索引將可能無法在 MySQL 下創(chuàng)建。

SQLite

SQLite 幾乎沒有內置的架構更改支持,因此 Django 嘗試通過以下方式對其進行模擬:

  • 使用新架構創(chuàng)建新表
  • 復制數據
  • 刪除舊表
  • 重新命名新表,使之與原表名相匹配。
此過程一般工作的很好,但它可能很慢,偶爾也會出現問題。除非你非常清楚風險和它的局限性,否則不建議你在生產環(huán)境中運行和遷移 SQLite;Django 自帶的支持是為了讓開發(fā)人員在本地計算機上使用 SQLite 來開發(fā)較不復雜的 Django 項目,而無需完整的數據庫。


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號