@team_seki/postgres-plugin
TypeScript icon, indicating that this package has built-in type declarations

1.5.0 • Public • Published

postgres-plugin

This plugin is based on the knex library

Building

Run nx build postgres-plugin to build the library.

Environment variables

Environment variables are supported since v1.4.1.

  • SK_GOOGLE_POSTGRES_<identifier>_CONNECTION_STRING. The connection string. E.g.: postgresql://localhost:5432

  • SK_GOOGLE_POSTGRES_<identifier>_PRIVATE_IP_ADDRESS. The ip address where the service is running. E.g.: localhost

  • SK_GOOGLE_POSTGRES_<identifier>_USERNAME. The username used to connect to the service. E.g.: postgres

  • SK_GOOGLE_POSTGRES_<identifier>_PASSWORD. The password used to connect to the service. E.g.: my-password

How to use it

const postgresPlugin = await new PostgresPlugin({ database: "db1" });
const knex = postgresPlugin.getClient();
const result = await knex.raw("select 1;");
postgresPlugin.close();

Migration

Create new migration

import { Knex, IMigration } from '@team_seki/postgres-plugin';

const migrations: IMigration[] = [
  {
    name: '000_define_users',
    async up(knex: Knex) {
      await knex.schema.createTable(tableName, (table) => {
        table.bigIncrements('id').unsigned().primary();
        table.string('name', 512).notNullable();
        table.integer('age').notNullable();
      });
    },
    async down(knex: Knex) {
      console.log('Removing users table...');
      await knex.schema.dropTableIfExists(tableName);
      console.log('The users table was deleted successfully.');
    },
  }
];

runMigration

Runs all migrations that have not yet been run.

import { PostgresPlugin } from '@team_seki/postgres-plugin';
import migrations from './migrations'

const postgresPlugin = new PostgresPlugin({
  database: 'db1'
});
await postgresPlugin.runMigration(migrations);
postgresPlugin.close();

rollbackMigration

Rolls back the latest migration group. If the all parameter is truthy, all applied migrations will be rolled back instead of just the last batch. The default value for this parameter is false.

import { PostgresPlugin } from '@team_seki/postgres-plugin';
import migrations from './migrations'

const postgresPlugin = new PostgresPlugin({
  database: 'db1'
});
await postgresPlugin.rollbackMigration(migrations);
postgresPlugin.close();

upMigration

Runs the specified (by name parameter) or the next chronological migration that has not yet be run.

import { PostgresPlugin } from '@team_seki/postgres-plugin';
import migrations from './migrations'

const postgresPlugin = new PostgresPlugin({
  database: 'db1'
});
await postgresPlugin.upMigration(migrations, '000_define_users');
postgresPlugin.close();

downMigration

Will undo the specified (by name parameter) or the last migration that was run.

import { PostgresPlugin } from '@team_seki/postgres-plugin';
import migrations from './migrations'

const postgresPlugin = new PostgresPlugin({
  database: 'db1'
});
await postgresPlugin.downMigration(migrations, '000_define_users');
postgresPlugin.close();

Readme

Keywords

none

Package Sidebar

Install

npm i @team_seki/postgres-plugin

Weekly Downloads

1

Version

1.5.0

License

none

Unpacked Size

16.7 kB

Total Files

14

Last publish

Collaborators

  • moisesugarcia
  • kmilo8346
  • dmunozgaete