jumper423/migration-mysql-to-postgresql

从Mysql迁移到PostgreSql

1.2 2016-06-02 13:55 UTC

This package is auto-updated.

Last update: 2024-09-05 18:26:05 UTC


README

FromMySqlToPostgreSql - 数据库迁移工具。

这是关于什么的?

FromMySqlToPostgreSql是一个工具,旨在使从Mysql到PostgreSql的迁移过程尽可能简单和顺畅。

重要更新!
最近,我开发了一个基于Node.js的数据库迁移应用程序NMIG,它受到了FromMySqlToPostgreSql的高度启发。
NMIG有几个重要的功能增强。
由于Node.js的异步特性,NMIG会并行执行其部分任务,这使得它的速度比FromMySqlToPostgreSql快3倍。访问https://github.com/AnatolyUss/nmig
然而,如果您不使用Node.js,您仍然可以使用旧的、经过验证的FromMySqlToPostgreSql。

主要功能

  • 易于使用 - 运行此脚本所需的所有东西就是PHP(CLI)解释器。
  • 数据库结构的迁移精度 - FromMySqlToPostgreSql将Mysql数据类型转换为相应的PostgreSql数据类型,创建约束、索引、主键和外键,与迁移前完全一致。
  • 能够迁移大型数据库 - 为了减少RAM消耗
    FromMySqlToPostgreSql会将每个表的数据拆分为几个块。
    可以通过配置文件轻松调整块大小。
  • 数据传输速度 - 为了快速迁移数据
    FromMySqlToPostgreSql使用PostgreSQL COPY协议。
    注意:包含"varbinary"或"blob"列的表的迁移可能会慢得多。
  • 易于监控 - FromMySqlToPostgreSql将提供有关执行过程中每个步骤的详细输出。
  • 易于配置 - 所需的所有迁移参数都应放在一个单独的文件中,该文件可以是"xml"或"json"格式。
  • 能够仅迁移数据(在存在现有数据库的情况下)。

系统要求

  • PHP (CLI) 5.4或更高版本
  • PDO_MYSQL应安装并启用
  • PDO_PGSQL应安装并启用
  • mbstring应安装并启用
  • register_argc_argv应启用(检查php.ini)。

用法

1. 创建一个新的数据库。
    示例:CREATE DATABASE my_postgresql_database;

2. 下载FromMySqlToPostgreSql软件包并将其放置在运行PostgreSql的机器上。
    示例: /path/to/FromMySqlToPostgreSql

3. 创建配置

4. 从终端运行脚本。
    示例: php index.php

5. 迁移结束后,检查日志文件(如有必要)。
    日志文件将位于软件包根目录中的"logs_directory"文件夹中。
    注意: "logs_directory"将在脚本执行期间创建。

6. 在迁移过程中出现任何意见、误解或错误时,
    请随时通过电子邮件anatolyuss@gmail.com联系我

版本

当前版本为1.4.0
(主要版本 . 改进 . 错误修复)

测试

使用MySql社区服务器(5.6.21)和PostgreSql(9.3)进行了测试。
迁移59.6 MB的数据库(49个表,570750行)的整个流程,
包括数据类型映射、创建表、约束、索引、
主键(PK)、外键(FK)、数据迁移、垃圾回收以及分析新创建的
PostgreSql数据库耗时3分钟6秒。

使用MySql社区服务器(5.6.21)和PostgreSql(9.4)进行测试。
迁移3.1 GB的数据库(56个表,8732967行),
按照上述相同步骤,耗时2小时10分钟。

备注

错误/异常不会静默通过。
任何错误都会立即写入错误日志文件。

感谢

非常感谢所有贡献者宝贵的意见!