{"id":42868,"library":"immigration-postgres","title":"immigration-postgres","description":"PostgreSQL adapter for Immigration, a database migration tool. Version 2.0.0 is current stable; the adapter automatically manages a migration tracking table and connects to Postgres via the `pg` library's Pool. It integrates with Immigration's CLI and programmatic API, allowing users to specify connection config via file or inline Pool options. Differentiator: lightweight, no ORM dependency.","status":"active","version":"2.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/aboviq/immigration-postgres","tags":["javascript","postgres","immigration","migrations","immigration plugin"],"install":[{"cmd":"npm install immigration-postgres","lang":"bash","label":"npm"},{"cmd":"yarn add immigration-postgres","lang":"bash","label":"yarn"},{"cmd":"pnpm add immigration-postgres","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency: core migration framework required at runtime","package":"immigration","optional":false}],"imports":[{"note":"Package is ESM-only; requires Node with ESM support","wrong":"const createAdapter = require('immigration-postgres')","symbol":"createAdapter","correct":"import { createAdapter } from 'immigration-postgres'"},{"note":"Default export is same as createAdapter","wrong":"const pgAdapter = require('immigration-postgres').default","symbol":"default","correct":"import pgAdapter from 'immigration-postgres'"},{"note":"Type export for configuration object","wrong":"","symbol":"ImmigrationConfig","correct":"import type { ImmigrationConfig } from 'immigration-postgres'"}],"quickstart":{"code":"import { createAdapter } from 'immigration-postgres';\nimport { Immigration } from 'immigration';\n\nconst adapter = createAdapter({\n  table: 'migrations',\n  connectionString: process.env.DATABASE_URL ?? ''\n});\n\nconst immigration = new Immigration(\n  { directory: './migrations' },\n  adapter\n);\n\nawait immigration.up();","lang":"typescript","description":"Shows how to instantiate the adapter with a connection string and run migrations."},"warnings":[{"fix":"Use createAdapter(options) directly instead of new Adapter(options).","message":"Immigration v2 changed the adapter API; createAdapter() no longer returns a constructor.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Move Pool options to the adapter constructor arguments.","message":"Passing Pool options via config file is deprecated; use inline Pool options instead.","severity":"deprecated","affected_versions":">=1.5.0"},{"fix":"Always specify table name in options.","message":"The 'table' option is required; adapter silently creates it on first run.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use parameterized queries or validate migration names.","message":"Escape backticks in SQL: adapter uses template literals; unescaped user input may cause injection.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'2.0.0':13 'adapt':5,18 'allow':44 'api':43 'automat':19 'cli':40 'config':49 'connect':26,48 'current':15 'databas':9 'depend':60 'differenti':56 'file':51 'immigr':2,7,38,63,65 'immigration-postgr':1 'inlin':53 'integr':36 'javascript':61 'librari':32 'lightweight':57 'manag':20 'migrat':10,22,64 'option':55 'orm':59 'pg':31 'plugin':66 'pool':34,54 'postgr':3,28,62 'postgresql':4 'programmat':42 'specifi':47 'stabl':16 'tabl':24 'tool':11 'track':23 'user':45 'version':12 'via':29,50","created_at":"2026-06-05T16:57:02.952902+00:00","updated_at":"2026-06-05T16:57:02.952902+00:00","problems":[{"fix":"Run npm install immigration immigration-postgres","cause":"Missing npm install or incorrect import path","error":"Error: Cannot find module 'immigration-postgres'"},{"fix":"Use import { createAdapter } from 'immigration-postgres'","cause":"ESM import incorrectly using require() instead of import","error":"TypeError: createAdapter is not a function"},{"fix":"Provide table name in adapter options: { table: 'migrations' }","cause":"Table not created because adapter options.table missing","error":"error: relation \"migrations\" does not exist"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/aboviq/immigration-postgres#readme","github":"https://github.com/aboviq/immigration-postgres","docs":null,"changelog":null,"pypi":null,"npm":"immigration-postgres","openapi_spec":null,"status_page":null,"smithery":null,"categories":["database","devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-05","next_check":"2026-09-03","install_tag":null}}