天天看點

django 1.8 官方文檔翻譯: 2-6-2 遺留的資料庫将遺留資料庫整合到Django

Django 文檔協作翻譯小組人手緊缺,有興趣的朋友可以加入我們,完全公益性質。

交流群:467338606

網站:

http://python.usyiyi.cn/django/index.html

将遺留資料庫整合到Django

雖然Django最适合用來開發新的應用,但也可以将它整合到遺留的資料庫中。Django包含了很多工具,盡可能自動化解決這類問題。

這篇文章假設你了解Django的基礎部分,它們在教程中提及。

一旦你的Django環境建立好之後,你可以按照這個大緻的流程,整合你的現有資料庫。

向Django提供你的資料庫參數

你需要告訴Django你的資料庫連接配接參數,以及資料庫的名稱。請修改DATABASES設定,為’預設’ 連接配接的以下鍵指派:

  • NAME
  • ENGINE
  • USER
  • PASSWORD
  • HOST
  • PORT

自動生成模型

Django自帶叫做inspectdb的工具,可以按照現有的資料庫建立模型。你可以運作以下指令,并檢視輸出:

$ python manage.py inspectdb           

通過重定向Unix标準輸出流來儲存檔案:

$ python manage.py inspectdb > models.py           

這個特性是一個快捷方式,并不是一個确定的模型生成器。詳見inspectdb文檔 。

一旦你建立好了你的模型,把檔案命名為models.py,然後把它放到你應用的Python包中。然後把應用添加到你的INSTALLED_APPS 設定中。

預設情況下,inspectdb建立未被管理的模型。這就是說,模型的Meta類中的managed = False告訴Django不要管理每個表的建立、修改和删除:

class Person(models.Model):
    id = models.IntegerField(primary_key=True)
    first_name = models.CharField(max_length=70)
    class Meta:
       managed = False
       db_table = 'CENSUS_PERSONS'           

如果你希望Django管理表的生命周期,你需要把managed選項改為 True(或者簡單地把它移除,因為True是預設值)。

安裝Django核心表

接下來,運作migrate指令來安裝所有所需的額外的資料庫記錄,比如背景權限和内容類型:

$ python manage.py migrate           

測試和調整

上面就是所有基本的步驟了 —— 到目前為止你會想要調整Django自動生成的模型,直到他們按照你想要的方式工作。嘗試通過Django資料庫API通路你的資料,并且嘗試使用Django背景頁面編輯對象,以及相應地編輯模型檔案。