#database-schema #couch-db #database-migrations #orm #migration #json #creation

bin+lib couchdb-orm

couchdb-orm 版权所有 (C) 2020-2023 OpenToolAdd 本程序绝对没有任何保证;这是一个自由软件,您可以按照某些条件自由重新分发它;输入 `show-license’ 查看详细信息。一个用于管理一些数据库操作(如迁移、模式创建等)的 CLI ORM。目前它只处理 CouchDB。

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

Rust 4K SLoC // 0.2% comments Shell 1K SLoC // 0.3% comments Pan 685 SLoC INI 42 SLoC // 0.6% comments

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)
  • Docker:用于测试的 couchdb 服务
  • Docker-Compose:用于测试的 couchdb 服务

Make 命令

makebuild-base-image

将构建项目所需的基本 couchdb-docker 镜像。对测试和开发很有用

makestart-couchdb

使用 docker-compose.yml 启动 couchdb 实例

maketest

使用 cargo 启动测试。目前它是单线程的,因为每次测试都需要清理测试文件夹以测试文件系统交互。

makecoverage

使用 Tarpaulincoverage 目录中生成 HTML 覆盖率

makeinstall

将包安装为 CLI 工具,以便与 couchdb-orm 一起在命令行中使用

测试

文档

许可证

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