Skip to content

Latest commit

Β 

History

History
793 lines (603 loc) Β· 35.7 KB

CHANGELOG.md

File metadata and controls

793 lines (603 loc) Β· 35.7 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

0.11.0 - Pending

Enhancements

House Keeping

0.10.4 - 2022-11-24

Bug Fixes

  • Fix DeriveActiveEnum expand enum variant starts with number SeaQL#1219
  • [sea-orm-cli] Generate entity file for specified tables only SeaQL#1245
  • Support appending DbErr to MockDatabase SeaQL#1241

Enhancements

  • Filter rows with IS IN enum values expression SeaQL#1183
  • [sea-orm-cli] Generate entity with relation variant order by name of reference table SeaQL#1229

0.10.3 - 2022-11-14

Bug Fixes

  • [sea-orm-cli] Set search path when initializing Postgres connection for CLI generate entity SeaQL#1212
  • [sea-orm-cli] Generate _ prefix to enum variant starts with number SeaQL#1211
  • Fix composite key cursor pagination SeaQL#1216
    • The logic for single-column primary key was correct, but for composite keys the logic was incorrect

Enhancements

House Keeping

0.10.2 - 2022-11-06

Enhancements

  • [sea-orm-rocket] added sqlx_logging to Config SeaQL#1192
  • Collecting metrics for query_one/all SeaQL#1165
  • Use GAT to elide StreamTrait lifetime SeaQL#1161

Bug Fixes

  • corrected the error name UpdateGetPrimaryKey SeaQL#1180

Upgrades

  • Update MSRV to 1.65

0.10.1 - 2022-10-27

Enhancements

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

Bug Fixes

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

House Keeping

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

Upgrades

0.10.0 - 2022-10-23

New Features

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

Enhancements

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

Bug Fixes

Breaking changes

  • Replaced usize with u64 in PaginatorTrait SeaQL#789
  • Type signature of DbErr changed as a result of SeaQL#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>,
    }
    ...
}

// example

#[derive(Iden)]
enum TeaEnum {
    #[iden = "tea"]
    Enum,
    #[iden = "EverydayTea"]
    EverydayTea,
    #[iden = "BreakfastTea"]
    BreakfastTea,
}

// then
ColumnDef::new(active_enum_child::Column::Tea)
    .enumeration("tea", vec!["EverydayTea", "BreakfastTea"])

// now
ColumnDef::new(active_enum_child::Column::Tea)
    .enumeration(TeaEnum::Enum, [TeaEnum::EverydayTea, TeaEnum::BreakfastTea])
  • 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

Integration

Upgrades

0.9.3 - 2022-09-30

Enhancements

Bug Fixes

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

0.9.2 - 2022-08-20

Enhancements

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

House Keeping

  • Exclude chrono default features SeaQL#950
  • Set minimal rustc version to 1.60 SeaQL#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 - 2022-07-22

Enhancements

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

Bug Fixes

  • RelationDef & RelationBuilder should be Send & Sync SeaQL#898

House Keeping

0.9.0 - 2022-07-17

New Features

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

Enhancements

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

Upgrades

House Keeping

Bug Fixes

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

Breaking changes

  • SelectTwoMany::one() has been dropped SeaQL#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-effect of enabling sqlx.

sea-orm-migration 0.8.3

  • Removed async-std from dependency SeaQL#758

0.8.0 - 2022-05-10

New Features

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

Enhancements

Bug Fixes

  • Fix DerivePrimaryKey with custom primary key column name SeaQL#694
  • Fix DeriveEntityModel macros override column name SeaQL#695
  • Fix Insert with no value supplied using DEFAULT SeaQL#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 SeaQL#638
  • Added Tonic gRPC example SeaQL#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 SeaQL#420
  • Reduce database connections to 1 during codegen SeaQL#511
  • Column names with single letters separated by underscores are concatenated SeaQL#630
  • Update Actix Web examples SeaQL#639
  • Lower function missing SeaQL#672
  • is_changed on active_model SeaQL#674
  • Failing find_with_related with column_name attribute SeaQL#693

Full Changelog: https://github.com/SeaQL/sea-orm/compare/0.7.1...0.8.0

0.7.1 - 2022-03-26

  • Fix sea-orm-cli error
  • Fix sea-orm cannot build without with-json

0.7.0 - 2022-03-26

New Features

  • Update ActiveModel by JSON by @billy1624 in SeaQL#492
  • Supports time crate by @billy1624 SeaQL#602
  • Allow for creation of indexes for PostgreSQL and SQLite @nickb937 SeaQL#593
  • Added delete_by_id @ShouvikGhosh2048 SeaQL#590
  • Implement PaginatorTrait for SelectorRaw @shinbunbun SeaQL#617

Enhancements

  • Added axum graphql example by @aaronleopold in SeaQL#587
  • Add example for integrate with jsonrpsee by @hunjixin SeaQL#632
  • Codegen add serde derives to enums, if specified by @BenJeau SeaQL#463
  • Codegen Unsigned Integer by @billy1624 SeaQL#397
  • Add Send bound to QueryStream and TransactionStream by @sebpuetz SeaQL#471
  • Add Send to StreamTrait by @nappa85 SeaQL#622
  • sea as an alternative bin name to sea-orm-cli by @ZhangHanDong SeaQL#558

Bug Fixes

  • Fix codegen with Enum in expanded format by @billy1624 SeaQL#624
  • Fixing and testing into_json of various field types by @billy1624 SeaQL#539

Breaking changes

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

Documentations

  • Describe default value of ActiveValue on document by @Ken-Miura in SeaQL#556
  • community: add axum-book-management by @lz1998 in SeaQL#564
  • Add Backpack to project showcase by @JSH32 in SeaQL#567
  • Add mediarepo to showcase by @Trivernis in SeaQL#569
  • COMMUNITY: add a link to Svix to showcase by @tasn in SeaQL#537
  • Update COMMUNITY.md by @naryand in SeaQL#570
  • Update COMMUNITY.md by @BobAnkh in SeaQL#568
  • Update COMMUNITY.md by @KaniyaSimeji in SeaQL#566
  • Update COMMUNITY.md by @aaronleopold in SeaQL#565
  • Update COMMUNITY.md by @gudaoxuri in SeaQL#572
  • Update Wikijump's entry in COMMUNITY.md by @ammongit in SeaQL#573
  • Update COMMUNITY.md by @koopa1338 in SeaQL#574
  • Update COMMUNITY.md by @gengteng in SeaQL#580
  • Update COMMUNITY.md by @Yama-Tomo in SeaQL#582
  • add oura-postgres-sink to COMMUNITY.md by @rvcas in SeaQL#594
  • Add rust-example-caster-api to COMMUNITY.md by @bkonkle in SeaQL#623

Fixed Issues

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

Full Changelog: https://github.com/SeaQL/sea-orm/compare/0.6.0...0.7.0

0.6.0 - 2022-02-07

New Features

  • Migration Support by @billy1624 in SeaQL#335
  • Support DateTime<Utc> & DateTime<Local> by @billy1624 in SeaQL#489
  • Add max_lifetime connection option by @billy1624 in SeaQL#493

Enhancements

  • Model with Generics by @billy1624 in SeaQL#400
  • Add Poem example by @sunli829 in SeaQL#446
  • Codegen column_name proc_macro attribute by @billy1624 in SeaQL#433
  • Easy joins with MockDatabase #447 by @cemoktra in SeaQL#455

Bug Fixes

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

Breaking Changes

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

Fixed Issues

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

Full Changelog: https://github.com/SeaQL/sea-orm/compare/0.5.0...0.6.0

0.5.0 - 2022-01-01

Fixed Issues

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

Merged PRs

  • First metric and tracing implementation by @nappa85 in SeaQL#373
  • Update sea-orm to depends on SeaQL/sea-query#202 by @billy1624 in SeaQL#370
  • Codegen ActiveEnum & Create Enum From ActiveEnum by @billy1624 in SeaQL#348
  • Axum example: update to Axum v0.4.2 by @ttys3 in SeaQL#383
  • Fix rocket version by @Gabriel-Paulucci in SeaQL#384
  • Insert & Update Return Model by @billy1624 in SeaQL#339
  • Rework ActiveValue by @billy1624 in SeaQL#340
  • Add wrapper method ModelTrait::delete by @billy1624 in SeaQL#396
  • Add docker create script for contributors to setup databases locally by @billy1624 in SeaQL#378
  • Log with tracing-subscriber by @billy1624 in SeaQL#399
  • Codegen SQLite by @billy1624 in SeaQL#386
  • PR without clippy warnings in file changed tab by @billy1624 in SeaQL#401
  • Rename sea-strum lib back to strum by @billy1624 in SeaQL#361

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

Full Changelog: https://github.com/SeaQL/sea-orm/compare/0.4.2...0.5.0

0.4.2 - 2021-12-12

Fixed Issues

  • Delete::many() doesn't work when schema_name is defined SeaQL#362
  • find_with_related panic SeaQL#374
  • How to define the rust type of TIMESTAMP? SeaQL#344
  • Add Table on the generated Column enum SeaQL#356

Merged PRs

  • Delete::many() with TableRef by @billy1624 in SeaQL#363
  • Fix related & linked with enum columns by @billy1624 in SeaQL#376
  • Temporary Fix: Handling MySQL & SQLite timestamp columns by @billy1624 in SeaQL#379
  • Add feature to generate table Iden by @Sytten in SeaQL#360

Full Changelog: https://github.com/SeaQL/sea-orm/compare/0.4.1...0.4.2

0.4.1 - 2021-12-05

Fixed Issues

  • Is it possible to have 4 values Composite Key? SeaQL#352
  • [sea-orm-cli] Better handling of relation generations SeaQL#239

Merged PRs

  • Add TryFromU64 trait for DateTime<FixedOffset>. by @kev0960 in SeaQL#331
  • add offset and limit by @lz1998 in SeaQL#351
  • For some reason the axum_example fail to compile by @billy1624 in SeaQL#355
  • Support Up to 6 Values Composite Primary Key by @billy1624 in SeaQL#353
  • Codegen Handle Self Referencing & Multiple Relations to the Same Related Entity by @billy1624 in SeaQL#347

Full Changelog: https://github.com/SeaQL/sea-orm/compare/0.4.0...0.4.1

0.4.0 - 2021-11-19

Fixed Issues

  • Disable SQLx query logging SeaQL#290
  • Code generated by sea-orm-cli cannot pass clippy SeaQL#296
  • Should return detailed error message for connection failure SeaQL#310
  • DateTimeWithTimeZone does not implement Serialize and Deserialize SeaQL#319
  • Support returning clause to avoid database hits SeaQL#183

Merged PRs

  • chore: update to Rust 2021 Edition by @sno2 in SeaQL#273
  • Enumeration - 3 by @billy1624 in SeaQL#274
  • Enumeration - 2 by @billy1624 in SeaQL#261
  • Codegen fix clippy warnings by @billy1624 in SeaQL#303
  • Add axum example by @YoshieraHuang in SeaQL#297
  • Enumeration by @billy1624 in SeaQL#258
  • Add PaginatorTrait and CountTrait for more constraints by @YoshieraHuang in SeaQL#306
  • Continue PaginatorTrait by @billy1624 in SeaQL#307
  • Refactor Schema by @billy1624 in SeaQL#309
  • Detailed connection errors by @billy1624 in SeaQL#312
  • Suppress ouroboros missing docs warnings by @billy1624 in SeaQL#288
  • with-json feature requires chrono/serde by @billy1624 in SeaQL#320
  • Pass the argument entity.table_ref() instead of just entity. by @josh-codes in SeaQL#318
  • Unknown types could be a newtypes instead of ActiveEnum by @billy1624 in SeaQL#324
  • Returning by @billy1624 in SeaQL#292

