plugin

package
v0.0.0-...-21f96e3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 20, 2023 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultTagName = "mt"

Variables

This section is empty.

Functions

This section is empty.

Types

type Model

type Model interface {
	TableName() string
	DataIsolation() bool
	AutoMigrate(db *gorm.DB, tableName string) error
}

type MultiTenancy

type MultiTenancy struct {
	*gorm.DB
	// contains filtered or unexported fields
}

MultiTenancy 多租户数据隔离插件

var MTPlugin *MultiTenancy

func (*MultiTenancy) AddDB

func (mt *MultiTenancy) AddDB(tenantId string, db *gorm.DB)

AddDB *

  • @Description: 注册数据库
  • @receiver mt
  • @param tenantId
  • @param db

func (*MultiTenancy) AutoMigrate

func (mt *MultiTenancy) AutoMigrate(db *gorm.DB, tenantId string, model Model)

AutoMigrate *

  • @Description: 自动迁移
  • @receiver mt
  • @param db
  • @param tenantId
  • @param model

func (*MultiTenancy) DataIsolation

func (mt *MultiTenancy) DataIsolation(db *gorm.DB) (model Model, dataIsolation bool)

DataIsolation *

  • @Description: 是否进行数据隔离
  • @receiver mt
  • @param db
  • @return dataIsolation

func (*MultiTenancy) GetDBByTenantId

func (mt *MultiTenancy) GetDBByTenantId(tenantId string) (db *gorm.DB, err error)

GetDBByTenantId *

  • @Description: 利用租户标识获取数据库
  • @receiver mt
  • @param tenantId
  • @return db
  • @return err

func (*MultiTenancy) Initialize

func (mt *MultiTenancy) Initialize(db *gorm.DB) error

func (*MultiTenancy) Name

func (mt *MultiTenancy) Name() string

func (*MultiTenancy) Register

func (mt *MultiTenancy) Register(tenantTag string, conn TenantDBConn) *MultiTenancy

Register *

  • @Description: 注册数据隔离插件
  • @receiver mt
  • @param dbMap 数据库Map
  • @param tenantTag 数据隔离字段标识
  • @return *MultiTenancy

func (*MultiTenancy) SetDataIsolation

func (mt *MultiTenancy) SetDataIsolation(model ...Model) (err error)

SetDataIsolation *

  • @Description: 获取数据隔离字段标识
  • @receiver mt
  • @return string

func (*MultiTenancy) SetEncryptedSave

func (mt *MultiTenancy) SetEncryptedSave(encrypt func(data string) (cipherTxt string, err error), decrypt func(cipherTxt string) (data string, err error))

SetEncryptedSave *

  • @Description: 注册加密存储
  • @receiver mt
  • @param encrypt
  • @param decrypt

type MultiTenancyTag

type MultiTenancyTag struct {
	DBName    string
	FieldName string
	FieldType reflect.Type

	Encrypt bool
	// contains filtered or unexported fields
}

type TenantDBConn

type TenantDBConn interface {
	CreateDBConn(tenant string) (db *gorm.DB, err error)
}

TenantDBConn 数据库连接接口

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL