go-dialect

command module
v1.9.21 Latest Latest
Warning

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

Go to latest
Published: Jun 5, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

README

go-dialect

SQL方言

参数说明

全局参数说明
  • -do
    • 操作:export(导出)、import(导入)、sync(同步)
  • -sourceDialect
    • 源 数据库 方言 mysql、sqlite3、dm、kingbase、oracle、shentong
  • -sourceHost
    • 源 数据库 host
  • -sourcePort
    • 源 数据库 port
  • -sourceUser
    • 源 数据库 user
  • -sourcePassword
    • 源 数据库 password
  • -sourceDatabase
    • 源 数据库 连接库(库名、用户名、SID)
  • -fileType
    • 文件 类型:sql、excel、txt、csv(sql将导出单个文件,其它每个表导出一个文件)
  • -fileDialect
    • 文件 数据库 方言
  • -skipOwner
    • 忽略库名,多个使用“,”隔开
    • 示例:d1,d2
  • -skipTable
    • 忽略表名,多个使用“,”隔开
    • 示例:t1,t2
导出参数说明
  • -exportDialect
    • 导出 数据库 方言
  • -exportDir
    • 导出 文件存储目录
  • -exportOwner
    • 导出 库(库名、表拥有者),默认全部,多个使用“,”隔开
    • 如果导出重置 库名,使用“库=修改后库名”
    • 示例:x,xx=xx1,xxx=xxx1
    • 如果是sql类型,导出单独一个文件,${ownerName}.sql
    • 其它文件每个表一个文件,${ownerName}/${tableName}.sql
  • -exportTable
    • 导出 表,默认全部,多个使用“,”隔开
    • 如果导出重置 表名,使用“表=修改后表名”
    • 示例:x,xx=xx1,xxx=xxx1
  • -exportStruct
    • 导出 结构体,默认true,适用于导出类型为sql、excel
  • -exportData
    • 导出 数据,默认true
  • -exportAppendOwner
    • sql文件类型的sql拼接 连接库(库名、用户名),拼接原库名或重命名后的库名,默认false

导入参数说明

  • -importOwner
    • 导入 库(库名、表拥有者),并指定文件路径,多个使用“,”隔开
    • 如果是sql类型,指定到sql文件
    • 其它类型,指定到文件目录,以表名为文件文件名
    • 示例:db1=data/db1,db2=data/db2.sql
  • -importOwnerCreateIfNotExist
    • 导入 库如果不存在,则创建,默认false
  • -importOwnerCreatePassword
    • 导入 库创建的密码,只有库为所属者有效,默认为sourcePassword,如:oracle等数据库

同步参数说明

  • -targetDialect
    • 目标 数据库 方言 mysql、sqlite3、dm、kingbase、oracle、shentong
  • -targetHost
    • 目标 数据库 host
  • -targetPort
    • 目标 数据库 port
  • -targetUser
    • 目标 数据库 user
  • -targetPassword
    • 目标 数据库 password
  • -targetDatabase
    • 目标 数据库 连接库(库名、用户名、SID)
  • -syncOwner
    • 同步 库(库名、表拥有者),默认全部,多个使用“,”隔开
    • 如果同步重置 库名,使用“库=修改后库名”
    • 示例:x,xx=xx1,xxx=xxx1
  • -syncStruct
    • 同步 结构体,默认true,适用于导出类型为sql、excel
  • -syncData
    • 同步 数据,默认true
  • -syncOwnerCreateIfNotExist
    • 同步 库如果不存在,则创建,默认false
  • -syncOwnerCreatePassword
    • 同步 库创建的密码,只有库为所属者有效,默认为targetPassword,如:oracle等数据库

docker run -itd --name mysql-3306 -m 1024m -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
# 导出 mysql 所有库 为 mysql 的 sql
go run . -do export -sourceDialect mysql -sourceHost 127.0.0.1 -sourcePort 3306 -sourceUser root -sourcePassword 123456 -fileType sql -exportDir temp/export/from-mysql -exportDialect mysql
# 导出 oracle 所有库 为 mysql 的 sql
go run . -do export -sourceDialect oracle -sourceHost 127.0.0.1 -sourcePort 1521 -sourceUser root -sourcePassword 123456 -sourceDatabase xe -fileType sql -exportDir temp/export/from-oracle -exportDialect mysql -skipOwner APEX_040000
# 导出 dm 所有库 为 mysql 的 sql
go run . -do export -sourceDialect dm -sourceHost 127.0.0.1 -sourcePort 5236 -sourceUser SYSDBA -sourcePassword SYSDBA -fileType sql -exportDir temp/export/from-dm -exportDialect mysql
# 导出 kingbase 所有库 为 mysql 的 sql
go run . -do export -sourceDialect kingbase -sourceHost 127.0.0.1 -sourcePort 54321 -sourceUser SYSTEM -sourcePassword 123456 -sourceDatabase TEST -fileType sql -exportDir temp/export/from-kingbase -exportDialect mysql
# 导出 shentong 所有库 为 mysql 的 sql
go run . -do export -sourceDialect shentong -sourceHost 127.0.0.1 -sourcePort 2003 -sourceUser sysdba -sourcePassword szoscar55 -sourceDatabase OSRDB -fileType sql -exportDir temp/export/from-shentong -exportDialect mysql



# 导出 mysql 数据库的 mysql,information_schema,performance_schema,sys 库 为 mysql 的 sql
go run . -do export -sourceDialect mysql -sourceHost 127.0.0.1 -sourcePort 3306 -sourceUser root -sourcePassword 123456 -fileType sql -exportDir temp/export/test -exportOwner mysql,information_schema,performance_schema,sys -exportDialect mysql

