No description
Find a file
Joakim Carlstein 0081f77e86 feat(emigrate): add some rough support for generating new migration files
And add some CLI args parsing and usage messages for upcoming commands as well
2023-11-09 22:22:43 +01:00
.changeset feat(plugin-generate-js): first version 2023-11-09 22:00:43 +01:00
.github/workflows chore: first commit 🎉 2023-11-08 11:41:05 +01:00
.husky chore: first commit 🎉 2023-11-08 11:41:05 +01:00
bin chore: first commit 🎉 2023-11-08 11:41:05 +01:00
packages feat(emigrate): add some rough support for generating new migration files 2023-11-09 22:22:43 +01:00
.editorconfig chore: first commit 🎉 2023-11-08 11:41:05 +01:00
.gitignore chore: first commit 🎉 2023-11-08 11:41:05 +01:00
.npmrc chore: add some package init defaults 2023-11-09 09:00:56 +01:00
.nvmrc chore: first commit 🎉 2023-11-08 11:41:05 +01:00
.prettierignore chore: first commit 🎉 2023-11-08 11:41:05 +01:00
.prettierrc chore: first commit 🎉 2023-11-08 11:41:05 +01:00
commitlint.config.js chore: first commit 🎉 2023-11-08 11:41:05 +01:00
LICENSE chore: first commit 🎉 2023-11-08 11:41:05 +01:00
package.json feat(emigrate): add some rough support for generating new migration files 2023-11-09 22:22:43 +01:00
pnpm-lock.yaml feat(emigrate): add some rough support for generating new migration files 2023-11-09 22:22:43 +01:00
pnpm-workspace.yaml chore: first commit 🎉 2023-11-08 11:41:05 +01:00
README.md chore: first commit 🎉 2023-11-08 11:41:05 +01:00
renovate.json chore: first commit 🎉 2023-11-08 11:41:05 +01:00
turbo.json chore: configure project wide linting in another way until XO correctly supports monorepos 2023-11-09 09:02:59 +01:00

Emigrate

The modern, modular and flexible migration tool for any database

It's effectively a successor of klei-migrate and Immigration.

Features

  • Database agnostic
    • Emigrate can migrate any database
  • Works at any scale
    • Supports any database as storage so multiple instances can share the same migration history
    • Uses smart locking to ensure only one instance migrates a certain migration at a time
    • Thanks to the smart locking it's safe to run migrations in parallel
  • Can be run inside containers
    • It's common for Docker or Kubernetes to kill containers with health checks if migrations takes too long to run
    • Emigrate makes sure the migration history does not get stuck in a locked state if that's the case
  • Supports any file type for your migration files
    • You can easily write migrations in JavaScript, TypeScript or plain SQL (or any other language)
    • You can customize the template for your migration files to fit your needs (or use a plugin to do it for you)
  • Easy to debug
    • Emigrate will store any errors that occur during migration in the migration history so you can easily debug them

License

Emigrate is licensed under the MIT license. See LICENSE for the full license text.