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 在 数据库接口
32,681 每月下载量
用于 got-ya-id
2MB
42K SLoC
Diesel CLI
Diesel CLI 是一个帮助管理数据库模式的工具。迁移是对数据库双向更改的序列化应用。
安装
默认情况下,diesel cli 需要 openssl
、libpq
、sqlite
和 mysql
。安装这些依赖项后,您可以使用以下命令运行 cargo install diesel_cli
。
注意:确保将postgres的
bin
和lib
目录添加到您的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.sql
和 migrations/{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.sql
和 down.sql
文件,分别用于运行迁移的向上和向下。
migration run
运行所有待处理的迁移,由 diesel 的内部模式表确定。
migration revert
运行最近迁移的 down.sql
。
migration redo
运行最近迁移的 down.sql
和 up.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