如何将 django 与现有 Postgres 数据库集成

gor*_*mwe 3 django django-models django-rest-framework

要在 Django 中使用现有数据库,您需要为每个表都有一个模型。但是手动为现有表创建模型的工作量太大。然而,没有必要这样做,因为 Django 有一个内置工具可以解决这个问题。

此处链接的参考文章:how-to-integrate-django-with-existing-database

gor*_*mwe 7

编辑设置.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': '<name>',
        'USER': '<user>',
        'PASSWORD': '<password>',
        'HOST': '<host>',
        'PORT': '<port>',
    }
}
Run Code Online (Sandbox Code Playgroud)

为链接的现有数据库表生成模型。

python manage.py inspectdb > models.py
Run Code Online (Sandbox Code Playgroud)

根据您的喜好调整您的桌子。复制所有表并将它们添加到您的应用程序 models.py

现在为现有表创建初始迁移

python manage.py makemigrations
Run Code Online (Sandbox Code Playgroud)

运行 migrate 命令来应用迁移,使用 --fake-initial 选项在可能的情况下应用迁移,并跳过表已存在的迁移:

python manage.py migrate --fake-initial
Run Code Online (Sandbox Code Playgroud)

此时,对模型结构和后续迁移的任何新更改都将像 Django 自创建以来就管理数据库一样工作

感谢:迪玛刀