• django 多数据分库


    路由策略

    # -*- coding: utf-8 -*-
    from django.conf import settings
    
    
    class DatabaseAppsRouter(object):
        """
        A router to control all database operations on models for different
        databases.
    
        In case an app is not set in settings.DATABASE_APPS_MAPPING, the router
        will fallback to the `default` database.
    
        Settings example:
    
        DATABASE_APPS_MAPPING = {'app1': 'db1', 'app2': 'db2'}
        """
    
        def db_for_read(self, model, **hints):
            """"Point all read operations to the specific database."""
            if model._meta.app_label == 'yw_monitor':
                return 'webmonitor'
            return None
    
        def db_for_write(self, model, **hints):
            """Point all write operations to the specific database."""
            if model._meta.app_label == 'yw_monitor':
                return 'webmonitor'
            return None
    
        def allow_relation(self, obj1, obj2, **hints):
            """Allow any relation between apps that use the same database."""
            if obj1._meta.app_label == 'yw_monitor' or obj2._meta.app_label == 'yw_monitor':
                return True
            return None
    
        def allow_migrate(self, db, app_label, model_name=None, **hints):
            """Make sure that apps only appear in the related database."""
    
            if app_label == 'yw_monitor':
                return db == 'webmonitor'
            return None
  • 相关阅读:
    简单C#、asp.net mvc验证码的实现
    c# 局域网文件传输实例
    c# http get请求与post请求实例
    轻松3步实现c#windowsform窗体美化
    c#内部类的使用
    java
    java
    java
    java
    java
  • 原文地址:https://www.cnblogs.com/muzinan110/p/7573999.html
Copyright © 2020-2023  润新知