1 Star 18 Fork 10

liuxl / mysql2pgsql

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

MysqlScriptToPgScript

将Mysql的建表脚本转换为PostgreSQL的建表脚本。

PostgreSQL 与 Mysql 相比,有很多令人向往的东西,网上评论很多,不再赘述。

如想从 MySql 转到 PostgreSQL ,可以试试本项目。

使用方法

1、准备MySQL数据库脚本

  • 数据库脚本文件以 .sql 结尾;
  • 所有数据库脚本文件请放在同一个文件夹下,不要放在子目录中;
  • 程序自动遍历所有脚本文件,在另一文件夹中生成PgSQL脚本;

MySQL脚本示例:

CREATE TABLE `t_sys_role`  (
  `id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'id',
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '角色名称',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色表' ROW_FORMAT = Compact;

注意:必须有字段注释和表注释!

2、编辑config.xml配置文件

配置文件格式如下:

<?xml version="1.0" encoding="UTF-8" ?>
<Config>
    <!-- MySQL数据表脚本文件所在目录 -->
    <Script_MySQL ConType="dir">E:\mytable</Script_MySQL>
    <!-- 生成的PgSQL数据表脚本文件所在目录 -->
    <Script_PostgreSQL ConType="dir">E:\pgtable</Script_PostgreSQL>
</Config>

以上默认已经在E盘中创建好了,mytable和pgtable的文件夹。 其中mytable里存放需要转换的mysql脚本。

注意:目录必须存在!

3、执行,两种方式

1)直接修改config文件内容

打开App.java主类,执行main函数即可。

2)生成jar包

1.执行mvn install

2.使用方法1:行执行下列命令,生成所有代码:

java -jar .\MyScriptToPgScript.jar config.xml

其中:MyScriptToPgScript.jar 为生成的 jar 包, config.xml 为配置文件路径。

注意

  • 表脚本必须要有字段注释和表注释。
  • 程序会生成 autocode.log 日志文件。
  • 仅支持 UTF-8 。

生成的PgSQL数据表脚本示例:


-- ----------------------------
-- Table structure for t_sys_role
-- -- 角色表
-- ----------------------------

-- DROP TABLE IF EXISTS "t_sys_role";

CREATE TABLE "t_sys_role"(
	"id" character varying(255) COLLATE "default" NOT NULL,
	"name" character varying(255) COLLATE "default" DEFAULT NULL::character varying,
	CONSTRAINT t_sys_role_pkey PRIMARY KEY ("id")
)
WITH (
    OIDS = FALSE
)
;

COMMENT ON TABLE "t_sys_role" IS '角色表';

COMMENT ON COLUMN "t_sys_role"."id" IS 'id';
COMMENT ON COLUMN "t_sys_role"."name" IS '角色名称';

结语

  • 推荐使用第一种方法,也方便错误调试。

  • 第二种方法适合给不会使用java的人,打成现有文件,自己去执行即可。

The MIT License (MIT) Copyright (c) 2019 liuxl Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

SQL脚本转换工具 展开 收起
Java
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/liuxili/mysql2pgsql.git
git@gitee.com:liuxili/mysql2pgsql.git
liuxili
mysql2pgsql
mysql2pgsql
master

搜索帮助