Skip to content

Releases: SeaQL/sea-orm

0.10.1

27 Oct 08:34
Compare
Choose a tag to compare

Enhancements

  • [sea-orm-cli] Escape module name defined with Rust keywords #1052
  • [sea-orm-cli] Check to make sure migration name doesn't contain hyphen - in it #879, #1155
  • Support time crate for SQLite #995

Bug Fixes

  • [sea-orm-cli] Generate Related for m-to-n relation #1075
  • [sea-orm-cli] Generate model entity with Postgres Enum field #1153
  • [sea-orm-cli] Migrate up command apply all pending migrations #1010
  • [sea-orm-cli] Conflicting short flag -u when executing migrate generate command #1157
  • Prefix the usage of types with sea_orm:: inside DeriveActiveEnum derive macros #1146, #1154
  • [sea-orm-cli] Generate model with Vec<f32> or Vec<f64> should not derive Eq on the model struct #1158

House Keeping

  • [sea-orm-cli] [sea-orm-migration] Add cli feature to optionally include dependencies that are required by the CLI #978

Upgrades

  • Upgrade sea-schema to 0.10.2 #1153

New Contributors

Full Changelog: 0.10.0...0.10.1

0.10.0

23 Oct 15:47
Compare
Choose a tag to compare

https://www.sea-ql.org/blog/2022-11-10-whats-new-in-0.10.x/

New Features

  • Better error types (carrying SQLx Error) #1002
  • Support array datatype in PostgreSQL #1132
  • [sea-orm-cli] Generate entity files as a library or module #953
  • [sea-orm-cli] Generate a new migration template with name prefix of unix timestamp #947
  • [sea-orm-cli] Generate migration in modules #933
  • [sea-orm-cli] Generate DeriveRelation on empty Relation enum #1019
  • [sea-orm-cli] Generate entity derive Eq if possible #988
  • [sea-orm-cli] Run migration on any PostgreSQL schema #1056

Enhancements

  • Support distinct & distinct_on expression #902
  • fn column() also handle enum type #973
  • Added acquire_timeout on ConnectOptions #897
  • [sea-orm-cli] migrate fresh command will drop all PostgreSQL types #864, #991
  • Better compile error for entity without primary key #1020
  • Added blanket implementations of IntoActiveValue for Option values #833
  • Added into_model & into_json to Cursor #1112
  • Added set_schema_search_path method to ConnectOptions for setting schema search path of PostgreSQL connection #1056
  • Serialize time types as serde_json::Value #1042
  • Implements fmt::Display for ActiveEnum #986
  • Implements TryFrom<ActiveModel> for Model #990

Bug fixes

  • Trim spaces when paginating raw SQL #1094

Breaking changes

  • Replaced usize with u64 in PaginatorTrait #789
  • Type signature of DbErr changed as a result of #1002
  • ColumnType::Enum structure changed:
enum ColumnType {
    // then
    Enum(String, Vec<String>)

    // now
    Enum {
        /// Name of enum
        name: DynIden,
        /// Variants of enum
        variants: Vec<DynIden>,
    }
    ...
}
  • A new method array_type was added to ValueType:
impl sea_orm::sea_query::ValueType for MyType {
    fn array_type() -> sea_orm::sea_query::ArrayType {
        sea_orm::sea_query::ArrayType::TypeName
    }
    ...
}
  • ActiveEnum::name() changed return type to DynIden:
#[derive(Debug, Iden)]
#[iden = "category"]
pub struct CategoryEnum;

impl ActiveEnum for Category {
    // then
    fn name() -> String {
        "category".to_owned()
    }

    // now
    fn name() -> DynIden {
        SeaRc::new(CategoryEnum)
    }
    ...
}

House keeping

  • Documentation grammar fixes #1050
  • Replace dotenv with dotenvy in examples #1085
  • Exclude test_cfg module from SeaORM #1077

Integration

  • Support rocket_okapi #1071

Upgrades

  • Upgrade sea-query to 0.26 #985

New Contributors

Full Changelog: 0.9.0...0.10.0

0.9.3

30 Sep 17:12
Compare
Choose a tag to compare

Enhancements

  • fn column() also handle enum type #973
  • Generate migration in modules #933
  • Generate DeriveRelation on empty Relation enum #1019
  • Documentation grammar fixes #1050

