当前位置: 首页 > 工具软件 > mysql2psql > 使用案例 >

mysql与pgsql升级转换_mysql2pgsql

穆旭尧
2023-12-01

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配置文件

配置文件格式如下:

E:\mytable

E:\pgtable

以上默认已经在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的人,打成现有文件,自己去执行即可。

 类似资料: