Documentation
¶
Index ¶
- Variables
- func AddProvider(driver string, provider SqlProvider)
- type ColumnInfo
- type DB
- func (db *DB) Close() error
- func (db *DB) Driver() string
- func (db *DB) DropSchema() error
- func (db *DB) InitSchema() error
- func (db *DB) QueryTableSchema(tableName string) ([]ColumnInfo, error)
- func (db *DB) SetDebug(debug bool)
- func (db *DB) ShowTables() ([]string, error)
- func (db *DB) SilentClose()
- func (db *DB) SqlProvider() (SqlProvider, error)
- type MSSqlProvider
- type MySqlProvider
- type PgSqlProvider
- func (b *PgSqlProvider) DeleteByVersion() string
- func (b *PgSqlProvider) GetAppliedSortedByVersion() string
- func (b *PgSqlProvider) InsertMigration() string
- func (b *PgSqlProvider) QueryExists() string
- func (b *PgSqlProvider) QueryOne() string
- func (b *PgSqlProvider) QueryStatus() string
- func (b *PgSqlProvider) QueryTableSchema(tableName string) string
- func (b *PgSqlProvider) ShowTables() string
- func (b *PgSqlProvider) UpdateMigration() string
- type ReSqlProvider
- func (b *ReSqlProvider) CreateSchema() string
- func (b *ReSqlProvider) DeleteByVersion() string
- func (b *ReSqlProvider) DropSchema() string
- func (b *ReSqlProvider) GetAppliedSortedByVersion() string
- func (b *ReSqlProvider) InsertMigration() string
- func (b *ReSqlProvider) QueryAll() string
- func (b *ReSqlProvider) QueryExists() string
- func (b *ReSqlProvider) QueryOne() string
- func (b *ReSqlProvider) QueryStatus() string
- func (b *ReSqlProvider) QueryTableSchema(tableName string) string
- func (b *ReSqlProvider) ShowTables() string
- func (b *ReSqlProvider) UpdateMigration() string
- type SqlProvider
- type SqliteProvider
Constants ¶
This section is empty.
Variables ¶
var SchemaTableName = "z_schema_migrations"
SchemaTableName 默认数据库迁移记录表名
Functions ¶
func AddProvider ¶
func AddProvider(driver string, provider SqlProvider)
AddProvider 添加数据库 SQL 语句提供者
Types ¶
type ColumnInfo ¶
type ColumnInfo struct {
Name string
Type string
NotNull string
Default sql.NullString
Key string
Extra string
}
ColumnInfo represents information about a database column
type DB ¶
DB represents a database connection
func Connect ¶
Connect establishes a database connection
driver: mysql, postgres, sqlite. see migcom.DriverMySQL
sqlDriver: Affected by the driver libraries used. eg: sqlite, sqlite3; pg, pgx, postgres.
DSN format:
mysql: username:password@tcp(host:port)/dbname?charset=utf8mb4&parseTime=True&loc=Local
postgres: host=localhost port=5432 user=username password=password dbname=dbname sslmode=disable
sqlite: filepath
func NewWithSqlDB ¶
NewWithSqlDB create a new database connection with sql.DB
func (*DB) InitSchema ¶
InitSchema creates the migrations table if it doesn't exist
func (*DB) QueryTableSchema ¶
func (db *DB) QueryTableSchema(tableName string) ([]ColumnInfo, error)
QueryTableSchema queries the schema of a specific table
func (*DB) ShowTables ¶
ShowTables displays all tables in the database
func (*DB) SqlProvider ¶
func (db *DB) SqlProvider() (SqlProvider, error)
SqlProvider for database driver
type MSSqlProvider ¶
type MSSqlProvider struct {
ReSqlProvider
}
MSSqlProvider for mssql
func (*MSSqlProvider) CreateSchema ¶
func (b *MSSqlProvider) CreateSchema() string
CreateSchema 创建数据库结构. mssql 使用 DATETIME2 和 IDENTITY
func (*MSSqlProvider) QueryTableSchema ¶
func (b *MSSqlProvider) QueryTableSchema(tableName string) string
QueryTableSchema 获取数据库表结构
type PgSqlProvider ¶
type PgSqlProvider struct {
ReSqlProvider
}
PgSqlProvider postgres sql 语句提供者
NOTE: pgsql 绑定参数语法不一样,使用 $N
func (*PgSqlProvider) DeleteByVersion ¶
func (b *PgSqlProvider) DeleteByVersion() string
DeleteByVersion 删除指定版本
func (*PgSqlProvider) GetAppliedSortedByVersion ¶
func (b *PgSqlProvider) GetAppliedSortedByVersion() string
GetAppliedSortedByVersion 获取所有已迁移的版本,按迁移 version desc排序
func (*PgSqlProvider) InsertMigration ¶
func (b *PgSqlProvider) InsertMigration() string
InsertMigration 插入迁移记录
func (*PgSqlProvider) QueryExists ¶
func (b *PgSqlProvider) QueryExists() string
QueryExists 获取指定版本是否存在
func (*PgSqlProvider) QueryStatus ¶
func (b *PgSqlProvider) QueryStatus() string
QueryStatus 查询指定版本状态
func (*PgSqlProvider) QueryTableSchema ¶
func (b *PgSqlProvider) QueryTableSchema(tableName string) string
QueryTableSchema 获取数据库表结构
func (*PgSqlProvider) UpdateMigration ¶
func (b *PgSqlProvider) UpdateMigration() string
UpdateMigration 插入迁移记录
type ReSqlProvider ¶
type ReSqlProvider struct{}
ReSqlProvider 通用的关系型数据库 SQL 语句提供者
func (*ReSqlProvider) CreateSchema ¶
func (b *ReSqlProvider) CreateSchema() string
CreateSchema 创建数据库结构
func (*ReSqlProvider) DeleteByVersion ¶
func (b *ReSqlProvider) DeleteByVersion() string
DeleteByVersion 删除指定版本
func (*ReSqlProvider) GetAppliedSortedByVersion ¶
func (b *ReSqlProvider) GetAppliedSortedByVersion() string
GetAppliedSortedByVersion 获取所有已迁移的版本,按迁移 version desc排序
func (*ReSqlProvider) InsertMigration ¶
func (b *ReSqlProvider) InsertMigration() string
InsertMigration 插入迁移记录
func (*ReSqlProvider) QueryExists ¶
func (b *ReSqlProvider) QueryExists() string
QueryExists 查询指定版本是否存在
func (*ReSqlProvider) QueryStatus ¶
func (b *ReSqlProvider) QueryStatus() string
QueryStatus 查询指定版本状态
func (*ReSqlProvider) QueryTableSchema ¶
func (b *ReSqlProvider) QueryTableSchema(tableName string) string
QueryTableSchema 获取数据库表结构
func (*ReSqlProvider) UpdateMigration ¶
func (b *ReSqlProvider) UpdateMigration() string
UpdateMigration 更新迁移记录
type SqlProvider ¶
type SqlProvider interface {
// CreateSchema 创建数据库结构SQL
CreateSchema() string
DropSchema() string
ShowTables() string
// QueryTableSchema 获取数据库表结构SQL
QueryTableSchema(tableName string) string
QueryAll() string
// QueryOne by version. params: version
QueryOne() string
// QueryStatus 获取指定版本状态 params: version
QueryStatus() string
// QueryExists 获取指定版本是否存在 params: version
QueryExists() string
// InsertMigration 插入迁移记录 params: version, status
InsertMigration() string
// UpdateMigration 更新迁移记录 params: status, version
UpdateMigration() string
// GetAppliedSortedByVersion 获取所有已迁移的版本,按迁移 version desc排序. params: status, limit
GetAppliedSortedByVersion() string
}
SqlProvider 通用的数据库 SQL 语句提供者
- ReSQL: mysql, postgres, sqlite3, oracle, mssql, ...
- NoSQL: MongoDB, Redis, ElasticSearch, ...
func GetSqlProvider ¶
func GetSqlProvider(driver string) (SqlProvider, error)
GetSqlProvider 获取数据库 SQL 语句提供者
type SqliteProvider ¶
type SqliteProvider struct {
ReSqlProvider
}
SqliteProvider for sqlite
func (*SqliteProvider) CreateSchema ¶
func (b *SqliteProvider) CreateSchema() string
CreateSchema 创建数据库结构. sqlite 时间字段是 DATETIME
func (*SqliteProvider) QueryTableSchema ¶
func (b *SqliteProvider) QueryTableSchema(tableName string) string
QueryTableSchema 获取数据库表结构