#sqlx #run-time #ddl #dialect #dynamic #user #barrel

latitude

基于 sqlxbarrel 的动态运行时DDL

4个版本

0.0.4 2020年11月25日
0.0.3 2020年11月23日
0.0.2 2020年11月23日
0.0.1 2020年11月10日

#2687数据库接口

MIT/Apache

17KB
169

latitude

Latitude是一个基于 sqlxbarrel 的动态运行时DDL库。**注意**:该项目与 sqlx 一起处于早期开发阶段。请在自行承担风险的情况下使用,并强烈考虑使用经过更好测试和完善的库,如 Refinery。在不久的将来,API肯定会发生变化。

最初,这个项目打算成为一个迁移工具包,但现在已经简化了。不清楚我们是否会继续开发面向迁移的API。添加迁移功能将是一个功能添加,而不是重写。

随着迁移功能的加入,这个库可以被视为比 sqlx-cli 更便携但更少可访问的替代品:用户不需要过多关注理解和维护多种SQL方言,但必须熟悉Rust才能开始使用。如果你的应用程序已经是用Rust编写的,并且

  • 你希望多个数据库之间具有迁移兼容性(例如,如果你在生产中使用MySQL,在开发中使用SQLite);或者

  • 你喜欢在DSL上而不是在纯SQL上编写

请向GitHub提交问题,如果有建议、反馈、错误报告或其他内容。

入门

latitude = 0.0.1

用法

use latitude::prelude::*;

let connection = Connection::new("sqlite::memory:").await?;

db::create().execute(&connection).await?;

let date_updated = date().nullable(true);

table::create("users")
      .column("name", varchar(255))
      .column("age",  integer())
      .column("date_updated", date_updated)
      .execute(&mut connection)
      .await?

db::drop().execute(&connection).await?;

许可:MIT OR Apache-2.0

依赖项

~59MB
~1M SLoC