SeaORM 0.8.0의 새로운 기능

🎉 오늘 SeaORM 0.8.0 을 출시하게 되어 기쁩니다! 주요 기능 🌟은 다음과 같습니다.

Migration Utilities가 sea-orm-migration 크레이트로 이동됨



[ #666 ] SeaORM 마이그레이션 유틸리티가 sea-schema에서 sea-orm-migration 크레이트로 이동되었습니다. 사용자는 다음 단계에 따라 이전 버전에서 업그레이드하는 것이 좋습니다.
  • sea-orm 버전을 0.8.0로 범프합니다.
  • sea-schema 크레이트에서 sea-orm-migration 종속성을 migration로 바꿉니다.

    ```diff 제목=migration/Cargo.toml
    [의존성]
  • sea-schema = { 버전 = "^0.7.0", ... }
  • sea-orm-migration = { 버전 = "^0.8.0"}
    ```

  • use sea_schema::migration:: 상자에서 use sea_orm_migration::를 찾아 migration로 바꿉니다.

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


  • 에 의해 설계된:
  • Chris Tsang

  • 제공자:
  • Billy Chan

  • 새 마이그레이션 생성



    [ #656 ] migrate generate 하위 명령을 사용하여 새 마이그레이션을 생성할 수 있습니다. 새 마이그레이션을 더 이상 수동으로 추가할 필요가 없으므로 마이그레이션 프로세스가 간소화됩니다.

    # 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
    


    제안 및 제공자:
  • Viktor Bahr

  • 기본값으로 하나 삽입



    [ #589 ] 기본값으로 채워진 행을 삽입합니다. 대상 테이블에는 모든 열에 대해 정의된 기본값이 있어야 합니다.

    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?;
    


    에 의해 제안:
  • Crypto-Virus

  • 제공자:
  • Billy Chan

  • ActiveModel이 변경되었는지 확인



    [ #683 ] ActiveModel 메서드를 사용하여 Set의 필드가 is_changed인지 확인할 수 있습니다.

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


    에 의해 제안:
  • Karol Fuksiewicz

  • 제공자:
  • Kirawi

  • 사소한 개선


  • [ #670 ] max_connections 하위 명령에 sea-orm-cli generate entity 옵션 추가
  • [ #677 ] Eq에 대한 CloneDbErr 도출

  • 제안 및 제공자:
  • benluelo
  • Sebastien Guillemot

  • 통합 예



    SeaORM은 비동기 생태계의 다른 크레이트와 잘 어울립니다. 일반적인 RESTful 프레임워크 및 gRPC 프레임워크와 쉽게 통합할 수 있습니다. 작동 방식을 보려면 새로운 제품Tonic example을 확인하십시오. 더 많은 예wanted !
  • Rocket Example
  • Actix Example
  • Axum Example
  • Poem Example
  • GraphQL Example
  • jsonrpsee Example
  • Tonic Example

  • 누가 SeaORM을 사용하고 있습니까?



    다음 제품은 SeaORM으로 구동됩니다.

  • Caido : 경량 웹 보안 감사 툴킷

  • Sensei : 비트코인 ​​번개 노드 구현

  • Svix : 기업용 웹후크 서비스

  • SeaORM은 실험적인 그래프 데이터베이스 및 쿼리 엔진인 StarfishQL의 기반입니다.

    더 많은 프로젝트는 Built with SeaORM을 참조하십시오.

    스폰서



    우리GitHub Sponsor의 프로필이 올라갔습니다! 관대함을 느끼신다면 소액의 기부가 매우 감사하겠습니다.

    스폰서 여러분께 큰 박수를 보냅니다 😇:
  • Émile Fugulin
  • Zachary Vander Velden
  • Dean Sheather
  • Shane Sveller
  • Sakti Dwi Cahyono
  • 이름 없는 스폰서

  • 지역 사회



    SeaQL은 커뮤니티 주도 프로젝트입니다. Rust의 미래를 위해 참여하고, 기여하고, 함께 구축하는 것을 환영합니다.

    다음은 SeaORM 0.9.x 의 로드맵입니다.

    GSoC 2022



    Google Summer of Code 2022mentor organization로 선정되어 매우 기쁩니다. 신청은 마감되었지만 프로그램은 곧 시작됩니다! project ideas 을(를) 구현할 방법에 대한 생각이 있으시면 언제든지 토론에 참여하십시오.

    좋은 웹페이지 즐겨찾기