データベースとのインターフェースを提供します。
SQL を叩く関数群とデータモデルを実装しています。
command
モジュールはデータを変更する操作、query
モジュールはデータを変更しない操作を含んでいます。
nix-shell
内で次のコマンドを実行し、マイグレーションを適用します。
$ cd sos21-database
$ sqlx migrate run
sqlx
クレートを用いて、
記述した SQL がある程度妥当なものであることをコンパイル時に検証しています。
DATABASE_URL
環境変数が設定されている場合は実際にデータベースに問い合わせることで検証を行い、
そうでない場合は sqlx-data.json
に保存されている情報に基づいて検証を行います。
そのため、CI でビルドするためには sqlx-data.json
を最新の状態に保つ必要があります。
nix-shell
内で次のコマンドを実行することで sqlx-data.json
を更新することができます。
$ cd sos21-database
$ cargo sqlx prepare
詳しくは Enable building in "offline" mode with query!()
を参照してください。