Registry / database / meyer
library1.2.5jsnpmunverified

Meyer is a database migration tool for Node.js (v18+) with inversion of control via pluggable DBMS adapters. Version 1.2.5 is stable with infrequent releases. It supports sequential plain SQL migrations with explicit UP/DOWN sections, automatic rollback in development mode when prior migrations are modified, and a design that decouples migration logic from any specific database driver. Unlike other migration tools, Meyer requires you to install a separate DBMS package (e.g., meyer-dbms-knex or meyer-dbms-mssql) and provides TypeScript types.

npm install meyer
INSTALL
IMPORT
SIG · MEYER
M
meyer
databasejavascriptv1.2.5
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Meyer
import Meyer from 'meyer'
const { Meyer } = require('meyer')
Default export in ESM; CJS users must use require('meyer').default
Meyer (as a class)
const { default: Meyer } = require('meyer')
const Meyer = require('meyer')
CJS users need to use .default to get the class
MeyerConfig
import type { MeyerConfig } from 'meyer'
import { MeyerConfig } from 'meyer'
MeyerConfig is exported as a type only

Initialize Meyer with Knex DBMS, connect via DATABASE_URL env var, run migrations, and close connection.

#!/usr/bin/env node // @ts-check const { default: Meyer } = require('meyer'); const { default: KnexDbms } = require('meyer-dbms-knex'); const path = require('path'); const parse = require('pg-connection-string').parse; if (!process.env.DATABASE_URL) { console.error('No database URL provided from environment'); process.exit(1); } async function run() { const options = parse(process.env.DATABASE_URL); const options2 = { ...options, port: Number(options.port), ssl: Boolean(options.ssl), }; const dbms = new KnexDbms('pg', options2); const meyer = new Meyer({ tableName: '_migrations', migrationsPath: path.join(__dirname, '..', 'migrations'), development: process.env.MIGRATION_MODE === 'development', dbms, }); await meyer.execute(); await dbms.close(); } run().catch((e) => { console.error(e); process.exit(1); });
Debug
Known issues
breakingRequires Node.js 18.x due to engine restriction. Older versions will fail to install or run.
fix
Upgrade Node.js to 18.x or later.
affects: >=1.0.0
gotchaCJS require does not get default export directly. You must use require('meyer').default.
fix
Use const { default: Meyer } = require('meyer');
affects: >=1.0.0
gotchaMeyer does not bundle any DBMS; you must install a separate DBMS package like meyer-dbms-knex or meyer-dbms-mssql.
fix
Run 'yarn add meyer-dbms-knex' or 'yarn add meyer-dbms-mssql'.
affects: >=1.0.0
gotchaThe 'development' option enables automatic DOWN rollbacks if prior migrations are modified, which could cause data loss if not expected.
fix
Set development: false in production environments.
affects: >=1.0.0
deprecatedNo deprecation warnings reported yet. The package has infrequent releases.
Errors
Common errors & fixes
TypeError: Meyer is not a constructor
Using default import incorrectly in CJS, e.g., const Meyer = require('meyer')
fix
Use const { default: Meyer } = require('meyer');
Cannot find module 'meyer-dbms-knex'
Missing required DBMS adapter package.
fix
Install meyer-dbms-knex or meyer-dbms-mssql via yarn add.
Error: knex: Required configuration option 'client' is missing.
Meyer's Knex DBMS expects a valid client name (e.g. 'pg') as first argument to KnexDbms constructor.
fix
Instantiate with new KnexDbms('pg', options) or the correct client for your database.
Upgrade
Version history
1.2.5latest on npm
Audit
Dependencies
meyer-dbms-knexoptionalPluggable DBMS adapter needed to connect to databases via Knex
meyer-dbms-mssqloptionalAlternative DBMS adapter for MSSQL databases
Agent activity
6 hits · last 30 days
node
6
Resources
packagemeyer
meyer — npm install meyer · libregistry