Documentation
¶
Index ¶
- Constants
- func CheckSchemaDiff(cfg *Config)
- 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
- func (mydb *MyDb) GetDataBases() []string
- func (mydb *MyDb) GetTableNames() []string
- func (mydb *MyDb) GetTableSchema(tableName string) (schema string)
- func (mydb *MyDb) GetTableSchemaTime(dbName, tableName string) (schemaTime string)
- func (mydb *MyDb) Query(query string, args ...interface{}) (*sql.Rows, error)
- type MySchema
- type SchemaDiff
- type SchemaSync
- type TableAlterData
Constants ¶
View Source
const AppURL = "https://github.com/hidu/mysql-schema-sync/"
AppURL site
View Source
const Version = "0.3.1"
Version version
Variables ¶
This section is empty.
Functions ¶
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"`
// databases, 扫描指定库
DataBases []string `json:"databases"`
// Tables 同步表的白名单,若为空,则同步全库
Tables []string `json:"tables"`
// TablesIGNORE 不同步的表
TablesIGNORE []string `json:"tables_ignore"`
// Email 完成同步后发送同步信息的邮件账号信息
Email *EmailStruct `json:"email"`
ConfigPath string
// Sync 是否真正的执行同步操作
Sync bool
// Drop 若目标数据库表比源头多了字段、索引,是否删除
Drop bool
}
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"`
Nick string `json:"nick"`
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 MyDb ¶
MyDb db struct
func (*MyDb) GetDataBases ¶
GetDataBases get all databases
func (*MyDb) GetTableSchema ¶
GetTableSchema table schema
func (*MyDb) GetTableSchemaTime ¶
GetTableSchemaTime get table's schema change time
type MySchema ¶
type MySchema struct {
SchemaRaw string
Fields map[string]string
IndexAll map[string]*DbIndex
ForeignAll map[string]*DbIndex
SchemaTime time.Time
}
MySchema table schema
func ParseSchema ¶
ParseSchema parse table's 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
SQL string
SchemaDiff *SchemaDiff
}
TableAlterData 表的变更情况
func (*TableAlterData) String ¶
func (ta *TableAlterData) String() string
Source Files
¶
Click to show internal directories.
Click to hide internal directories.