Breaking Changes

  • Refactor paginate() & count() utilities into PaginatorTrait. You can use the paginator as usual but you might need to import PaginatorTrait manually when upgrading from the previous version.
    use futures::TryStreamExt;
    use sea_orm::{entity::*, query::*, tests_cfg::cake};
    
    let mut cake_stream = cake::Entity::find()
        .order_by_asc(cake::Column::Id)
        .paginate(db, 50)
        .into_stream();
    
    while let Some(cakes) = cake_stream.try_next().await? {
        // Do something on cakes: Vec<cake::Model>
    }
  • The helper struct Schema converting EntityTrait into different sea-query statements now has to be initialized with DbBackend.
    use sea_orm::{tests_cfg::*, DbBackend, Schema};
    use sea_orm::sea_query::TableCreateStatement;
    
    // 0.3.x
    let _: TableCreateStatement = Schema::create_table_from_entity(cake::Entity);
    
    // 0.4.x
    let schema: Schema = Schema::new(DbBackend::MySql);
    let _: TableCreateStatement = schema.create_table_from_entity(cake::Entity);
  • When performing insert or update operation on ActiveModel against PostgreSQL, RETURNING clause will be used to perform select in a single SQL statement.
    // For PostgreSQL
    cake::ActiveModel {
        name: Set("Apple Pie".to_owned()),
        ..Default::default()
    }
    .insert(&postgres_db)
    .await?;
    
    assert_eq!(
        postgres_db.into_transaction_log(),
        vec![Transaction::from_sql_and_values(
            DbBackend::Postgres,
            r#"INSERT INTO "cake" ("name") VALUES ($1) RETURNING "id", "name""#,
            vec!["Apple Pie".into()]
        )]);
    // For MySQL & SQLite
    cake::ActiveModel {
        name: Set("Apple Pie".to_owned()),
        ..Default::default()
    }
    .insert(&other_db)
    .await?;
    
    assert_eq!(
        other_db.into_transaction_log(),
        vec![
            Transaction::from_sql_and_values(
                DbBackend::MySql,
                r#"INSERT INTO `cake` (`name`) VALUES (?)"#,
                vec!["Apple Pie".into()]
            ),
            Transaction::from_sql_and_values(
                DbBackend::MySql,
                r#"SELECT `cake`.`id`, `cake`.`name` FROM `cake` WHERE `cake`.`id` = ? LIMIT ?"#,
                vec![15.into(), 1u64.into()]
            )]);

Full Changelog: https://github.com/SeaQL/sea-orm/compare/0.3.2...0.4.0

0.3.2 - 2021-11-03

Fixed Issues

  • Support for BYTEA Postgres primary keys SeaQL#286

Merged PRs

  • Documentation for sea-orm by @charleschege in SeaQL#280
  • Support Vec<u8> primary key by @billy1624 in SeaQL#287

Full Changelog: https://github.com/SeaQL/sea-orm/compare/0.3.1...0.3.2

0.3.1 - 2021-10-23

(We are changing our Changelog format from now on)

Fixed Issues

  • Align case transforms across derive macros SeaQL#262
  • Added is_null and is_not_null to ColumnTrait SeaQL#267

(The following is generated by GitHub)

Merged PRs

  • Changed manual url parsing to use Url crate by @AngelOnFira in SeaQL#253
  • Test self referencing relation by @billy1624 in SeaQL#256
  • Unify case-transform using the same crate by @billy1624 in SeaQL#264
  • CI cleaning by @AngelOnFira in SeaQL#263
  • CI install sea-orm-cli in debug mode by @billy1624 in SeaQL#265

