Documentation
¶
Overview ¶
pkg/migration/initdb.go
pkg/migration/interfaces.go
pkg/migration/migration.go
pkg/migration/registry.go
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DefaultSQLFiles ¶
DefaultSQLFiles 根据数据库驱动返回默认 SQL 文件列表
Types ¶
type InitDbConfig ¶
type InitDbConfig struct {
Driver string // 数据库驱动: mysql, postgres, sqlite3
SQLFiles []string // SQL 文件路径(按执行顺序)
StopOnError bool // 遇到错误是否停止
}
InitDbConfig SQL 执行器配置
type Migration ¶
type Migration struct {
Version string `gorm:"primaryKey;size:64"`
ApplyTime time.Time `gorm:"autoCreateTime"`
}
Migration 迁移版本记录表
type MigrationFunc ¶
MigrationFunc 迁移函数签名
type MigrationRegistry ¶
type MigrationRegistry struct {
// contains filtered or unexported fields
}
MigrationRegistry 多租户迁移注册表
func (*MigrationRegistry) GetRegisteredVersions ¶
func (r *MigrationRegistry) GetRegisteredVersions() []string
GetRegisteredVersions 获取所有已注册版本(排序后)
func (*MigrationRegistry) MigrateTenant ¶
func (r *MigrationRegistry) MigrateTenant(tenantID int) error
MigrateTenant 执行指定租户的迁移
func (*MigrationRegistry) RegisterVersion ¶
func (r *MigrationRegistry) RegisterVersion(version string, fn MigrationFunc)
RegisterVersion 注册迁移版本(由 init() 调用)
func (*MigrationRegistry) SetTenantDb ¶
func (r *MigrationRegistry) SetTenantDb(tenantID int, db *gorm.DB)
SetTenantDb 设置租户数据库连接
type Registry ¶
type Registry interface {
// SetTenantDb 设置多租户数据库连接
SetTenantDb(tenantID int, db *gorm.DB)
// MigrateTenant 执行指定租户的迁移
MigrateTenant(tenantID int) error
// RegisterVersion 注册迁移版本
RegisterVersion(version string, fn MigrationFunc)
// GetRegisteredVersions 获取所有已注册版本
GetRegisteredVersions() []string
}
Registry 迁移注册表接口
type TenantMigration ¶
type TenantMigration struct {
// contains filtered or unexported fields
}
TenantMigration 单个租户的迁移上下文
Click to show internal directories.
Click to hide internal directories.