如何將 Django 與舊有資料庫整合

雖然 Django 最適合開發新的應用程式,但將其整合到舊有資料庫中也是完全可行的。Django 包含一些實用工具,可盡可能自動化此過程。

本文假設您已了解 Django 的基本知識,如教學文件中所述。

設定好 Django 後,您將按照以下一般步驟與現有的資料庫整合。

提供 Django 您的資料庫參數

您需要告知 Django 您的資料庫連線參數以及資料庫的名稱。請編輯 DATABASES 設定,並將值指派給 'default' 連線的下列鍵:

自動產生模型

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 的管理員網站編輯物件,並據此編輯模型檔案。

回到頂端