{"repo":"felixfbecker/merkel","free":true,"listed":false,"github":"https://github.com/felixfbecker/merkel","clone":"git clone https://github.com/felixfbecker/merkel.git","description":"Handles your database migration crisis 🛄","language":"TypeScript","stars":42,"topics":["database","database-migrations","migration","git-hooks","postgresql","sql","nodejs"],"license":"ISC","category":"databases-storage","readme_excerpt":"merkel Handles your database migration crisis merkel is a framework-agnostic database migration tool designed to autonomously run in Continuous Deployment, with rollbacks in mind. Installation npm install --global merkel or npm install --save-dev merkel Run merkel init to initialize a .merkelrc.json and install a git hook Is the .merkelrc.json required? No, but it holds the migration directory, and if you use it, you could change it later because the migration directory at any time is known through git. Is the git hook required? No, but it helps you type less. Read on to learn more. Workflow Make changes to your model files Let's say you made some changes to your model files that require a database migration. Generate a migration file Before you commit, create a new migration file by running merkel generate . This will generate a new migration file inside your migration directory (default ./migrations ). If a tsconfig.json was detected, the migration file will be in TypeScript. You can change the migration directory with --migration-dir and provide a custom template with --template . Like all options, they can also be set in .merkelrc.json or passed through environment variables. The name of the migration file can be set with --name . By default, a UUID is used. Why UUIDs? In opposite to sequential IDs or timestamps, UUIDs allow separate developers to write migration files without any conflicts. There can be migration files introduced in separate git branches or commits with ","default_branch":null,"files":null,"tree":[],"storefront":"/r/felixfbecker","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/felixfbecker/merkel/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}