Skip to content

0.10.0

Compare
Choose a tag to compare
@tyt2y3 tyt2y3 released this 23 Oct 15:47

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