migration

package
v1.1.39 Latest Latest
Warning

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

Go to latest
Published: Feb 16, 2026 License: Apache-2.0 Imports: 10 Imported by: 0

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

func DefaultSQLFiles(driver, configDir string) []string

DefaultSQLFiles 根据数据库驱动返回默认 SQL 文件列表

func InitDb

func InitDb(db *gorm.DB, config InitDbConfig) error

InitDb 执行 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 迁移版本记录表

func (Migration) TableName

func (Migration) TableName() string

type MigrationFunc

type MigrationFunc func(db *gorm.DB, version string) error

MigrationFunc 迁移函数签名

type MigrationRegistry

type MigrationRegistry struct {
	// contains filtered or unexported fields
}

MigrationRegistry 多租户迁移注册表

func GetRegistry

func GetRegistry() *MigrationRegistry

GetRegistry 获取全局注册表单例

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 单个租户的迁移上下文

Jump to

Keyboard shortcuts

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