我完全同意@alecxe使用数据库路由器。我目前正在使用一个管理界面来管理多个数据库。请注意,所有数据库的身份验证都存储在默认数据库中,因此当你执行
syncdb(不带参数)时。
通用数据库路由器
我发现此实现非常灵活且有用。
Settings.py
# Define the database manager to setup the various projectsDATAbase_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': '', },}样本模型
# 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 __unipre__(self): return self.nameclass Status_Type(models.Model): status = models.CharField(max_length=25) class meta: app_label = 'mux_data' def __unipre__(self): return self.status



