Форум сайта python.su
 
							 0
  0   
								
								DATABASES = {
    'default': {
        'ENGINE': 'mysql',
        'NAME': 'db_1',
        'USER': 'user',
        'PASSWORD': '123',
    },
	'users': {
        'ENGINE': 'mysql',
        'NAME': 'db_2',
        'USER': 'user',
        'PASSWORD': '123',
    }
}Отредактировано (Ноя. 30, 2010 22:23:28)
Офлайн
 
							 3
  3   
								
								Офлайн
 
							 0
  0   
								
								Я видел..
    ./manage.py syncdb –database=users
    … using –database to control the database used
но все ровно не понял..
Офлайн
 
							 3
  3   
								
								del3dIf you don't want every application to be synchronized onto a particular database, you can define a database router that implements a policy constraining the availability of particular models.
но все ровно не понял..
Офлайн
 
							 0
  0   
								
								А классы роутеров можно описать в отдельном файле? .. или где их место?
Офлайн
 
							 3
  3   
								
								del3d, поскольку роутеры относятся ко всему проекту сразу, я б их описывал в модуле в корне проекта. Никогда реально такого не делал, но такое решение мне кажется самым логичным.
Отредактировано (Дек. 3, 2010 21:20:27)
Офлайн
 
							 0
  0   
								
								Это какой-то пипец… убейте меня.. 5-й день пытаюсь врубиться в database router.. хрень какая-то.. ничо не понятно.. неужели нельзя сделать просто, привязать таблицу к БД и ВСЕ!!!
такая нужная шткуа и ни одного нормального мануала в сети..
Можно не отвечать.. это эмоции :-t
Офлайн
 
							 1
  1   
								
								По ссылке regall всё написано с исчерпывающими примерами.
Офлайн
 
							 0
  0   
								
								# settings.py
...
DATABASES = {
'default': {
'ENGINE': 'mysql',
'NAME': 'default',
'USER': 'root',
'PASSWORD': '123',
},
'mydb': {
'ENGINE': 'mysql',
'NAME': 'mydb',
'USER': 'root',
'PASSWORD': '123',
}
}
DATABASE_ROUTERS = ['project.router.MyAppRouter']
...
# router.py
class MyAppRouter(object):
def db_for_read(self, model, **hints):
if model._meta.app_label == 'myapp':
return 'mydb'
return None
def db_for_write(self, model, **hints):
if model._meta.app_label == 'myapp':
return 'mydb'
return None
def allow_relation(self, obj1, obj2, **hints):
if obj1._meta.app_label == 'myapp' or obj2._meta.app_label == 'myapp':
return True
return None
def allow_syncdb(self, db, model):
if db == 'mydb':
return model._meta.app_label == 'myapp'
elif model._meta.app_label == 'myapp':
return False
return None
Офлайн
 
							 0
  0   
								
								def allow_syncdb(self, db, model):
if db == 'mydb':
return False
else:
return True
def allow_syncdb(self, db, model):
if db == 'mydb':
return True
else:
return False
Офлайн