0.1.6 • Published 5 years ago

@fewlines/fwl-migration v0.1.6

Weekly downloads
-
License
MIT
Repository
-
Last release
5 years ago

FWL Database

Disclaimer: this package is made for our internal usage and is only open source for convenience so we might not consider Pull Requests or Issues. Feel free to fork though.

This is part of the Fewlines Web Libraries packages.

It provides a migration tool using SQL files.

Installation

yarn add @fewlines/fwl-migration

Usage

migration is a database migrations written in TypeScript which can be used as a CLI of imported as a package.

It will look into the migrations folder and execute each SQL queries, in the correct order. If one of the transaction fails, migration will keep track of the last successful query through a migration_schemas table, so you can safely rerun the migration process.

config.json

To run migration, you need to create a config.json with the following data structure:

{
  "database": {
    "database": string;
    "password": string;
    "username": string;
    "host": string;
    "port": number;
  },
  "http": {
    "port": number;
  },
  "tracing": {
    "serviceName": string;
  },
  "migration": {
    "dirPath": string;
  }
}

CLI

To use migration as a CLI, simply run one of those command, depending on your needs:

  • "migration --migrate path/to/config.json": run the migration process.
  • "migration --create name_of_the_file": create a timestamped migration file in the path set up in config.json.

Package

If you need more customization and control over the migration process, you can implement your own logic by importing the package, which give you access to two functions.

runMigrations

You will have to give a config as argument if you created it somewhere else than the root folder, like so:

import * as migration from "@fewlines/fwl-migration";

import config from "path/to/config";

migration.runMigrations(config);

createMigrationFile

The createMigrationFile takes the name of the file as an argument:

import * as migration from "@fewlines/fwl-migration";

migration.createMigrationFile("name_of_the_file");

You can also use it through a custom npm script, and use the corresponding process.argv value as arguments.

0.1.6

5 years ago

0.1.5

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago