diff options
Diffstat (limited to 'development/libs/barrel/README.md')
-rw-r--r-- | development/libs/barrel/README.md | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/development/libs/barrel/README.md b/development/libs/barrel/README.md new file mode 100644 index 000000000000..46f769ce2e30 --- /dev/null +++ b/development/libs/barrel/README.md @@ -0,0 +1,78 @@ +![](assets/logo.svg) + +[![](https://travis-ci.org/rust-db/barrel.svg?branch=master)](https://travis-ci.org/rust-db/barrel) +[![](https://ci.appveyor.com/api/projects/status/7e00r2e1xatxk3bj?svg=true)](https://ci.appveyor.com/project/spacekookie/barrel) +[![](https://coveralls.io/repos/github/rust-db/barrel/badge.svg?branch=master&service=github)](https://coveralls.io/github/rust-db/barrel?branch=master) +[![](https://docs.rs/barrel/badge.svg)](https://docs.rs/barrel/) +[![](https://img.shields.io/crates/v/barrel.svg)](https://crates.io/crates/barrel) +[![](https://img.shields.io/crates/d/barrel.svg)](https://crates.io/crates/barrel) + +A powerful database schema builder, that lets you write your SQL +migrations in Rust! + +`barrel` offers callback-style builder functions for SQL migrations +and is designed to be flexible, portable and fun to use. It provides +you with a common interface over SQL, with additional +database-specific builders. + +This way you can focus on your Rust code, without having to worry +about SQL. + +## Example + +The following example will help you get started + +```rust +use barrel::{types, Migration}; +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](https://github.com/spacekookie/barrel/blob/master/guides/diesel-setup.md) + +### Migration guide + +If you've been using `barrel` to write migrations for `diesel` before +the `0.5.0` release, some migration of your migrations will be +required. Since `0.5.0` the way types are constructed changed. +Instead of constructing a type with `Types::VarChar(255)` (an enum +variant), the types are now provided by a module called `types` and +builder functions. The same type would now be `types::varchar(255)` +(a function call), which then returns a `Type` enum. + +You can also directly created your own `Type` builders this way. +Check the docs for details! + +## License + +`barrel` is free software: you can redistribute it and/or modify it +under the terms of the MIT Public License. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MIT +Public License for more details. + +## Conduct + +In the interest of fostering an open and welcoming environment, the +`barrel` project pledges to making participation a harassment-free +experience for everyone. See [Code of Conduct](code_of_conduct.md) +for details. In case of violations, e-mail +[kookie@spacekookie.de](mailto:kookie@spacekookie.de). |