Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
May 15, 2022 11:36 am GMT

What's new in SeaORM 0.8.0

We are pleased to release SeaORM 0.8.0 today! Here are some feature highlights :

Migration Utilities Moved to sea-orm-migration crate

[#666] Utilities of SeaORM migration have been moved from sea-schema to sea-orm-migration crate. Users are advised to upgrade from older versions with the following steps:

  1. Bump sea-orm version to 0.8.0.
  2. Replace sea-schema dependency with sea-orm-migration in your migration crate.

    ```diff title=migration/Cargo.toml
    [dependencies]

    • sea-schema = { version = "^0.7.0", ... }
    • sea-orm-migration = { version = "^0.8.0" }```
  1. Find and replace use sea_schema::migration:: with use sea_orm_migration:: in your migration crate.

    - use sea_schema::migration::prelude::*;+ use sea_orm_migration::prelude::*;- use sea_schema::migration::*;+ use sea_orm_migration::*;

Designed by:

Contributed by:

Generating New Migration

[#656] You can create a new migration with the migrate generate subcommand. This simplifies the migration process, as new migrations no longer need to be added manually.

# A migration file `MIGRATION_DIR/src/mYYYYMMDD_HHMMSS_create_product_table.rs` will be created.# And, the migration file will be imported and included in the migrator located at `MIGRATION_DIR/src/lib.rs`.sea-orm-cli migrate generate create_product_table

Proposed & Contributed by:

Inserting One with Default

[#589] Insert a row populate with default values. Note that the target table should have default values defined for all of its columns.

let pear = fruit::ActiveModel {    ..Default::default() // all attributes are `NotSet`};// The SQL statement://   - MySQL: INSERT INTO `fruit` VALUES ()//   - SQLite: INSERT INTO "fruit" DEFAULT VALUES//   - PostgreSQL: INSERT INTO "fruit" VALUES (DEFAULT) RETURNING "id", "name", "cake_id"let pear: fruit::Model = pear.insert(db).await?;

Proposed by:

Contributed by:

Checking if an ActiveModel is changed

[#683] You can check whether any field in an ActiveModel is Set with the help of the is_changed method.

let mut fruit: fruit::ActiveModel = Default::default();assert!(!fruit.is_changed());fruit.set(fruit::Column::Name, "apple".into());assert!(fruit.is_changed());

Proposed by:

Contributed by:

Minor Improvements

  • [#670] Add max_connections option to sea-orm-cli generate entity subcommand
  • [#677] Derive Eq and Clone for DbErr

Proposed & Contributed by:

Integration Examples

SeaORM plays well with the other crates in the async ecosystem. It can be integrated easily with common RESTful frameworks and also gRPC frameworks; check out our new Tonic example to see how it works. More examples wanted!

Who's using SeaORM?

The following products are powered by SeaORM:

  • Caido: A lightweight web security auditing toolkit
  • Sensei: A Bitcoin lightning node implementation
  • Svix: The enterprise ready webhooks service

SeaORM is the foundation of StarfishQL, an experimental graph database and query engine.

For more projects, see Built with SeaORM.

Sponsor

Our GitHub Sponsor profile is up! If you feel generous, a small donation will be greatly appreciated.

A big shout out to our sponsors :

Community

SeaQL is a community driven project. We welcome you to participate, contribute and together build for Rust's future.

Here is the roadmap for SeaORM 0.9.x.


Original Link: https://dev.to/seaql/whats-new-in-seaorm-080-3cf5

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To