# mysql-pg-utools **Repository Path**: kaasia/mysql-pg-utools ## Basic Information - **Project Name**: mysql-pg-utools - **Description**: mysql 语句转换为 PostgreSQL 辅助工具 , 目前可以完成部分mysql 语法到 PostgreSQL 语法的转换 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-04-09 - **Last Updated**: 2024-04-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # mysql-pg-utools #### 介绍 mysql 语句转换为 PostgreSQL 辅助工具 , 目前可以完成部分mysql 语法到 PostgreSQL 语法的转换 本工具是为了将MYSQL语句快速替换成一个PG语法的工具,目前只能替换掉部分的语法,更多的语法尚未支持。 主要是通过正则表达式的方式进行替换的,再正则包里面尽可能多的匹配了部分正则表达式 ## 替换规则,有两种 - 复合表达式「 replace_complex_fn_* 」 - 简易表达式「 replace_simple_fn_* 」 - 格式化 「 document_format_tools 」 ### 复合表达式 就是有表达式中嵌套表达式的 ### 简易表达式 就是单独的表达式,没有嵌套函数的使用这种 ### 格式化, 这个目前只有一个功能 借助 sqlparse 对sql 语句进行关键字格式化 ## 替换规则 ~~~ (1)先使用复合表达式取替换部分语法,都是正则表达式 (2)使用简易表达式替换部分语法,都是正则表达式 (3)可以使用IDE自带的比较工具,手动检验两个文档的差异, 未能覆盖到的语句,需要手动处理 (4)未覆盖的语句,处理后可以添加到replace_complex 模块 或者 replace_simple 模块中,等下次再遇到就不用继续手动处理啦 ~~~ ## 目前尚不支持的语句 - REPLACE INTO 语句 - INSERT OVERWRITE 语句 - GROUP BY 语句 - 其他 ## 应用的其他组件 - sqlparse - re - pandas - logging ## 执行流程 ~~~ ======> (1) main.py ===========> (2) replace_complex_fn_main.py ===========> (3) replace_simple_fn_main.py ~~~ ## 备注 > 目前没找到能比较好用, 并且实用的基于python 或者其他语言完成的工具,所以我都是自己用python + re 傻瓜式的将可能组成的模式弄出来了。 > 然后Python 也是刚开始用, 写的很丑, 如果小伙伴有其他更好用的工具,或者建议, 可以邮件 xuxu_bigdata@outlook.com 谢谢。