This plugin is based on the knex library
Run nx build postgres-plugin
to build the library.
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
const postgresPlugin = await new PostgresPlugin({ database: "db1" });
const knex = postgresPlugin.getClient();
const result = await knex.raw("select 1;");
postgresPlugin.close();
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.');
},
}
];
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();
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();
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();
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();