如何将 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 的管理站点编辑对象,并相应地编辑模型文件。

返回顶部