Full Changelog: https://github.com/SeaQL/sea-orm/compare/0.3.0...0.3.1

0.3.0 - 2021-10-15

https://www.sea-ql.org/SeaORM/blog/2021-10-15-whats-new-in-0.3.0

  • Built-in Rocket support
  • ConnectOptions
let mut opt = ConnectOptions::new("protocol://username:password@host/database".to_owned());
opt.max_connections(100)
    .min_connections(5)
    .connect_timeout(Duration::from_secs(8))
    .idle_timeout(Duration::from_secs(8));
let db = Database::connect(opt).await?;
  • [#211] Throw error if none of the db rows are affected
assert_eq!(
    Update::one(cake::ActiveModel {
        name: Set("Cheese Cake".to_owned()),
        ..model.into_active_model()
    })
    .exec(&db)
    .await,
    Err(DbErr::RecordNotFound(
        "None of the database rows are affected".to_owned()
    ))
);

// update many remains the same
assert_eq!(
    Update::many(cake::Entity)
        .col_expr(cake::Column::Name, Expr::value("Cheese Cake".to_owned()))
        .filter(cake::Column::Id.eq(2))
        .exec(&db)
        .await,
    Ok(UpdateResult { rows_affected: 0 })
);
  • [#223] ActiveValue::take() & ActiveValue::into_value() without unwrap()
  • [#205] Drop Default trait bound of PrimaryKeyTrait::ValueType
  • [#222] Transaction & streaming
  • [#210] Update ActiveModelBehavior API
  • [#240] Add derive DeriveIntoActiveModel and IntoActiveValue trait
  • [#237] Introduce optional serde support for model code generation
  • [#246] Add #[automatically_derived] to all derived implementations

0.2.6 - 2021-10-09

  • [#224] [sea-orm-cli] Date & Time column type mapping
  • Escape rust keywords with r# raw identifier

0.2.5 - 2021-10-06

  • [#227] Resolve "Inserting actual none value of Option results in panic"
  • [#219] [sea-orm-cli] Add --tables option
  • [#189] Add debug_query and debug_query_stmt macro

0.2.4 - 2021-10-01

https://www.sea-ql.org/SeaORM/blog/2021-10-01-whats-new-in-0.2.4

  • [#186] [sea-orm-cli] Foreign key handling
  • [#191] [sea-orm-cli] Unique key handling
  • [#182] find_linked join with alias
  • [#202] Accept both postgres:// and postgresql://
  • [#208] Support fetching T, (T, U), (T, U, P) etc
  • [#209] Rename column name & column enum variant
  • [#207] Support chrono::NaiveDate & chrono::NaiveTime
  • Support Condition::not (from sea-query)

0.2.3 - 2021-09-22

  • [#152] DatabaseConnection impl Clone
  • [#175] Impl TryGetableMany for different types of generics
  • Codegen TimestampWithTimeZone fixup

0.2.2 - 2021-09-18

  • [#105] Compact entity format
  • [#132] Add ActiveModel insert & update
  • [#129] Add set method to UpdateMany
  • [#118] Initial lock support
  • [#167] Add FromQueryResult::find_by_statement

0.2.1 - 2021-09-04

  • Update dependencies

0.2.0 - 2021-09-03

  • [#37] Rocket example
  • [#114] log crate and env-logger
  • [#103] InsertResult to return the primary key's type
  • [#89] Represent several relations between same types by Linked
  • [#59] Transforming an Entity into TableCreateStatement

0.1.3 - 2021-08-30

  • [#108] Remove impl TryGetable for Option

0.1.2 - 2021-08-23

  • [#68] Added DateTimeWithTimeZone as supported attribute type
  • [#70] Generate arbitrary named entity
  • [#80] Custom column name
  • [#81] Support join on multiple columns
  • [#99] Implement FromStr for ColumnTrait

0.1.1 - 2021-08-08

  • Early release of SeaORM