Migrate your database schema in a simple manner.
Martlet project provides a seamless way to manage database schema versions leveraging PostgreSQL (other databases will be added later). Through a CLI interface, users can execute up or down migrations. The software's core functionality lies in applying migrations in a transaction, handling database connections, and dynamically loading the database driver as needed.
npm i -g martlet
Put migration files in a directory named migrations
in the root of your project. Files should have the following naming pattern:
<version>_<name>.sql
Example:
001_create_table.sql
002_add_column.sql
Inside the migration file, you can write SQL statements to create or modify the database schema. The up queries should be separated from the down queries by a -- up/down --
comment.
Example:
create table users (
id serial primary key,
name text not null
);
-- up/down --
drop table users;
martlet --help
martlet up --database-url postgres://user:password@localhost:5432/dbname
martlet down 0 --database-url postgres://user:password@localhost:5432/dbname
Node js ecosystem has many database migration tools, some are independent, some are parts of ORM libraries.
I needed a simple and minimalistic tool that can just apply migrations written as sql in .sql
files, and have up and down migrations in a single file, to enable Copilot write down migrations for me :)