Commit graph

53 commits

Author SHA1 Message Date
github-actions[bot]
e67ce0de1e chore(release): version packages 2023-12-19 14:41:04 +01:00
beb6cf7719 chore(deps): upgrade ansis package 2023-12-19 14:34:54 +01:00
github-actions[bot]
747f9dbddb chore(release): version packages 2023-12-19 14:09:15 +01:00
ce6946cac4 feat: support for Bun 2023-12-19 14:06:00 +01:00
17c4723bb8 feat(postgres): implement the first version of the PostgreSQL plugin 2023-12-19 13:27:57 +01:00
987374dbd5
chore(release): version packages (#43)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-12-15 14:43:10 +01:00
cae6d11d53
feat(types): move Emigrate types to separate package and improve types (#41)
* feat(types): move Emigrate types to separate package

Also refactor the types to use discriminating unions for easier error handling and such.
Errors passed to storage plugins should now be serialized and storage plugins are expected to return already serialized errors on failed history entries.

* fix(mysql): handle the new type changes

* fix(storage-fs): handle the new type changes

* feat(cli): better error handling and types

Adapt to the new types from the @emigrate/types package, like discriminating union types and serializing and deserializing errors
2023-12-15 13:03:35 +01:00
afe56594c5
chore(release): version packages (#40)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-12-15 12:55:48 +01:00
1434be5d5e
feat(reporter): print Emigrate CLI's version number and relative paths to migrations (#39)
* feat(reporter-default): print CLI version number

* feat(reporter-default): print relative paths to migrations instead of only the file names

This makes the output clickable in most shells

* feat(reporter-pino): include the Emigrate CLI version in each log
2023-12-14 13:45:02 +01:00
480796e95b
chore(release): version packages (#36)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-12-14 13:29:02 +01:00
bad4e252f3
feat(reporters): pass the CLI's version number to reporters (#38) 2023-12-14 13:11:55 +01:00
2b9a16d6fd
fix(cli): make main command non-strict to let other commands handle their options (#37) 2023-12-14 11:47:36 +01:00
960ce08674
feat(cli): add --help and --version options to main command (#35) 2023-12-14 10:49:54 +01:00
af360ca6a4
chore(release): version packages (#31)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-12-12 16:06:44 +01:00
8cc43a8f83 refactor(cli): introduce the migration-runner helper for less code duplication and fewer return paths
Thanks to the migration-runner the "up" and "list" commands are now very similar code wise
2023-12-12 15:47:37 +01:00
5307e87242 fix(list): don't log info about locked migrations as it doesn't happen in this command 2023-12-12 15:38:24 +01:00
bc33e63e3e feat(reporter-default): improve error logging by logging all own properties of the errors 2023-12-12 15:36:30 +01:00
e7288fcbfb test(up): add more tests for the "up" command 2023-12-08 13:47:36 +01:00
3db7e995d7
chore(release): version packages (#30)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-12-08 13:10:41 +01:00
703e6f028a feat(storage): add "end" method to storage for cleaning up resources when commands are finished 2023-12-08 13:01:46 +01:00
a8db22680e feat(up): handle storage initialization errors and present missing loader errors in a better way 2023-12-08 13:01:45 +01:00
c1d55978d7 feat(up): serialize errors before passing them to storage plugins 2023-12-08 13:01:45 +01:00
3b2b21f729
chore(release): version packages (#28)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-12-08 11:14:45 +01:00
43a220d633 test(up): start writing some tests for the "up" command 2023-12-07 10:48:02 +01:00
871fb47aac
chore(release): version packages (#19)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-11-24 16:04:55 +01:00
d8a6a2428a feat(remove): implement the "remove" command for removing migrations from the history 2023-11-24 15:45:17 +01:00
9447d28ad8 fix(history): don't let different migration directories interfere with each other even though they share storage 2023-11-24 11:10:01 +01:00
cf17e48f25 feat(cli): enable source maps 2023-11-24 10:55:58 +01:00
8347fc1fa4 feat(up): improve error handling and presentation 2023-11-22 15:47:17 +01:00
b57c86eaab fix(up): only load the JavaScript loader plugin if necessary 2023-11-22 15:40:53 +01:00
c68c6f0490 feat(cli): include Emigrate error codes in error names 2023-11-22 15:34:05 +01:00
570bd1fa2b feat(cli): make the default reporter print the full command output when done
In interactive mode the output is normally clipped to the number of lines that the current terminal window can show without scrolling
so to remedy that the full command output is now printed to the console when done
2023-11-22 14:35:38 +01:00
8f623efd45 feat(cli): ignore letter casing of commands 2023-11-22 14:35:37 +01:00
53cdb23237 feat(cli): implement the "list" command for listing migration history and pending migrations 2023-11-22 14:35:37 +01:00
d4d87036df refactor(cli): move commands to a separate folder 2023-11-22 14:35:36 +01:00
4f8fb441f8 refactor(cli): move the default reporter into a separate "reporters" folder 2023-11-22 14:35:35 +01:00
da1eee3c75 feat(cli): add "reporter" option for the "new" command for improved logging 2023-11-22 14:35:35 +01:00
1940885134 fix(cli): remove the double period before file extension in new migration files 2023-11-22 14:35:35 +01:00
8e87ade5c0 feat(cli): storage and reporter are now their own options
Instead of mixing storages and reporters with other plugins in the plugin option they now have their own separate options.
This is for increased future flexibility and to be more similar to other CLI tools.

BREAKING CHANGE: the storage to use must now be specified using the "storage" configuration option or the "--storage" CLI option instead of having it among other plugins.
2023-11-22 14:35:35 +01:00
5b00fd4fdb chore(lint): configure project wide linting to make use of Turborepo again
Don't know why I didn't get this to work before with the cwd workaround...
2023-11-17 14:20:06 +01:00
a51192f730
chore(release): version packages (#13)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-11-17 12:58:19 +01:00
59ec16b87b feat(cli): improve "up" command output and flow a lot 2023-11-17 12:50:35 +01:00
8f35812fed feat(cli): add support for "reporter" plugins and include a default reporter 2023-11-17 12:50:33 +01:00
b61072a3b6
chore(release): version packages (#12)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-11-16 12:59:28 +01:00
30a448b4cf feat(cli): improve error handling with more custom Error instances 2023-11-16 12:01:32 +01:00
8dadfe9a5b feat(cli): support NodeJS callback style migration functions 2023-11-16 11:24:00 +01:00
46b9104cda fix(cli): don't run any migrations if any previous migration have failed 2023-11-16 10:59:54 +01:00
3b36b3de52 feat(cli): implement a default "loader" for JavaScript files
Supports any of the `.js`, `.cjs` and `.mjs` file extensions
2023-11-16 10:58:35 +01:00
a1debba2e1 fix(cli): allow creating new migration files with only the "extension" option 2023-11-16 10:51:43 +01:00
b56794a269 feat(cli): implement the "up" command with support for "storage" and "loader" plugins 2023-11-15 16:14:10 +01:00