# 导出 mysql 数据库的 mysql,information_schema,performance_schema,sys 库 为 sqlite 的 sql
go run . -do export -sourceDialect mysql -sourceHost 127.0.0.1 -sourcePort 3306 -sourceUser root -sourcePassword 123456 -fileType sql -exportDir temp/export/test -exportOwner mysql,information_schema,performance_schema,sys -exportDialect sqlite

# 导入 mysql 的 sql 到 mysql 的 DB1 库
go run . -do import -sourceDialect mysql -sourceHost 127.0.0.1 -sourcePort 3306 -sourceUser root -sourcePassword 123456 -fileType sql -importOwner VRV_JOB=temp/VRV_JOB.sql  -importOwnerCreateIfNotExist true


# 导入 sqlite 的 sql 到 mysql 的 DB1 库
go run . -do import -sourceDialect mysql -sourceHost 127.0.0.1 -sourcePort 3306 -sourceUser root -sourcePassword 123456 -fileType sql -importOwner DB1=temp/export/test/mysql.sql  -importOwnerCreateIfNotExist true


# 导出 mysql 数据库的 mysql 库 为 sqlite 的 sql
go run . -do export -sourceDialect mysql -sourceHost 127.0.0.1 -sourcePort 3306 -sourceUser root -sourcePassword 123456 -fileType sql -exportDir temp/export/test -exportOwner mysql=sqlite -exportDialect sqlite

# 导入 sqlite 的 sql 到 sqlite
go run . -do import -sourceDialect sqlite -sourceDatabase temp/sqlite.db -fileType sql -importOwner main=temp/export/test/sqlite.sql

# 导出 sqlite 的 main 到 sqlite
go run . -do export -sourceDialect sqlite -sourceDatabase temp/sqlite.mysql -fileType sql -exportDir temp/export/test -exportOwner main=main -exportDialect sqlite

# 同步 mysql 数据库的 mysql 库 到 mysql 数据库的 DB2
go run . -do sync -sourceDialect mysql -sourceHost 127.0.0.1 -sourcePort 3306 -sourceUser root -sourcePassword 123456 -targetDialect mysql -targetHost 127.0.0.1 -targetPort 3306 -targetUser root -targetPassword 123456 -syncOwner mysql=DB2 -syncOwnerCreateIfNotExist true
go run . -do sync -sourceDialect mysql -sourceHost 127.0.0.1 -sourcePort 3306 -sourceUser root -sourcePassword 123456 -targetDialect mysql -targetHost 127.0.0.1 -targetPort 3306 -targetUser root -targetPassword 123456 -syncOwner information_schema=DB3 -syncOwnerCreateIfNotExist true
go run . -do sync -sourceDialect mysql -sourceHost 127.0.0.1 -sourcePort 3306 -sourceUser root -sourcePassword 123456 -targetDialect mysql -targetHost 127.0.0.1 -targetPort 3306 -targetUser root -targetPassword 123456 -syncOwner performance_schema=DB4 -syncOwnerCreateIfNotExist true
go run . -do sync -sourceDialect mysql -sourceHost 127.0.0.1 -sourcePort 3306 -sourceUser root -sourcePassword 123456 -targetDialect mysql -targetHost 127.0.0.1 -targetPort 3306 -targetUser root -targetPassword 123456 -syncOwner sys=DB5 -syncOwnerCreateIfNotExist true

# 同步 mysql 数据库的 mysql 库 到 sqlite
go run . -do sync -sourceDialect mysql -sourceHost 127.0.0.1 -sourcePort 3306 -sourceUser root -sourcePassword 123456 -targetDialect sqlite -targetDatabase temp/sqlite.mysql -syncOwner mysql=main
go run . -do sync -sourceDialect mysql -sourceHost 127.0.0.1 -sourcePort 3306 -sourceUser root -sourcePassword 123456 -targetDialect sqlite -targetDatabase temp/sqlite.mysql -syncOwner information_schema=main
go run . -do sync -sourceDialect mysql -sourceHost 127.0.0.1 -sourcePort 3306 -sourceUser root -sourcePassword 123456 -targetDialect sqlite -targetDatabase temp/sqlite.mysql -syncOwner performance_schema=main
go run . -do sync -sourceDialect mysql -sourceHost 127.0.0.1 -sourcePort 3306 -sourceUser root -sourcePassword 123456 -targetDialect sqlite -targetDatabase temp/sqlite.mysql -syncOwner sys=main


docker run -itd --name oracle-1521 -p 1521:1521 teamide/oracle-xe-11g:1.0

# 同步 mysql 数据库的 mysql 库 到 oracle DB_FROM_MYSQL
go run . -do sync -sourceDialect mysql -sourceHost 127.0.0.1 -sourcePort 3306 -sourceUser root -sourcePassword 123456 -targetDialect oracle -targetHost 127.0.0.1 -targetPort 1521 -targetUser root -targetPassword 123456 -targetDatabase xe -syncOwner mysql=DB_FROM_MYSQL -syncOwnerCreateIfNotExist true

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
vitess
hack
Package hack gives you some efficient functionality at the cost of breaking some Go rules.
Package hack gives you some efficient functionality at the cost of breaking some Go rules.
sqltypes
Package sqltypes implements interfaces and types that represent SQL values.
Package sqltypes implements interfaces and types that represent SQL values.
vterrors
Package vterrors provides simple error handling primitives for Vitess
Package vterrors provides simple error handling primitives for Vitess

Jump to

Keyboard shortcuts

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