database

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Jan 4, 2026 License: MIT Imports: 5 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 语句提供者

func Close

func Close() error

Close closes the default database connection

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
DSN:
 - 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 GetDB

func GetDB() *DB

GetDB returns the default database connection

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

func (b *PgSqlProvider) GetAppliedSortedByDate() string

GetAppliedSortedByDate 获取所有已迁移的版本,按迁移时间排序

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

func (b *ReSqlProvider) GetAppliedSortedByDate() string

GetAppliedSortedByDate 获取所有已迁移的版本,按迁移时间排序

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
	// GetAppliedSortedByDate 获取所有已迁移的版本,按迁移时间排序 params: status, limit
	GetAppliedSortedByDate() 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