database

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Apr 14, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
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

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

DB represents a database connection

func Connect

func Connect(driver, sqlDriver, dsn string) (*DB, error)

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 NewDB

func NewDB(driver, sqlDriver, dsn string) (*DB, error)

NewDB create a new database connection. alias for Connect

func NewWithSqlDB

func NewWithSqlDB(driver string, db *sql.DB) *DB

NewWithSqlDB create a new database connection with sql.DB

func (*DB) Close

func (db *DB) Close() error

Close closes the database connection

func (*DB) Driver

func (db *DB) Driver() string

Driver returns the formatted driver name

func (*DB) DropSchema

func (db *DB) DropSchema() error

DropSchema drops the migrations table

func (*DB) InitSchema

func (db *DB) InitSchema() error

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) SetDebug

func (db *DB) SetDebug(debug bool)

SetDebug sets the debug mode

func (*DB) ShowTables

func (db *DB) ShowTables() ([]string, error)

ShowTables displays all tables in the database

func (*DB) SilentClose

func (db *DB) SilentClose()

SilentClose closes the database connection

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 获取数据库表结构

func (*MSSqlProvider) ShowTables

func (b *MSSqlProvider) ShowTables() string

ShowTables 显示所有表

type MySqlProvider

type MySqlProvider struct {
	ReSqlProvider
}

MySqlProvider for mysql

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) QueryOne

func (b *PgSqlProvider) QueryOne() string

QueryOne 获取指定版本

func (*PgSqlProvider) QueryStatus

func (b *PgSqlProvider) QueryStatus() string

QueryStatus 查询指定版本状态

func (*PgSqlProvider) QueryTableSchema

func (b *PgSqlProvider) QueryTableSchema(tableName string) string

QueryTableSchema 获取数据库表结构

func (*PgSqlProvider) ShowTables

func (b *PgSqlProvider) ShowTables() string

ShowTables 显示所有表

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) DropSchema

func (b *ReSqlProvider) DropSchema() string

DropSchema 删除数据库结构

func (*ReSqlProvider) GetAppliedSortedByVersion

func (b *ReSqlProvider) GetAppliedSortedByVersion() string

GetAppliedSortedByVersion 获取所有已迁移的版本,按迁移 version desc排序

func (*ReSqlProvider) InsertMigration

func (b *ReSqlProvider) InsertMigration() string

InsertMigration 插入迁移记录

func (*ReSqlProvider) QueryAll

func (b *ReSqlProvider) QueryAll() string

QueryAll 查询所有

func (*ReSqlProvider) QueryExists

func (b *ReSqlProvider) QueryExists() string

QueryExists 查询指定版本是否存在

func (*ReSqlProvider) QueryOne

func (b *ReSqlProvider) QueryOne() string

QueryOne 获取指定版本

func (*ReSqlProvider) QueryStatus

func (b *ReSqlProvider) QueryStatus() string

QueryStatus 查询指定版本状态

func (*ReSqlProvider) QueryTableSchema

func (b *ReSqlProvider) QueryTableSchema(tableName string) string

QueryTableSchema 获取数据库表结构

func (*ReSqlProvider) ShowTables

func (b *ReSqlProvider) ShowTables() string

ShowTables 显示所有表

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 获取数据库表结构

func (*SqliteProvider) ShowTables

func (b *SqliteProvider) ShowTables() string

ShowTables 显示所有表

Jump to

Keyboard shortcuts

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