Go to file
2017-07-03 02:02:13 +03:00
src removed DirectoriesManager.js 2017-07-03 01:58:30 +03:00
.gitignore major refactoring 2017-05-20 15:32:36 +03:00
config.json Updated config.json 2017-06-19 02:15:06 +03:00
data_types_map.json renamed DataTypesMap.json 2017-05-20 15:39:51 +03:00
extra_config.json Updated extra_config.json 2017-06-17 19:48:18 +03:00
LICENSE.md upgrade to version 2.2.0, see release notes for details 2016-11-03 07:42:03 +02:00
package.json updated version 2017-07-03 02:02:13 +03:00
README.md updated version 2017-07-03 02:02:13 +03:00

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.1.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.