Open1
Rust:Diesel
概要
- RustのORMライブラリ
- 概要はこちら
- 主な特徴
- 型安全なクエリ: Rustの型システムを利用して、SQLクエリを型安全に記述することができる。これにより、クエリの間違いをコンパイル時に検出でき、実行時のエラーを減少させます。
- マイグレーション: データベーススキーマの管理を簡素化するために、マイグレーション機能を提供します。これにより、スキーマの変更を追跡し、バージョン管理が可能になる。
- サポートされるデータベース: PostgreSQL、MySQL、SQLite
- 柔軟性: Dieselは、ORMとしての使用だけでなく、SQLクエリを直接記述することも可能であり、柔軟な使用が可能。
環境
Rust | 1.72.1 |
---|---|
cargo | 1.72.1 |
Diesel | 1.4.1 |
DieselCLI | 1.4.1 |
利用フロー
- 今回は、PostgreSQLを利用するので、PostgreSQLを導入済みとする。
-
DieselCLIをインストールする
cargo install diesel_cli@1.4.1 --no-default-features --features postgres
-
—no-default-features —features postgresは、PostgreSQLのみを使用する際に設定するオプション
オプションを設定していないと、対応しているDBを全て取得する。
-
-
データベースのURLを環境変数に設定する。
export DATABASE_URL=postgres://[ユーザ名]:[パスワード]@localhost/[DB名]
-
RustでDieselを利用するための初期設定を行い、プロジェクトのために必要なデータベーススキーマと設定ファイルを作成する。
diesel setup
-
マイグレーションファイルを作成する。
diesel migration generate create_coffees
実行すると、migrations/yyyy-MM-dd-hhmmss_create_coffeesフォルダが作成され、中に下記ファイルが作成される
- up.sql
- データベーススキーマを進めるためのSQLを記述する
- down.sql
- up.sqlで行った変更を取り消すためのSQLを記述する
- up.sql
-
migrations/yyyy-MM-dd-hhmmss_create_coffees/up.sqlにテーブル作成のSQLを記述する
CREATE TABLE coffes( id BIGSERIAL PRIMARY KEY, name VARCHAR NOT NULL, place VARCHAR NOT NULL )
-
migrations/yyyy-MM-dd-hhmmss_create_coffees/down.sqlに、rollbackするSQLを記述する
DROP TABLE coffes;
- ロールバックをする際は、
diesel migration revert
コマンドを入力する。
- ロールバックをする際は、
-
マイグレーションを実行する
diesel migration run