Documentation
¶
Index ¶
- Constants
- func CheckSchemaDiff(cfg *Config)
- func RemoveTableSchemaConfig(schema string) string
- type AlterIgnoreTable
- type Config
- func (cfg *Config) Check()
- func (cfg *Config) CheckMatchIgnoreTables(name string) bool
- func (cfg *Config) CheckMatchTables(name string) bool
- func (cfg *Config) IsIgnoreField(table string, name string) bool
- func (cfg *Config) IsIgnoreForeignKey(table string, name string) bool
- func (cfg *Config) IsIgnoreIndex(table string, name string) bool
- func (cfg *Config) SendMailFail(errStr string)
- func (cfg *Config) String() string
- type DbIndex
- type EmailStruct
- type MyDb
- type MySchema
- type SchemaDiff
- type SchemaSync
- type TableAlterData
Constants ¶
View Source
const AppURL = "https://github.com/luoph/mysql-schema-sync/"
AppURL site
View Source
const Version = "20220311.2"
Version 版本号,格式:更新日期(8位).更新次数(累加)
Variables ¶
This section is empty.
Functions ¶
func RemoveTableSchemaConfig ¶
删除表创建引擎信息,编码信息,分区信息,已修复同步表结构遇到分区表异常退出问题,对于分区表,只会同步字段,索引,主键,外键的变更
Types ¶
type AlterIgnoreTable ¶
type AlterIgnoreTable struct {
Column []string `json:"column"`
Index []string `json:"index"`
// 外键
ForeignKey []string `json:"foreign"`
}
AlterIgnoreTable table's ignore info
type Config ¶
type Config struct {
// SourceDSN 同步的源头
SourceDSN string `json:"source"`
// DestDSN 将被同步
DestDSN string `json:"dest"`
// AlterIgnore 忽略配置, eg: "tb1*":{"column":["aaa","a*"],"index":["aa"],"foreign":[]}
AlterIgnore map[string]*AlterIgnoreTable `json:"alter_ignore"`
// Tables 同步表的白名单,若为空,则同步全库
Tables []string `json:"tables"`
// TablesIgnore 不同步的表
TablesIgnore []string `json:"tables_ignore"`
// Email 完成同步后发送同步信息的邮件账号信息
Email *EmailStruct `json:"email"`
ConfigPath string
// Sync 是否真正的执行同步操作
Sync bool
// Drop 若目标数据库表比源头多了字段、索引,是否删除
Drop bool
// SingleSchemaChange 生成sql ddl语言每条命令只会进行单个修改操作
SingleSchemaChange bool `json:"single_schema_change"`
}
Config config struct
func (*Config) CheckMatchIgnoreTables ¶
CheckMatchIgnoreTables check table_Ignore is match
func (*Config) CheckMatchTables ¶
CheckMatchTables check table is match
func (*Config) IsIgnoreField ¶
IsIgnoreField isIgnore
func (*Config) IsIgnoreForeignKey ¶
IsIgnoreForeignKey 检查外键是否忽略掉
func (*Config) IsIgnoreIndex ¶
IsIgnoreIndex is index ignore
func (*Config) SendMailFail ¶
SendMailFail send fail mail
type EmailStruct ¶
type EmailStruct struct {
SendMailAble bool `json:"send_mail"`
SMTPHost string `json:"smtp_host"`
From string `json:"from"`
Password string `json:"password"`
To string `json:"to"`
}
EmailStruct email conf info
func (*EmailStruct) SendMail ¶
func (m *EmailStruct) SendMail(title string, body string)
SendMail send mail
type MySchema ¶
type MySchema struct {
SchemaRaw string
Fields *orderedmap.OrderedMap
IndexAll map[string]*DbIndex
ForeignAll map[string]*DbIndex
}
MySchema table schema
func (*MySchema) GetFieldNames ¶
GetFieldNames table names
func (*MySchema) RelationTables ¶
type SchemaDiff ¶
func (*SchemaDiff) RelationTables ¶
func (sdiff *SchemaDiff) RelationTables() []string
type SchemaSync ¶
SchemaSync 配置文件
func (*SchemaSync) GetNewTableNames ¶
func (sc *SchemaSync) GetNewTableNames() []string
GetNewTableNames 获取所有新增加的表名
func (*SchemaSync) SyncSQL4Dest ¶
func (sc *SchemaSync) SyncSQL4Dest(sqlStr string, sqls []string) error
SyncSQL4Dest sync schema change
type TableAlterData ¶
type TableAlterData struct {
Table string
Type alterType
Comment string
SQL []string
SchemaDiff *SchemaDiff
}
TableAlterData 表的变更情况
func (*TableAlterData) String ¶
func (ta *TableAlterData) String() string
Click to show internal directories.
Click to hide internal directories.