https://github.com/gabts/migratorosaurus
An exotically simple database migration tool for Node PostgreSQL!
https://github.com/gabts/migratorosaurus
database migration postgres typescript
Last synced: 8 months ago
JSON representation
An exotically simple database migration tool for Node PostgreSQL!
- Host: GitHub
- URL: https://github.com/gabts/migratorosaurus
- Owner: gabts
- License: mit
- Created: 2019-05-19T20:24:18.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2025-09-13T23:34:38.000Z (9 months ago)
- Last Synced: 2025-09-23T22:59:44.107Z (9 months ago)
- Topics: database, migration, postgres, typescript
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/migratorosaurus
- Size: 81.1 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
🦖 MIGRATOROSAURUS 🦖
An exotically simple database migration tool for node [pg](https://www.npmjs.com/package/pg).
## 🌋 Features
- Dead simple, zero config!
- Write up and down migrations in the same .sql file!
- Lightweight and easy to integrate into workflows!
## 🌍 Install
```sh
npm install --save migratorosaurus
```
Your environment should also have [pg](https://www.npmjs.com/package/pg) installed and have a [postgres](https://www.postgresql.org/) database setup.
## 🧬 Usage
In your database migration script file:
```javascript
const { migratorosaurus } = require('migratorosaurus');
migratorosaurus('postgres://localhost:5432/database', {
directory: `sql/migrations`,
table: 'my_migration_history',
});
```
Migration file should be named by the following pattern -.sql, for example: `1-create.sql`. It is important that file indices are in the correct numerical order. To ease this process you can use the built in cli to create a new migration:
```sh
migratorosaurus --directory migrations --name create-person-table
```
Sample migration file contents:
```sql
-- % up migration % --
CREATE TABLE person (
id SERIAL PRIMARY KEY,
name varchar(100) NOT NULL
);
-- % down migration % --
DROP TABLE person;
```
Migrations will be split by up/down comments. Ensure they follow above pattern.
## 👩🔬 Configuration
First argument is a required pg client configuration.
Second argument is an optional configuration object.
- **directory** The directory that contains your migation .sql files. Defaults to "migrations".
- **log** Function to handle logging, e.g. console.log.
- **table** The name of the database table that stores migration history. Default to "migration_history".
- **target** A specific migration that you would like to up/down migrate. Any migrations between the last migrated migration and the target will be up/down migrated as well.
## 🚁 Development
Download the project repository and initiate development with the following commands:
```sh
git clone https://github.com/gabts/migratorosaurus
cd migratorosaurus
yarn # installs dependencies
yarn tsc -w # watch and compile TypeScript on changes
```
### 🦟 Testing
To test that any changes did not break the package first ensure that you have a [PostgreSQL](https://www.postgresql.org/) database running. Then run `yarn mocha` with the database connection string as an node env variable.
```sh
DATABASE_URL="postgres://localhost:5432/database" yarn mocha --verbose
```
## ☄️ License
[MIT](./LICENSE)