github.com/team-ide/go-dialect@v1.9.20/README.md (about) 1 # go-dialect 2 3 SQL方言 4 5 ## 参数说明 6 7 #### 全局参数说明 8 * -do 9 * 操作:export(导出)、import(导入)、sync(同步) 10 * -sourceDialect 11 * 源 数据库 方言 mysql、sqlite3、dm、kingbase、oracle、shentong 12 * -sourceHost 13 * 源 数据库 host 14 * -sourcePort 15 * 源 数据库 port 16 * -sourceUser 17 * 源 数据库 user 18 * -sourcePassword 19 * 源 数据库 password 20 * -sourceDatabase 21 * 源 数据库 连接库(库名、用户名、SID) 22 * -fileType 23 * 文件 类型:sql、excel、txt、csv(sql将导出单个文件,其它每个表导出一个文件) 24 * -fileDialect 25 * 文件 数据库 方言 26 * -skipOwner 27 * 忽略库名,多个使用“,”隔开 28 * 示例:d1,d2 29 * -skipTable 30 * 忽略表名,多个使用“,”隔开 31 * 示例:t1,t2 32 33 #### 导出参数说明 34 * -exportDialect 35 * 导出 数据库 方言 36 * -exportDir 37 * 导出 文件存储目录 38 * -exportOwner 39 * 导出 库(库名、表拥有者),默认全部,多个使用“,”隔开 40 * 如果导出重置 库名,使用“库=修改后库名” 41 * 示例:x,xx=xx1,xxx=xxx1 42 * 如果是sql类型,导出单独一个文件,${ownerName}.sql 43 * 其它文件每个表一个文件,${ownerName}/${tableName}.sql 44 * -exportTable 45 * 导出 表,默认全部,多个使用“,”隔开 46 * 如果导出重置 表名,使用“表=修改后表名” 47 * 示例:x,xx=xx1,xxx=xxx1 48 * -exportStruct 49 * 导出 结构体,默认true,适用于导出类型为sql、excel 50 * -exportData 51 * 导出 数据,默认true 52 * -exportAppendOwner 53 * sql文件类型的sql拼接 连接库(库名、用户名),拼接原库名或重命名后的库名,默认false 54 55 ## 导入参数说明 56 * -importOwner 57 * 导入 库(库名、表拥有者),并指定文件路径,多个使用“,”隔开 58 * 如果是sql类型,指定到sql文件 59 * 其它类型,指定到文件目录,以表名为文件文件名 60 * 示例:db1=data/db1,db2=data/db2.sql 61 * -importOwnerCreateIfNotExist 62 * 导入 库如果不存在,则创建,默认false 63 * -importOwnerCreatePassword 64 * 导入 库创建的密码,只有库为所属者有效,默认为sourcePassword,如:oracle等数据库 65 66 ## 同步参数说明 67 * -targetDialect 68 * 目标 数据库 方言 mysql、sqlite3、dm、kingbase、oracle、shentong 69 * -targetHost 70 * 目标 数据库 host 71 * -targetPort 72 * 目标 数据库 port 73 * -targetUser 74 * 目标 数据库 user 75 * -targetPassword 76 * 目标 数据库 password 77 * -targetDatabase 78 * 目标 数据库 连接库(库名、用户名、SID) 79 * -syncOwner 80 * 同步 库(库名、表拥有者),默认全部,多个使用“,”隔开 81 * 如果同步重置 库名,使用“库=修改后库名” 82 * 示例:x,xx=xx1,xxx=xxx1 83 * -syncStruct 84 * 同步 结构体,默认true,适用于导出类型为sql、excel 85 * -syncData 86 * 同步 数据,默认true 87 * -syncOwnerCreateIfNotExist 88 * 同步 库如果不存在,则创建,默认false 89 * -syncOwnerCreatePassword 90 * 同步 库创建的密码,只有库为所属者有效,默认为targetPassword,如:oracle等数据库 91 92 93 ```shell 94 95 docker run -itd --name mysql-3306 -m 1024m -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 96 # 导出 mysql 所有库 为 mysql 的 sql 97 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 98 # 导出 oracle 所有库 为 mysql 的 sql 99 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 100 # 导出 dm 所有库 为 mysql 的 sql 101 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 102 # 导出 kingbase 所有库 为 mysql 的 sql 103 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 104 # 导出 shentong 所有库 为 mysql 的 sql 105 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 106 107 108 109 # 导出 mysql 数据库的 mysql,information_schema,performance_schema,sys 库 为 mysql 的 sql 110 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 111 112 # 导出 mysql 数据库的 mysql,information_schema,performance_schema,sys 库 为 sqlite 的 sql 113 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 114 115 # 导入 mysql 的 sql 到 mysql 的 DB1 库 116 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 117 118 119 # 导入 sqlite 的 sql 到 mysql 的 DB1 库 120 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 121 122 123 # 导出 mysql 数据库的 mysql 库 为 sqlite 的 sql 124 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 125 126 # 导入 sqlite 的 sql 到 sqlite 127 go run . -do import -sourceDialect sqlite -sourceDatabase temp/sqlite.db -fileType sql -importOwner main=temp/export/test/sqlite.sql 128 129 # 导出 sqlite 的 main 到 sqlite 130 go run . -do export -sourceDialect sqlite -sourceDatabase temp/sqlite.mysql -fileType sql -exportDir temp/export/test -exportOwner main=main -exportDialect sqlite 131 132 # 同步 mysql 数据库的 mysql 库 到 mysql 数据库的 DB2 133 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 134 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 135 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 136 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 137 138 # 同步 mysql 数据库的 mysql 库 到 sqlite 139 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 140 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 141 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 142 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 143 144 145 docker run -itd --name oracle-1521 -p 1521:1521 teamide/oracle-xe-11g:1.0 146 147 # 同步 mysql 数据库的 mysql 库 到 oracle DB_FROM_MYSQL 148 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 149 150 ```