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  ```