本文介绍了在Django中使用现有数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在Django应用中使用多个数据库。 default 数据库是Django为用户身份验证等创建的数据库。然后,我有了一个 vo 数据库,其中已有数据,我打算将其用于内容生成。

I'm using multiple databases in a Django app. The default database is the one Django creates for user authentication, etc. Then I have a vo database, with existing data, which I plan to use for the content generation.

我希望 models.py 中的类进行链接到 vo 中的现有表。但是,当我这样做时

I wanted the classes in models.py to link up to the existing tables in vo. However, when I do

manage.py syncdb --database=vo

创建了一组新的空表。顺便说一句,它是一个SQLite3数据库。

a set of new empty tables are created. BTW, it's a SQLite3 database.

如何将数据库中的现有表链接到 models.py

How does one link existing tables in a database to the classes on models.py in Django?

非常感谢。

推荐答案


  1. 您需要将db vo 添加到设置。

  1. You need to add your db vo to settings.

如果您具有这样的数据库设置

if you have your database settings like this

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(DIR, 'django.sqlite3'),
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '',
    },
}

向其中添加 vo 数据库设置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(DIR, 'django.sqlite3'),
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '',
    },

    # this your existing db
    'vo': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(DIR, 'vo.sqlite'),
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '',
    },
}




  1. 然后您可以从数据库自动生成模型。

  1. Then you can generate models automatically from the database.

$ ./manage.py inspectdb --database=vo > your_app/models.py


  • 配置数据库路由器。

  • Configure database routers.

    签出:

    这篇关于在Django中使用现有数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

  • 09-02 13:49