A powerful schema migration builder, that let's you write your SQL migrations in Rust.
barrel
makes writing migrations for different databases as easy as possible.
It provides you with a common API over SQL,
with certain features only provided for database specific implementations.
This way you can focus on your Rust code, and stop worrying about SQL.
Example
The following example will help you get started
use barrel::{types, Migration, Pg};
use barrel::backend::Pg;
fn main() {
let mut m = Migration::new();
m.create_table("users", |t| {
t.add_column("name", types::varchar(255));
t.add_column("age", types::integer());
t.add_column("owns_plushy_sharks", types::boolean());
});
println!("{}", m.make::<Pg>());
}
Using Diesel
Since diesel 1.2.0
it's possible to now use barrel
for migrations with diesel
. A guide with some more information on how to get started can be found here