# ter-data-migration

> Three-Eyed Raven's library allow to migrate, snapshot and restore database

Latest version **0.4.2** (published 2018-10-01) · MIT license · 0 weekly downloads

## Install

```sh
npm install ter-data-migration
pnpm add ter-data-migration
yarn add ter-data-migration
bun add ter-data-migration
```

Provides the command `ter-data-migration`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.4.2 |
| Published | 2018-10-01 |
| First published | 2018-09-28 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 3.1 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | ThreeEyedRaven91 |
| Maintainers | eugene.nguyen |
| Keywords | data, migration, data, backup, data, restore |

## Links

- npm: https://www.npmjs.com/package/ter-data-migration
- Repository: https://github.com/ThreeEyedRaven91/ter-data-migration
- Homepage: https://github.com/ThreeEyedRaven91/ter-data-migration#readme
- Issues: https://github.com/ThreeEyedRaven91/ter-data-migration/issues
- npm.io page: https://npm.io/package/ter-data-migration

## Dependencies (4)

- [argv](https://npm.io/package/argv.md) ^0.0.2
- [mysql](https://npm.io/package/mysql.md) ^2.16.0
- [lodash](https://npm.io/package/lodash.md) ^4.17.11
- [sequelize-auto](https://npm.io/package/sequelize-auto.md) ^0.4.29

## Alternatives

- [gamedig](https://npm.io/package/gamedig.md) — 29.3K weekly downloads
- [join-monster](https://npm.io/package/join-monster.md) — 12.8K weekly downloads
- [masked](https://npm.io/package/masked.md) — 5.5K weekly downloads
- [@comunica/actor-query-process-explain-logical](https://npm.io/package/@comunica/actor-query-process-explain-logical.md) — 4.7K weekly downloads
- [@veracity/vui](https://npm.io/package/@veracity/vui.md) — 4.6K weekly downloads

## Recent versions

- 0.4.2 (latest) — 2018-10-01
- 0.4.1 — 2018-10-01
- 0.4.0 — 2018-10-01
- 0.3.2 — 2018-10-01
- 0.3.1 — 2018-10-01
- 0.2.2 — 2018-10-01
- 0.2.1 — 2018-10-01
- 0.2.0 — 2018-10-01
- 0.1.7 — 2018-09-28
- 0.1.6 — 2018-09-28
- 0.1.5 — 2018-09-28
- 0.1.4 — 2018-09-28
- 0.1.3 — 2018-09-28
- 0.1.2 — 2018-09-28
- 0.1.1 — 2018-09-28
- … 1 more at https://npm.io/package/ter-data-migration/versions

## README

# ThreeEyedRaven91's ter-data-migration

A cool tools for migrate data from a database (maybe staging or development environment) to other database (production or staging)

You will never miss anything again.

# How to use

## Installation

```

npm install -g ter-data-migration

# or

yarn global add ter-data-migration

```

## Config

### Create `.tdm_config` folder

```
mkdir .tdm_config
cd .tdm_config
```

### Create `profile.json` file

```json
{
    "profiles": {
        "development": {
            "database": "your_database",
            "user": "your_user",
            "password": "your_password",
            "dialect": "mysql or something else",
            "host": "your_mysql_host"
        },
        "staging": {
            "database": "your_database",
            "user": "your_user",
            "password": "your_password",
            "dialect": "mysql or something else",
            "host": "your_mysql_host"
        }
    },
    "default": "development"
}
```

## Run

```
# backup

ter-data-migration backup
ter-data-migration backup --source=development

# restore

ter-data-migration restore
ter-data-migration restore --target=staging

# migrate

ter-data-migration migrate --source=development --target=staging

# help

ter-data-migration --help
```

## Options

| Option  | Short | Meaning                                                         | Example                                                  |
|---------|-------|-----------------------------------------------------------------|----------------------------------------------------------|
| source  | -s    | Define source environment (not working with restore)            | `ter-data-migration backup --source=development`         | 
| target  | -t    | Define target environment (not working with backup)             | `ter-data-migration restore --target=development`        | 
| include | -i    | Only backup / restore with following tables                     | `ter-data-migration backup --include=Users,Projects`     | 
| exclude | -e    | Exclude tables backup / restore. Not working if include appear  | `ter-data-migration backup --exclude=Logs,PasswordReset` | 

## See result

Everything in your db is exported with `${table_name}.json`

# Roadmap

| Version | Function                                                       | Status      |
|---------|----------------------------------------------------------------|-------------|
| 0.1.x   | Read from profile (with default config) and run export to json | Done        |
| 0.2.x   | Read from profile (with default config) and restore from json  | Done        |
| 0.3.x   | Add params profile, allow include or exclude tables            | Done        |
| 0.4.x   | Add params from, to and migration from profile to profile      | Done        |
| 0.5.x   | Add scenario file                                              | To do       |
| 0.6.x   | Provide API to programmatically migration, backup, restore     | To do       |
| 0.7.x   | Provide init command allow create profile.json                 | To do       |

---
_Source: https://npm.io/package/ter-data-migration · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
