当前位置:Gxlcms > 数据库问题 > Django中如何实现数据库路由?

Django中如何实现数据库路由?

时间:2021-07-01 10:21:17 帮助过:34人阅读

4个方法的类,这四个方法是:

  db_for_read(model, **hints)

  对于该model 用哪个数据库来读。

  db_for_write(model, **hints)

  对于该model用哪个数据库来写。

  allow_relation(obj1, obj2, **hints)

  是否允许两个对象关联到数据库。

  allow_migrate(db, app_label, model_name=None, **hints)

  对于指定的app,是否允许对db这个数据库进行migrate

  打开routers.py文件,做如下配置:

技术分享

    class SampleDBRouter(object):

  def db_for_read(self, model, **hints):

  if model._meta.label == ‘multiDB.Logger‘:

  return ‘logs‘  (如果是Logger‘的模型,就返回logs的数据库。将信息存到lab2

  elif model._meta.label == ‘multiDB.LogUser‘:

  return ‘users‘(如果是LogUser‘的模型,就返回users的数据库。将信息存到lab1

  return None

  def db_for_write(self, model, **hints):

  if model._meta.label == ‘multiDB.Logger‘:

  return ‘logs‘

  elif model._meta.label == ‘multiDB.LogUser‘:

  return ‘users‘

  return None

  def allow_relation(self, obj1, obj2, **hints):

  return True    (关联,存放到指定地方。)

  def allow_migrate(self, db, app_label, model=None, **hints):

  if model._meta.label == ‘multiDB.Logger‘:

  return db == ‘logs‘(如果模型是multiDB.Logger,数据库是logs,就可以迁徙)

  elif model._meta.label == ‘multiDB.LogUser‘:

  return db == ‘users‘(如果模型是multiDB.LogUser,数据库是users,就可以迁徙)

  return None

 

原文链接:http://www.maiziedu.com/wiki/django/server/

Django中如何实现数据库路由?

标签:ref   elf   object   lan   技术分享   nbsp   技术   turn   实现   

人气教程排行