Bug fixes

  • Implement IntoActiveValue for time types #1041
  • Fixed module import for FromJsonQueryResult derive macro #1081

0.9.2

20 Aug 14:25
Compare
Choose a tag to compare

Enhancements

  • [sea-orm-cli] Migrator CLI handles init and generate commands #931
  • [sea-orm-cli] added with-copy-enums flag to conditional derive Copy on ActiveEnum #936

House keeping

  • Exclude chrono default features #950
  • Set minimal rustc version to 1.60 #938
  • Update sea-query to 0.26.3

Notes

In this minor release, we removed time v0.1 from the dependency graph

0.9.1

21 Jul 16:44
Compare
Choose a tag to compare

Enhancements

  • [sea-orm-cli] Codegen support for VarBinary column type #746
  • [sea-orm-cli] Generate entity for SYSTEM VERSIONED tables on MariaDB #876

Bug Fixes

  • RelationDef & RelationBuilder should be Send & Sync #898

House keeping

  • Remove unnecessary async_trait #737

0.9.0

17 Jul 09:31
Compare
Choose a tag to compare

https://www.sea-ql.org/blog/2022-07-17-whats-new-in-0.9.0/

New Features

  • Cursor pagination (#822)
  • Custom join on conditions (#793)
  • DeriveMigrationName and sea_orm_migration::util::get_file_stem (#736)
  • FromJsonQueryResult for deserializing Json from query result (#794)

Enhancements

  • Added sqlx_logging_level to ConnectOptions (#800)
  • Added num_items_and_pages to Paginator (#768)
  • Added TryFromU64 for time (#849)
  • Added Insert::on_conflict (#791)
  • Added QuerySelect::join_as and QuerySelect::join_as_rev (#852)
  • Include column name in TryGetError::Null (#853)
  • [sea-orm-cli] Improve logging (#735)
  • [sea-orm-cli] Generate enum with numeric like variants (#588)
  • [sea-orm-cli] Allow old pending migration to be applied (#755)
  • [sea-orm-cli] Skip generating entity for ignored tables (#837)
  • [sea-orm-cli] Generate code for time crate (#724)
  • [sea-orm-cli] Add various blob column types (#850)
  • [sea-orm-cli] Generate entity files with Postgres's schema name (#422)

Upgrades

  • Upgrade clap to 3.2 (#706)
  • Upgrade time to 0.3 (#834)
  • Upgrade sqlx to 0.6 (#834)
  • Upgrade uuid to 1.0 (#834)
  • Upgrade sea-query to 0.26 (#834)
  • Upgrade sea-schema to 0.9 (#834)

House keeping

  • Refactor stream metrics (#778)

Bug Fixes

  • [sea-orm-cli] skip checking connection string for credentials (#851)

Breaking changes

  • SelectTwoMany::one() has been dropped #813, you can get (Entity, Vec<RelatedEntity>) by first querying a single model from Entity, then use [ModelTrait::find_related] on the model.
  • Feature flag revamp

    We now adopt the weak dependency syntax in Cargo. That means the flags ["sqlx-json", "sqlx-chrono", "sqlx-decimal", "sqlx-uuid", "sqlx-time"] are not needed and now removed. Instead, with-time will enable sqlx?/time only if sqlx is already enabled. As a consequence, now the features with-json, with-chrono, with-rust_decimal, with-uuid, with-time will not be enabled as a side-effects of enabling sqlx.

New Contributors

Full Changelog: 0.8.0...0.9.0

0.8.0

09 May 16:13
Compare
Choose a tag to compare

https://www.sea-ql.org/blog/2022-05-15-whats-new-in-0.8.0/

New Features

  • [sea-orm-cli] sea migrate generate to generate a new, empty migration file #656

Enhancements

  • Add max_connections option to CLI #670
  • Derive Eq, Clone for DbErr #677
  • Add is_changed to ActiveModelTrait #683

Bug Fixes

  • Fix DerivePrimaryKey with custom primary key column name #694
  • Fix DeriveEntityModel macros override column name #695
  • Fix Insert with no value supplied using DEFAULT #589

Breaking changes

  • Migration utilities are moved from sea-schema to sea-orm repo, under a new sub-crate sea-orm-migration. sea_schema::migration::prelude should be replaced by sea_orm_migration::prelude in all migration files

Upgrades

  • Upgrade sea-query to 0.24.x, sea-schema to 0.8.x
  • Upgrade example to Actix Web 4, Actix Web 3 remains #638
  • Added Tonic gRPC example #659
  • Upgrade GraphQL example to use axum 0.5.x
  • Upgrade axum example to 0.5.x

Fixed Issues

  • Failed to insert row with only default values #420
  • Reduce database connections to 1 during codegen #511
  • Column names with single letters separated by underscores are concatenated #630
  • Update Actix Web examples #639
  • Lower function missing #672
  • is_changed on active_model #674
  • Failing find_with_related with column_name attribute #693

New Contributors

Full Changelog: 0.7.1...0.8.0

0.7.0

26 Mar 11:32
Compare
Choose a tag to compare

https://www.sea-ql.org/blog/2022-03-26-whats-new-in-0.7.0/

New Features

Enhancements

Bug Fixes

Breaking changes

  • Exclude mock from default features by @billy1624 #562
  • create_table_from_entity will no longer create index for MySQL, please use the new method create_index_from_entity

Documentations

Fixed Issues

  • orm-cli generated incorrect type for #[sea_orm(primary_key)]. Should be u64. Was i64. #295
  • how to update dynamicly from json value #346
  • Make DatabaseConnection Clone with the default features enabled #438
  • Updating mutiple fields in a Model by passing a reference #460
  • SeaORM CLI not adding serde derives to Enums #461
  • sea-orm-cli generates wrong datatype for nullable blob #490
  • Support the time crate in addition (instead of?) chrono #499
  • PaginatorTrait for SelectorRaw #500
  • sea_orm::DatabaseConnection should implement Clone by default #517
  • How do you seed data in migrations using ActiveModels? #522
  • Datetime fields are not serialized by .into_json() on queries #530
  • Update / Delete by id #552
  • #[sea_orm(indexed)] only works for MySQL #554
  • sea-orm-cli generate --with-serde does not work on Postegresql custom type #581
  • sea-orm-cli generate --expanded-format panic when postgres table contains enum type #614
  • UUID fields are not serialized by .into_json() on queries #619

New Contributors

Full Changelog: 0.6.0...0.7.0

0.6.0

06 Feb 16:58
Compare
Choose a tag to compare

https://www.sea-ql.org/blog/2022-02-07-whats-new-in-0.6.0/

New Features

Enhancements

Bug Fixes

  • CLI allow generate entity with url without password by @billy1624 in #436
  • Support up to 6-ary composite primary key by @billy1624 in #423
  • Fix FromQueryResult when Result is redefined by @tasn in #495
  • Remove r# prefix when deriving FromQueryResult by @smrtrfszm in #494

Breaking Changes

  • Name conflict of foreign key constraints when two entities have more than one foreign keys by @billy1624 in #417

Fixed Issues

  • Is it possible to have 4 values Composite Key? #352
  • Support DateTime<Utc> & DateTime<Local> #381
  • Codegen column_name proc_macro attribute if column name isn't in snake case #395
  • Model with Generics #402
  • Foreign key constraint collision when multiple keys exist between the same two tables #405
  • sea-orm-cli passwordless database user causes "No password was found in the database url" error #435
  • Testing joins with MockDatabase #447
  • Surface max_lifetime connection option #475

New Contributors

Full Changelog: 0.5.0...0.6.0

0.5.0

06 Feb 16:55
Compare
Choose a tag to compare

https://www.sea-ql.org/blog/2022-01-01-whats-new-in-0.5.0/

Fixed Issues

  • Why insert, update, etc return a ActiveModel instead of Model? #289
  • Rework ActiveValue #321
  • Some missing ActiveEnum utilities #338

Merged PRs

Breaking Changes

  • ActiveModel::insert and ActiveModel::update return Model instead of ActiveModel
  • Method ActiveModelBehavior::after_save takes Model as input instead of ActiveModel
  • Rename method sea_orm::unchanged_active_value_not_intended_for_public_use to sea_orm::Unchanged
  • Rename method ActiveValue::unset to ActiveValue::not_set
  • Rename method ActiveValue::is_unset to ActiveValue::is_not_set
  • PartialEq of ActiveValue will also check the equality of state instead of just checking the equality of value

New Contributors

Full Changelog: 0.4.2...0.5.0