Macro diesel_migrations::embed_migrations [−][src]
macro_rules! embed_migrations { () => { ... }; ($migrations_path : expr) => { ... }; }
Expand description
This macro will read your migrations at compile time, and embed a module you can use to execute them at runtime without the migration files being present on the file system. This is useful if you would like to use Diesel’s migration infrastructure, but want to ship a single executable file (such as for embedded applications). It can also be used to apply migrations to an in memory database (Diesel does this for its own test suite).
You can optionally pass the path to the migrations directory to this macro. When left
unspecified, Diesel Codegen will search for the migrations directory in the same way that
Diesel CLI does. If specified, the path should be relative to the directory where Cargo.toml
resides.
Examples
embed_migrations!("../migrations/sqlite"); fn main() { let connection = establish_connection(); // This will run the necessary migrations. embedded_migrations::run(&connection); // By default the output is thrown out. If you want to redirect it to stdout, you // should call embedded_migrations::run_with_output. embedded_migrations::run_with_output(&connection, &mut std::io::stdout()); }