Releases: Electron100/butane
Releases · Electron100/butane
0.7
We'd been too long without a public release, so there are a lot of changes here. Most of them are minor.
Breaking Changes
- The
#[auto]
attribute is replaced with theAutoPk
type. - Remove
ObjectState
and the auto-createdstate
field for each model (#151)
API Features
- Add
migrate
&unmigrate
toMigrations
(#250) - Expose PrimaryKeyType (#97)
- Allow deriving PrimaryKeyType (#245)
- Add Derive FieldType support for newtypes (#236, #99)
- Add
delete_migrations
toMigrationsMut
(#224) - Add
delete
toMany
(#146) - Add
load_ordered
toMany
(#131) - Support
Clone
for more types (#241, #107)
Library fixes & internal improvements
- Drop constraints before dropping tables (#253)
Clone
includesForeignKey
value (#244)- [pg] Use ALTER TABLE instead of copies (#243)
- Add equality of KnownId(t) and Known(t) (#234)
- Add references when adding/changing pg columns (#239)
- Avoid duplicate .table files (#225)
- Prevent unnecessary whitespace in sqlite SQL (#221)
- Create dir before lock to fix race condition in
FsMigrations
(#213) - Remove unused trait ModelTyped (#178)
- Fix sqlite foreign key support (#177)
- Use pretty json in .butane files (#175)
- Improve DataObject.save() generation (#171)
- Support BTreeMap for feature json (#164)
- Add database constraints (#158)
- Force stable ordering of migration operations (#155)
- Add more flexibility in type path matching in proc macro (#123)
- Upsert on save (#117)
- Improve checking for unitialized values added to a Many (#116)
- Quote reserved SQL words (#104)
- Allow type
serde_json::Value
(#106) - Fixes for new lints and warnings (various)
- Test expansion & improvements (various)
- Improved docs and examples (various)
- Improved logging (various)
- Dependency updates (various)
CLI features & interface changes
- Add
desribe-migration
command (#230) unmigrate
(instead ofrollback
) is the primary command for schema reverts. Rollback still works via alias. (#260)- Add
--verbose
flag (#205) - Add
--no-connect
flag to allowinit
without connecting (#195) - Add
--path
argument to set working directory (#130) - Add
backend
command for adding or removing backends from migrations (#198) - Add
detach-migration
command (see cli help for details) (#100)
CLI fixes & internal improvements
0.6.1
- Fix docs.rs build
- use resolver 2
0.6
- Add a
butane clean
command (#46) - More flexibility in accepting
DateTime
identifiers (#54) - Add
#[derive(FieldType)]
(#68) - Add missing Clone trait (#24)
- Allow feature postgres without chrono (#36)
- Add JSON support (#38)
- Remove unused features of dependencies (#47)
- Support HashMap with any value (#45)
- Add Debug trait to all data structures (#55)
- Support fake data (#57)
- Make load_first respect order and offset(#34)
- Reexposes r2d2::ManageConnection in r2 to prevent having to add r2d2 dependency directly to Cargo.toml (#35)
- Fix issue with many to many relationship not respecting renamed tables (#59)
- Updated to use Edition 2021
- Test improvements
- Dependency updates
- Example improvements
Contributors to this release: John Vandenberg, James Oakley, João M. Martins
0.5.1
- Add
try_get
to DataObject. This returns aResult<Option<T>>
rather thanResult<T>
. When it's expected that the object may not exist, this leads to slightly better ergonomics. - Support Chrono
DateTime<Utc>
likeNaiveDateTime
0.5
Many::add
now returns aResult
, which will indicate an error if used with an uninitialized primary key.- Dependency version updates and clippy bitrot
- Cleanup improvements to Postgres tests
0.4.3
Add butane
CLI commands clear
and collapse
clear
clears out all data from the database without affecting the schemacollapse
collapses all (applied) migrations into a single new migration.
0.4.2
- Add offset parameter to
Query
- Fix
BoolExpr::In
handling - Add
Many::remove
- Allow a
ForeignKey
to refer to the same type - Fix bug saving an object with an auto-pk and a
Many
field.
0.4.1
Add sqlite-bundled feature
0.4: Implement Serialize/Deserialize for Many
Support Serialize/Deserialize for Many
This required changing the Query/Expr structures, and so is technically a breaking change.
0.3.1
Add the #[unique]
model field attribute. This can be used to add a UNIQUE constraint on the field.