7 个版本
0.1.6 | 2022 年 9 月 25 日 |
---|---|
0.1.5 | 2022 年 8 月 28 日 |
0.1.4 | 2021 年 2 月 11 日 |
0.1.3 | 2021 年 1 月 16 日 |
0.1.2 | 2020 年 12 月 28 日 |
#2125 在 数据库接口 中
285KB
5.5K SLoC
CouchDB ORM
使用 Actix 运行时和 Web 客户端在 Rust 中构建的 CouchDB ORM。
@TODO
- 网络
- 向请求添加分块以防止内存溢出
- 播种
- 从 JSON 添加播种能力?
- 从 Rust 模型添加播种能力
- 完成
clients/couchdb/actions/db/migrate
中的 migrate_db 任务- 实际上执行迁移
- 分页和限制(如果数据库很大,不要将所有内容存储在内存中,否则会崩溃)
- 与数据库模式检查模式条目
- 清理数据库
- 安全
- 通过模型管理
- 备份
- 与种子关联的 JSON
- 恢复
- 将备份链接到播种文件
- 视图
- 通过模型查看视图
- 通过模型设计文档
- 测试文件和文件夹结构的创建
- 实用工具
- 注册模式
- 迁移
- 播种
- 备份
- 恢复
- 测试客户端操作
- 更好地分离 couchdb-orm 的库和 bin
- 集成用例测试
命令
在 couchdb 实例上执行每个数据库操作都需要一些身份验证。
CLI 将在执行文件夹的根目录中搜索.env
文件。
如果不存在,它将依赖于环境变量。
如果没有变量,它将在执行任何操作之前崩溃。
将根目录中的.env.tpl
文件复制到以获得一个工作的基础,并根据需要配置 couchdb 实例。
couchdb-orm db
在特定数据库上启动操作。有关可用操作,请参阅 --帮助
couchdb-orm db create<db-names>
根据名称(以逗号分隔)创建 X 个数据库
couchdb-orm db delete<db-names>
根据名称(以逗号分隔)删除 X 个数据库
couchdb-orm db migrate
在给定的表上执行迁移。某些迁移必须注册。交互:Space
选择,Enter
验证
couchdb-orm register
在系统中注册某些内容。查看 --help
了解可用的操作
couchdb-orm register schema<路径> <db-名称>
注册一个模式和版本。 <path>
是包含模型及其所有依赖项的文件的路径。 <db-name>
是应注册模式的数据库。
couchdb-orm register migration<db-名称>
根据 2 个可用的模式注册迁移。 <db-name>
是应注册迁移的数据库。交互:Space
选择,Enter
验证
Dev
依赖
- Rust >= 1.50
- 目前,需要构建 Rust Nightly 以支持功能
#![功能(proc_macro_span)
- 目前,需要构建 Rust Nightly 以支持功能
- Docker:用于测试的
couchdb
服务 - Docker-Compose:用于测试的
couchdb
服务
Make 命令
makebuild-base-image
将构建项目所需的基本 couchdb-docker
镜像。对测试和开发很有用
makestart-couchdb
使用 docker-compose.yml
启动 couchdb 实例
maketest
使用 cargo 启动测试。目前它是单线程的,因为每次测试都需要清理测试文件夹以测试文件系统交互。
makecoverage
使用 Tarpaulin 在 coverage
目录中生成 HTML 覆盖率
makeinstall
将包安装为 CLI 工具,以便与 couchdb-orm
一起在命令行中使用
链接
- awc:HTTP 客户端
- serde:序列化和反序列化
- serde_json:序列化和反序列化 JSON 类型
- actix-rt:异步代码的 Actix 运行时
- thiserror:错误派生
- paw:用于格式化和颜色的 CLI 工具
- structopt:CLI 参数解析工具
- dialoguer:CLI 交互库
- console:CLI 终端写入库
- indicatif:CLI 进度构造库
- chrono:时间库
测试
文档
- Actix
- CLI 参数
许可证
Copyright (C) 2020-2023 OpenToolAdd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
contact: [email protected]
依赖
~24–35MB
~616K SLoC