使用Django中的现有数据库

时间:2014-09-06 05:59:04

标签: python django

我在Django应用程序中使用多个数据库。 default数据库是Django为用户身份验证等创建的数据库。然后我有一个vo数据库,其中包含现有数据,我计划将其用于内容生成。

我希望models.py中的类能够链接到vo中的现有表格。但是,当我做的时候

manage.py syncdb --database=vo

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

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

非常感谢。

1 个答案:

答案 0 :(得分:8)

  1. 您需要将数据库vo添加到设置中。
  2. 如果你有这样的数据库设置

    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. 然后您可以从数据库自动生成模型。

      $ ./manage.py inspectdb --database=vo > your_app/models.py
      
    2. 配置数据库路由器。

    3. 退房:Using Django's Multiple Database Support