Tôi hoàn toàn đồng ý với @alecxe về cách sử dụng bộ định tuyến cơ sở dữ liệu. Tôi hiện đang sử dụng một giao diện quản trị duy nhất để quản lý nhiều cơ sở dữ liệu. Lưu ý rằng xác thực cho tất cả các cơ sở dữ liệu được lưu trữ trong cơ sở dữ liệu mặc định, vì vậy khi bạn thực hiện syncdb
(không có đối số).
Generic Cơ sở dữ liệu Router
tôi thấy this thực hiện là cực kỳ linh hoạt và hữu ích.
Settings.py
# Define the database manager to setup the various projects
DATABASE_ROUTERS = ['manager.router.DatabaseAppsRouter']
DATABASE_APPS_MAPPING = {'mux_data': 't29_db',
'T50_VATC':'t50_db'}
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'fail_over',
'USER': 'SomeUser',
'PASSWORD': 'SomePassword',
'HOST': '127.0.0.1',
'PORT': '',
},
't29_db': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'mux_stage',
'USER': 'SomeUser',
'PASSWORD': 'SomePassword',
'HOST': '127.0.0.1',
'PORT': '',
},
't50_db': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 't50_vatc',
'USER': 'SomeUser',
'PASSWORD': 'SomePassword',
'HOST': '127.0.0.1',
'PORT': '',
},
}
mẫu Models
# Create your models here.
class Card_Test(models.Model):
name = models.TextField(max_length=100)
description = models.TextField(max_length=200)
units = models.TextField(max_length=500)
result_tags = models.TextField(max_length=500)
class Meta:
app_label = 'mux_data'
def __unicode__(self):
return self.name
class Status_Type(models.Model):
status = models.CharField(max_length=25)
class Meta:
app_label = 'mux_data'
def __unicode__(self):
return self.status
Nguồn
2013-08-31 12:46:07
@alecxe - không phải là OP nhưng bạn cố định vấn đề của tôi :) – whoisearth