41 个版本 (17 个稳定版)

2.2.3 2024 年 8 月 23 日
2.2.1 2024 年 6 月 13 日
2.2.0 2024 年 5 月 31 日
2.1.1 2023 年 8 月 25 日
0.5.3 2016 年 3 月 13 日

884数据库接口

Download history 7683/week @ 2024-05-03 9314/week @ 2024-05-10 8154/week @ 2024-05-17 8781/week @ 2024-05-24 9128/week @ 2024-05-31 9046/week @ 2024-06-07 9752/week @ 2024-06-14 8744/week @ 2024-06-21 8388/week @ 2024-06-28 9501/week @ 2024-07-05 8070/week @ 2024-07-12 8073/week @ 2024-07-19 8776/week @ 2024-07-26 8582/week @ 2024-08-02 7627/week @ 2024-08-09 6277/week @ 2024-08-16

32,681 每月下载量
用于 got-ya-id

MIT/Apache 和可能 GPL-2.0

2MB
42K SLoC

Diesel CLI

Diesel CLI 是一个帮助管理数据库模式的工具。迁移是对数据库双向更改的序列化应用。

安装

默认情况下,diesel cli 需要 openssllibpqsqlitemysql。安装这些依赖项后,您可以使用以下命令运行 cargo install diesel_cli

注意:确保将postgres的binlib目录添加到您的PATH中

要安装不带这些依赖项的cli,请从以下命令中省略不需要的依赖项

cargo install diesel_cli --no-default-features --features "postgres sqlite mysql"

如果您使用的是一个没有简单安装sqlite(例如Windows)的系统的,您可以使用捆绑版本

cargo install diesel_cli --no-default-features --features "sqlite-bundled"

入门

cargo install diesel_cli
diesel setup --database-url='postgres://127.0.0.1/my_db'
diesel migration generate create_users_table

您会发现为您生成了一个 migrations/ 目录(由设置命令生成),并生成了两个 SQL 文件,分别是 migrations/{current_timestamp}_create_users_table/up.sqlmigrations/{current_timestamp}_create_users_table/down.sql。您应该编辑这些文件来展示如何更新您的模式,以及如何撤销更改。

-- up.sql
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    name VARCHAR NOT NULL,
    favorite_color VARCHAR
);
-- down.sql
DROP TABLE USERS;

然后,您可以通过运行 diesel migration run 来运行您的新迁移。要运行此命令,必须设置您的 DATABASE_URL,并且有几种方法可以设置它。

  • 手动将其设置为环境变量
  • 使用 dotenv 将其设置为环境变量
  • 通过添加 --database-url 标志直接传递

作为使用 CLI 运行迁移的替代方案,您可以从 build.rs 调用 diesel::migrations::run_pending_migrations

Diesel 将自动跟踪哪些迁移已被运行,确保它们不会被运行两次。

命令

diesel setup

搜索 migrations/ 目录,如果找不到,则在找到的第一个 Cargo.toml 所在的目录中创建一个。然后尝试连接到提供的 DATABASE_URL,如果无法连接,则创建指定的数据库。最后,它将创建 diesel 的内部跟踪已运行迁移的表,如果内部表之前不存在,则运行任何现有迁移。

diesel database

数据库设置

尝试连接到提供的 DATABASE_URL,如果无法连接,则创建指定的数据库。如果需要创建,则创建 diesel 的内部迁移跟踪表,并在创建内部表时运行任何待处理的迁移。

database reset

如果可能,删除您的 DATABASE_URL 中指定的数据库,然后运行 diesel database setup

diesel migration

migration generate

接受迁移名称作为参数,并将在 migrations/ 的格式为 migrations/{current_timestamp}_{migration_name} 的目录中创建迁移目录。它还将生成 up.sqldown.sql 文件,分别用于运行迁移的向上和向下。

migration run

运行所有待处理的迁移,由 diesel 的内部模式表确定。

migration revert

运行最近迁移的 down.sql

migration redo

运行最近迁移的 down.sqlup.sql

diesel print-schema

打印数据库模式的表定义。

Bash completion

Diesel 可以为其本身生成一个 bash 完成脚本

linux

$ diesel completions bash > /etc/bash_completion.d/diesel

os x (homebrew)

$ brew install bash-completion  # you may already have this installed
$ diesel completions bash > $(brew --prefix)/etc/bash_completion.d/diesel

依赖关系

~8–34MB
~582K SLoC