參考資料:Django 數(shù)據(jù)庫(kù)相關(guān)

1 JavaChen 的 Django ORM 三部曲

JavaChen 的博客 講解了 Django 中與數(shù)據(jù)庫(kù)相關(guān)的一些比較重要的內(nèi)容,當(dāng)然最完整的要看官方文檔,但這系列文章的好處是可以快速查詢到需要的命令或者參數(shù)含義。這三篇文章是遞進(jìn)關(guān)系,首先是 Django 如何與數(shù)據(jù)庫(kù)建立關(guān)系,其次是運(yùn)用 Django 對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪查改,最后是 Django 的數(shù)據(jù)庫(kù)不能滿足需求的情況下,如何調(diào)用原生 SQL 操作。

Django中的模型

講解了 Django models 中:

  • manage.py 涉及到 models 的命令
  • 字段的類型
  • 字段的參數(shù)
  • Meta 的屬性
  • models 的方法
  • 模型之間的關(guān)系:外鍵、多對(duì)一、多對(duì)多(不建議)、一對(duì)一
  • 模型的繼承(這樣就可以子類去建表,父類不需要再建表)
  • 用 Meta 的 db_table 屬性設(shè)置數(shù)據(jù)庫(kù)中的表明

Django中的ORM

  • queryset 對(duì)象的 CRUD 操作

Django中SQL查詢

  • 使用原生的 SQL 查詢 .objects.raw()

2 kawabangga 的數(shù)據(jù)遷移

Django的數(shù)據(jù)遷移(Data migration)

介紹了如何生成空的 migrations 文件,然后寫入自己想遷移的數(shù)據(jù)。同時(shí),也提到常用的兩種傳統(tǒng)的數(shù)據(jù)庫(kù)復(fù)制操作。

記一次Django數(shù)據(jù)遷移Bug

Django 如果做過(guò) makemigrations,在 Django 包所在的位置也會(huì)出現(xiàn)改變,所以在做 makemigrations 前,最好先 git 一次,以便出現(xiàn)問(wèn)題回滾。

django數(shù)據(jù)庫(kù)migrate失敗的解決方法

介紹了最常用的解決 migrate 失敗的方法,就是刪了重來(lái)。

3 Django 的數(shù)據(jù)庫(kù)導(dǎo)入/導(dǎo)出 dumpdata and loaddata

Django 最傳統(tǒng)的 dumpdata 成 json,然后在新 Django 服務(wù)中 去 loaddata 導(dǎo)入數(shù)據(jù)庫(kù)。

這樣做的問(wèn)題:1、如果數(shù)據(jù)庫(kù)過(guò)大就會(huì)導(dǎo)入不成功。如下文的評(píng)論提到一樣

Django dumpdata and loaddata

也會(huì)出現(xiàn):2、導(dǎo)入以后涉及到用戶的關(guān)系等表出現(xiàn)問(wèn)題。所以這篇作者還是建議直接在 MySQL 里面復(fù)制或者導(dǎo)入/導(dǎo)出數(shù)據(jù)庫(kù)更穩(wěn)定可靠。

Django 數(shù)據(jù)遷移

另外還有一篇關(guān)于 dumpdata/loaddata 相關(guān)參數(shù)的介紹可看。
8 Useful Django Dumpdata and Loaddata Commands

4 關(guān)于 migrate 的 --fake 參數(shù)

Django 數(shù)據(jù)表更改

意思是這個(gè)表我以前已經(jīng)建好了,用 South 只是紀(jì)一下這個(gè)創(chuàng)建記錄,下次 migrate 的時(shí)候不必再創(chuàng)建了。

這里 South 是 Django 1.7 及以前的數(shù)據(jù)庫(kù)遷移工具,現(xiàn)在整合進(jìn)了 Djano 的 migrate。

5 Django 非傳統(tǒng)的數(shù)據(jù)庫(kù)復(fù)制與遷移(涉及到的數(shù)據(jù)庫(kù)路由)

以下兩篇文章都涉及到 Django 的數(shù)據(jù)庫(kù)路由。

Migrating Django from MySQL to PostgreSQL the Easy Way 2010

Migrating data between databases

這一篇詳解了 Django 如何與現(xiàn)有的數(shù)據(jù)庫(kù)進(jìn)行整合

Migrating data into your Django project

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容