Releasing 0.5.0
So barrel.rs has a blog now 🎉!
Today we are also happy to announce the release of version 0.5.0.
A lot of work as gone into this release and breaks the API in a few ways.
This post will quickly highlight new features and also changes to the API.
New type system
This release adds barrel::types which replaces the old Column types.
While types are still enums with different type variants, the creation
is now much more streamlined with a builder-style API.
types::varchar(255)
.nullable(true)
.default("Alice")
This change allows us to more easily support database specific types
in the future and makes it easier for you to create your own custom
type builders.
Check out the barrel::types documentation for details.
Explicit IDs for tables
Since 0.2.0 a new table had an implicit PRIMARY key called id.
It was brought up several times that barrel should not have implicit behaviour like this
and and as such we have no reverted this!
Now you will need to create a new id field explicitly
table.add_column("id", types::primary())
We're still evaluating the option to add a table.id() function
(or similar) to make this process easier.
Various changes
The DatabaseExecutor was renamed to SqlRunner,
there were several bug-fixes around diesel integration as well as
the table API.
Also you can now finally use the UUID column type on Postgres
databases. More database specific features are coming!
Most importantly, you will need a very recent diesel version
which then depends on 0.5.0.
If you're using barrel currently, nothing will change until you update.
Be aware that your existing migrations will need adjustment if you plan
on re-running them!
All in all, this is a pretty big step forward.
We're also tracking some things to implement on a roadmap
for an upcoming 1.0.0 release later this year (maybe!)