nmig/README.md
2017-06-19 02:25:58 +03:00

3.5 KiB

NMIG - the database migration tool.

WHAT IS IT ALL ABOUT?

NMIG is an app, intended to make a process of migration from MySQL to PostgreSQL as easy and smooth as possible.

KEY FEATURES

  • Precise migration of the database structure - NMIG converts MySQL data types to corresponding PostgreSQL data types, creates constraints, indexes, primary and foreign keys exactly as they were before migration.
  • Ability to rename tables and columns during migration.
  • Ability to recover migration process if disaster took place (without restarting from the beginning).
  • Ability to migrate big databases - in order to eliminate "process out of memory" issues NMIG will split each table's data into several chunks.
    Each group of chunks will be loaded via separate worker process.
  • Speed of data transfer - in order to migrate data fast NMIG uses PostgreSQL COPY protocol.
  • Ease of monitoring - NMIG will provide detailed output about every step, it takes during the execution.
  • Ease of configuration - all the parameters required for migration should be put in one single JSON document.

SYSTEM REQUIREMENTS

  • Node.js 7 or higher

USAGE

1. Create a new database.
Sample:  CREATE DATABASE my_postgresql_database;

2. Download NMIG package and put it on the machine running your PostgreSQL (not mandatory, but preferably).
Sample: /path/to/nmig

3. Edit configuration file located at /path/to/nmig/config.json with correct details.

Notes:

4. Go to nmig directory, install dependencies, and run the app
    Sample:

$ cd /path/to/nmig

$ npm install

$ npm start

5. If a disaster took place during migration (for what ever reason) - simply restart the process $ npm start
    NMIG will restart from the point it was stopped at.

6. At the end of migration check log files, if necessary.
    Log files will be located under "logs_directory" folder in the root of the package.
    Note: "logs_directory" will be created during script execution.

7. In case of any remarks, misunderstandings or errors during migration,
    please feel free to email me anatolyuss@gmail.com

VERSION

Current version is 3.0.0
(major version . improvements . bug fixes)

REMARKS

Errors/Exceptions are not passed silently.
Any error will be immediately written into the error log file.

KNOWN ISSUES

  • Empty strings in char/varchar columns may be interpreted as NULL.

LICENSE

NMIG is available under "GNU GENERAL PUBLIC LICENSE" (v. 3)
http://www.gnu.org/licenses/gpl.txt.