Python 在Django中使用现有数据库

Python 在Django中使用现有数据库,python,django,Python,Django,我在Django应用程序中使用多个数据库。default数据库是Django为用户身份验证等创建的数据库。然后我有一个vo数据库,其中包含我计划用于内容生成的现有数据 我希望models.py中的类链接到vo中的现有表。然而,当我 manage.py syncdb --database=vo 将创建一组新的空表。顺便说一句,这是一个SQLite3数据库 $ ./manage.py inspectdb --database=vo > your_app/models.py 如何将数据库中的

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

我希望
models.py
中的类链接到
vo
中的现有表。然而,当我

manage.py syncdb --database=vo
将创建一组新的空表。顺便说一句,这是一个SQLite3数据库

$ ./manage.py inspectdb --database=vo > your_app/models.py
如何将数据库中的现有表链接到Django中
models.py
上的类

非常感谢

  • 您需要将db
    vo
    添加到设置中
  • 如果您有这样的数据库设置

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3', 
            'NAME': os.path.join(DIR, 'django.sqlite3'),
            'USER': '',
            'PASSWORD': '',
            'HOST': '',
            'PORT': '',
        },
    }
    
    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': '',
        },
    }
    
    添加
    vo
    数据库设置,如下所示

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3', 
            'NAME': os.path.join(DIR, 'django.sqlite3'),
            'USER': '',
            'PASSWORD': '',
            'HOST': '',
            'PORT': '',
        },
    }
    
    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': '',
        },
    }
    
  • 然后可以从数据库自动生成模型

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


  • 签出:

    您想在vo中的更改反映在查询中的实际链接,还是只需将vo复制到默认值一次就足够了?您想用多个数据库创建一个ForeignKey吗?实际上,只需将db镜像到models.py中就足够了。这是通过下面的答案实现的。而且,不需要外键。谢谢,非常感谢,这很有效。现在,我只需要编辑和优化它生成的models.py。