问题描述
我正在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?
非常感谢。
推荐答案
- 您需要将db
vo
添加到设置。
- 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': '',
},
}
-
然后您可以从数据库自动生成模型。
Then you can generate models automatically from the database.
$ ./manage.py inspectdb --database=vo > your_app/models.py
配置数据库路由器。
Configure database routers.
签出:
这篇关于在Django中使用现有数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!