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.