前提
下記記事の構成で環境構築した前提で進める。
NestJS(Fastify) × TypeORM × PostgreSQL × Dockerで環境構築
手順
1. Userエンティティの実装
まずCRUD generatorでusers
リソースを追加する。
(※本記事で使用するのはuser.entity.ts
のみなので、その他に作成されたuser.controller.ts
やuser.service.ts
、DTOなどは、クラスの中身を空にするなり削除するなりして問題ない)
user.entity.ts
にて、上記のようにカラムを設定する。
2. データソースの設定
今回作成していくデータソースファイルだが環境構築で作成したsrc/database/database.module.ts
と重複する設定があるため、上記のように修正する。
- 先ほど定義した
User
Entityを指定しつつ、変数化してexportする
migrations
にマイグレーションファイルのパスを指定
データソースファイルであるsrc/database/database-source.ts
を作成し、先ほどexportしたものをこちらでも指定する。
3. マイグレーションファイルの作成
コンテナ内に入り、専用のディレクトリを作成。
上記コマンドを叩く。(--pretty
を付与し、作成されるマイグレーションファイル内のSQL文を複数行にしている)
src/database/migrations/xxxxxxxxxxxxx-CreateUser.ts
が作成され、今回追加したUser
のテーブルをCREATEするSQLが出力されていることが確認できる。
4. マイグレーションの実行
上記コマンドを叩く。
先ほど作成したマイグレーションファイルに沿ってクエリが実行された。
pgAdminを見てみると、users
テーブルが作成されカラムも定義されていることが確認できる。
123