django 1.8 官方文档翻译: 2-6-2 将遗留数据库整合到Django

将遗留数据库整合到Django

虽然Django最适合用来开发新的应用,但也能够将它整合到遗留的数据库中。Django包含了不少工具,尽量自动化解决这类问题。html

这篇文章假设你了解Django的基础部分,它们在教程中说起。python

一旦你的Django环境创建好以后,你能够按照这个大体的流程,整合你的现有数据库。git

向Django提供你的数据库参数

你须要告诉Django你的数据库链接参数,以及数据库的名称。请修改DATABASES设置,为'默认' 链接的如下键赋值:github

  • NAME数据库

  • ENGINEdjango

  • USER工具

  • PASSWORD测试

  • HOSTspa

  • 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后台页面编辑对象,以及相应地编辑模型文件。

译者:飞龙,原文:egacy databases

本文以 CC BY-NC-SA 3.0 协议发布,转载请保留做者署名和文章出处。

Django 文档协做翻译小组人手紧缺,有兴趣的朋友能够加入咱们,彻底公益性质。交流群:467338606。

若是以为文章还不错,能够扫描下面的二维码来打赏我。

相关文章
相关标签/搜索