surrealdb_migrations_engine
Super simple yet power migration engine for surreal db. All you need to get it working is the following
;
;
async
How It Works
surrealdb_migration_engine works on two concepts migrations and schema. Migrations are queries (changes) to an apply to an existing schema. Schemas are queries that set up the db structure. Schemas and migrations reside in their own directory with each file being numbered in order e.g. 0001_add_age_to_user_table.surql. Each of these directories is compiled with your binary with the help of the rust_embed crate. This means that the appropriate migrations or schema creation will happen at runtime. All migrations and schema changes are done in a single transaction, so if one fails, they all fail.
surrealdb_migration_engine creates a migrations table inside your database to track which migrations have r n. The logic flow works like this.
- If the migrations table does not exist, run only the
schemafiles and enter all currentmigrationfiles into the migration table. - If the migrations table does exist, run any
migrationfiles that are not in themigrationtable
Very simple but extremely flexible!
Uses
- Include
surrealdb_migration_enginein your application so whenever you run your application, the schema is always up to date. - Include
surrealdb_migration_enginein a barebones executable that runs the necessary migrations or schema creation before an application starts.