# paste-orm-rust **Repository Path**: pastecode/paste-orm-rust ## Basic Information - **Project Name**: paste-orm-rust - **Description**: 为了开发一个类似.NET的Migration的体验,这个项目是基于sea-orm开发而来 思路就是完全的ORM 目标是参考PasteForm框架功能! 做敏捷开发天花板的ORM框架! - **Primary Language**: Rust - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-31 - **Last Updated**: 2025-08-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 前言 为什么搞这个项目呢 源于一个话题,RUST开发WEB到底咋样 看了好多人说多牛叉,各种ORM等等 结果我花了近半天体验了一下 ## 就这??? 搞过ORM的都应该知道,侧重点是CodeFirst对吧 你能想象RUST的迁移是自己写迁移代码的??? 不是自动生成的??? 那我要你干嘛呢,直接自己写数据库不是更爽??? 再看看.NET的Migration,你可能一年都没开几次数据库了! ## 所以思路 所以就想参考.NET的写一个Migration 不能单单Migration吧,所以选型就是SeaOrm了! ### 1.用过程宏生成元数据 使用过程宏的特性,生成对应Entity的数据,或者说解析Model的数据 比如MaxLength,数据类型,有啥特性等 ### 2.使用build.rs生成迁移rs文件 了解过程宏的都知道,这个过程宏有点埋头自己干活的意思 所以要加这么一个build.rs来统一干活 包括版本,增量等 ### 3.多crate模式 由于build.rs在过程宏前面执行,当多个crate之后, 这个顺序可能就变了,这里说得不是同一个crate 最终顺序就是先执行过程宏,后执行build.rs 然后是整个项目的build了! ### 4.最终回归 最终的逻辑代码就是sea-orm的流程了,和这个工具无关 ## 待完成 1.解析Model(Entity)为数据库类型的说明数据,比如字段,主键,类型,限定等 2.版本限定,版本差量 3.版本回滚等