Exodus
Exodus is a MongoDB data migration tool for the Deno runtime environment.
Usage
The following flags should be used before running any command:
deno run -A –unstable
Followed by the version of the cli.ts file:https://deno.land/x/exodus@0.1.2/cli.ts
deno run -A --unstable https://deno.land/x/exodus@0.1.2/cli.ts
It will also run with the following flags --unstable --allow-read --allow-write --allow-net
if you wish to be more specific about permissions
deno run --unstable --allow-read --allow-write --allow-net https://deno.land/x/exodus@0.1.2/cli.ts
Initializing a Project
init
: Initializes a new Exodus migration project by generating a/migrations
directory and asetup.ts
file in the current working directory. Modify thesetup.ts
with your MongoDB database connection information. Exodus uses the settings in this file to connect to your database.
Creating Migrations
create
[commitMessage]
: Creates a new migration file in the/migrations
directory containing a template forfwd
andback
functionality
deno run -A --unstable https://deno.land/x/exodus@0.1.2/cli.ts create
Running Migrations
You may choose to apply migrations incrementally or all at once using the fwd
or full
commands respectively. For every successful migration applied, a log document will be created and stored in a ‘migrationLog’ collection within the database.
fwd
: Applies the next pending migration
deno run -A --unstable https://deno.land/x/exodus@0.1.2/cli.ts fwd
full
: Applies all pending migrations
deno run -A --unstable https://deno.land/x/exodus@0.1.2/cli.ts full
Rollingback changes is done incrementally. Successful rollbacks will delete the associated log file from the migrationLog collection.
back
: Rollback changes of last applied migration
deno run -A --unstable https://deno.land/x/exodus@0.1.2/cli.ts back
Checking Applied Migrations
You can display the current status of your migrations
log
: Displays a table of current migrations pending and migrations applied. This log data is retrieved from the migrationLog collections in your database.
deno run -A --unstable https://deno.land/x/exodus@0.1.2/cli.ts log