{"_id":"@aegon_targaryen/drizzle-migrations","_rev":"2-05d8f6b76d11791659e58a0c2bcc3205","name":"@aegon_targaryen/drizzle-migrations","dist-tags":{"latest":"0.8.0"},"versions":{"0.7.0":{"name":"@aegon_targaryen/drizzle-migrations","version":"0.7.0","keywords":["drizzle","migrations","orm","up migration","down migration","rollback","drepkovsky"],"author":{"name":"8907234"},"license":"ISC","_id":"@aegon_targaryen/drizzle-migrations@0.7.0","maintainers":[{"name":"aegon_targaryen","email":"8907234@proton.me"}],"bin":{"drizzle-migrations":"dist/cli-entry.cjs"},"dist":{"shasum":"887982580e35efdf41c6812f55bd35830661f7d7","tarball":"https://registry.npmjs.org/@aegon_targaryen/drizzle-migrations/-/drizzle-migrations-0.7.0.tgz","fileCount":8,"integrity":"sha512-euwZ1rfVVp0yfedXTozK19iPjkyUNCkbDTvt0bydVbjvjI9E8xiJ/VXOt4xYLAfgbjn4IsyFcYSt0q0i5Cz07g==","signatures":[{"sig":"MEUCIQCmHnyhaVM7/BACq1KvO8i/YUwV/w3+FT0dQtCLHhOzvgIgX8OFcXTr0CHZoPBKPKw+5C9hxJMqJzpS34aFBR03J+s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47497},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"gitHead":"7e0bf130a537b7b23b05ba401cb05a7fa5e4b88f","scripts":{"dev":"tsup --watch","build":"rimraf dist && tsup","release":"pnpm build && pnpm publish --access public"},"_npmUser":{"name":"aegon_targaryen","email":"8907234@proton.me"},"_npmVersion":"10.8.1","description":"Tiny tool for managing migrations in Drizzle","directories":{},"_nodeVersion":"22.4.1","dependencies":{"tsx":"^4.16.2","prompts":"^2.4.2","commander":"^12.1.0","lodash.camelcase":"^4.3.0","lodash.kebabcase":"^4.1.1","lodash.snakecase":"^4.1.1","console-table-printer":"^2.12.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.1.0","rimraf":"^5.0.8","typescript":"^5.5.3","@types/node":"^20.14.9","@types/prompts":"^2.4.9","@types/lodash.camelcase":"^4.3.9","@types/lodash.kebabcase":"^4.1.9","@types/lodash.snakecase":"^4.1.9"},"peerDependencies":{"drizzle-kit":"^0.31.1","drizzle-orm":"^0.44.2"},"_npmOperationalInternal":{"tmp":"tmp/drizzle-migrations_0.7.0_1756151053706_0.7134811849386924","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@aegon_targaryen/drizzle-migrations","version":"0.8.0","description":"Tiny tool for managing migrations in Drizzle","peerDependencies":{"drizzle-kit":"^0.31.1","drizzle-orm":"^0.44.2"},"bin":{"drizzle-migrations":"dist/cli-entry.cjs"},"dependencies":{"commander":"^12.1.0","console-table-printer":"^2.12.1","lodash.camelcase":"^4.3.0","lodash.kebabcase":"^4.1.1","lodash.snakecase":"^4.1.1","prompts":"^2.4.2","tsx":"^4.16.2"},"devDependencies":{"@types/lodash.camelcase":"^4.3.9","@types/lodash.kebabcase":"^4.1.9","@types/lodash.snakecase":"^4.1.9","@types/node":"^20.14.9","@types/prompts":"^2.4.9","rimraf":"^5.0.8","typescript":"^5.5.3","tsup":"^8.1.0"},"keywords":["drizzle","migrations","orm","up migration","down migration","rollback","aegon_targaryen"],"author":{"name":"Dominik Repkovský"},"license":"ISC","main":"dist/index.cjs","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"scripts":{"build":"rimraf dist && tsup","dev":"tsup --watch","release":"pnpm build && pnpm publish --access public"},"_id":"@aegon_targaryen/drizzle-migrations@0.8.0","_integrity":"sha512-1wDJMfKuvVSbSJvsQvMmqUBzK/yHx8nQC3Hp5Ka14zc9kFojadSnUo6IzAW2V+dkni0EV20M9ONL72FpBrckBQ==","_resolved":"/private/var/folders/xp/s7h4nyqj55n4sxxwg176dy9w0000gn/T/1338b9bd4347c02f8528b1b67b7f54c6/aegon_targaryen-drizzle-migrations-0.8.0.tgz","_from":"file:aegon_targaryen-drizzle-migrations-0.8.0.tgz","_nodeVersion":"22.4.1","_npmVersion":"10.8.1","dist":{"integrity":"sha512-1wDJMfKuvVSbSJvsQvMmqUBzK/yHx8nQC3Hp5Ka14zc9kFojadSnUo6IzAW2V+dkni0EV20M9ONL72FpBrckBQ==","shasum":"b7d76376c9b031be61d01c3fe8fde04ec10af028","tarball":"https://registry.npmjs.org/@aegon_targaryen/drizzle-migrations/-/drizzle-migrations-0.8.0.tgz","fileCount":8,"unpackedSize":47735,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEkkBBSJR6lB5ouilduW04cwqpE9VIlUxsIcEqXlIncOAiEArWhzch4ld6xu6O80G6PIa8kLuP3oYJWc/MRhUh0ekAs="}]},"_npmUser":{"name":"aegon_targaryen","email":"8907234@proton.me"},"directories":{},"maintainers":[{"name":"aegon_targaryen","email":"8907234@proton.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/drizzle-migrations_0.8.0_1756217232703_0.029629543287160054"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-25T19:44:13.605Z","modified":"2025-08-26T14:07:13.118Z","0.7.0":"2025-08-25T19:44:13.914Z","0.8.0":"2025-08-26T14:07:12.936Z"},"author":{"name":"Dominik Repkovský"},"license":"ISC","keywords":["drizzle","migrations","orm","up migration","down migration","rollback","aegon_targaryen"],"description":"Tiny tool for managing migrations in Drizzle","maintainers":[{"name":"aegon_targaryen","email":"8907234@proton.me"}],"readme":"# Drizzle migrations\n\nSimple tool that ads `up` and `down` and `down-one` migration capability for drizzle projects.\n\nAutomatic migration generation for drizzle was adapted from the **PayloadCMS** repository.\n\n**Warning**! This tool is work in progress and was only tested on `pg` databases, but should be working on `sqlite` and `mysql` too.\nThis is also something that drizzle will probably have built-in inside `drizzle-kit` in the future.\n\n## Installation\n\n```bash\nnpm install @aegon_targaryen/drizzle-migrations # or yarn,pnpm,bun\n```\n\n## Configuration\n\nTo make this work you have to make small changes inside your `drizzle.config.ts` file\n\n```ts\nimport { defineConfig } from '@aegon_targaryen/drizzle-migrations'\nimport { drizzle } from 'drizzle-orm/postgres-js'\nimport postgres from 'postgres'\n\n// notice how we are not using `defineConfig` from drizzle but from `@aegon_targaryen/drizzle-migrations`\nexport default defineConfig({\n  schema: './src/schema.ts',\n  dialect: 'postgresql',\n  dbCredentials: {  ...  },\n  out: './src/migrations',\n\n  // this is default if not provided. schema is for now supported only for postgres,\n  migrations: {\n    schema: 'public',\n    table: 'drizzle_migrations',\n  },\n\n  // define your own client using adapter of your choice\n  getMigrator: async () => {\n    const migrationClient = postgres('postgres://postgres:postgres@localhost/postgres-db', {\n      max: 1,\n    })\n\n    return drizzle(migrationClient)\n  },\n\n  // only needed if you want to use seed commands\n  seed: { dirPath: './src/seeders', defaultSeeder: 'db-seeder' }\n})\n```\n\n## Usage\n\n### Generate migration\n\n```bash\nnpm run drizzle-migrations generate --name <migration-name>\n```\n\n### Run migrations\n\n```bash\nnpm run drizzle-migrations up\n```\n\n### Rollback migrations\n\n```bash\nnpm run drizzle-migrations down\n```\n\n### Rollback one migration\n\n```bash\nnpm run drizzle-migrations down-one\n```\n\n### Rollback up to specific batch\n\n```bash\nnpm run drizzle-migrations down --bach <batch-number>\n```\n\n### Get status of migrations\n\n```bash\nnpm run drizzle-migrations status\n```\n\n### Rollback all migrations\n\n```bash\nnpm run drizzle-migrations fresh\n```\n\n### Rollback all migrations and run them again\n\n```bash\nnpm run drizzle-migrations refresh\n```\n\n### Create seeder\n\n```bash\nnpm run drizzle-migrations seed:create --name <seeder-name>\n```\n\n### Run seeders\n\n```bash\nnpm run drizzle-migrations seed:run --name <seeder-name> // default seeder is db-seeder\n```\n\n### Example of generated migration\n\n```ts\nimport { sql } from \"drizzle-orm\";\nimport type { MigrationArgs } from \"@aegon_targaryen/drizzle-migrations\";\n\nexport async function up({ db }: MigrationArgs<\"postgresql\">): Promise<void> {\n  await db.execute(sql`\n        CREATE TABLE IF NOT EXISTS \"posts\" (\n                \"id\" serial PRIMARY KEY NOT NULL,\n                \"title\" varchar(255),\n                \"content\" varchar,\n                \"user_id\" integer\n        );\n\n        CREATE TABLE IF NOT EXISTS \"users\" (\n                \"id\" serial PRIMARY KEY NOT NULL,\n                \"name\" varchar,\n                \"slug\" uuid\n        );\n\n        DO $$ BEGIN\n        ALTER TABLE \"posts\" ADD CONSTRAINT \"posts_user_id_users_id_fk\" FOREIGN KEY (\"user_id\") REFERENCES \"public\".\"users\"(\"id\") ON DELETE no action ON UPDATE no action;\n        EXCEPTION\n        WHEN duplicate_object THEN null;\n        END $$;\n\n        `);\n}\n\nexport async function down({ db }: MigrationArgs<\"postgresql\">): Promise<void> {\n  await db.execute(sql`\n        DROP TABLE \"posts\";\n        DROP TABLE \"users\";\n`);\n}\n```\n","readmeFilename":"readme.md"}