mysql2pgsql 使用_mysql2pgsql

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的人,打成现有文件,自己去执行即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL和PostgreSQL(简称为PgSQL)是两种常见的关系型数据库管理系统(RDBMS)。它们都具有广泛的应用和一系列功能,但在某些方面有所不同。 1. 开发历史:MySQL是由瑞典公司MySQL AB开发的,后来被Oracle收购。而PgSQL是由加拿大人Andrew Yu和Jolly Chen在加拿大大学开发的。 2. 数据类型:MySQL和PgSQL都支持各种标准的数据类型,如整数、浮点数、字符串等。然而,在处理日期和时间类型时,两者有所不同。MySQL使用DATETIME和TIMESTAMP来表示日期和时间,而PgSQL使用DATE、TIME和TIMESTAMP。 3. 扩展性:MySQL和PgSQL在扩展性方面也有所不同。MySQL使用主从复制来实现横向扩展,即通过将数据复制到多个节点来提高读取性能。PgSQL则提供了更强大的横向扩展功能,称为流复制(Streaming Replication),它允许将数据复制到多个节点,并支持高可用性配置。 4. SQL兼容性:MySQL和PgSQL都遵循SQL标准,但在某些方面有所差异。例如,PgSQLSQL标准的支持更全面,支持更多的高级功能,如窗口函数、递归查询等。MySQL则更注重性能和简单性,有时可能会有一些非标准的行为。 5. 存储引擎:MySQL支持多个存储引擎,如InnoDB、MyISAM等,每个引擎都有其特点和适用场景。PgSQL则默认使用一种称为PostgreSQL Global Development Group(PGDG)的存储引擎。 总的来说,MySQL更适合简单的应用程序和小型项目,而PgSQL则更适合需要高级功能和复杂查询的大型项目。选择使用哪种数据库取决于具体的需求和项目要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值