Reputation: 303
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.
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
a set of new empty tables are created. BTW, it's a SQLite3 database.
How does one link existing tables in a database to the classes on models.py
in Django?
Many thanks.
Upvotes: 8
Views: 11447
Reputation: 29514
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': '',
},
}
Add vo
database settings to it like this
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.
Check out: Using Django's Multiple Database Support
Upvotes: 20