Windows でPrisma の seed を実行するときに環境変数で詰まった

要点

Prisma を利用して seeding を実行した際に、node_modules 内のコードが環境変数を参照して DB へのアクセスを行っていました。

※マイグレーション時は、schema.prisma ファイル内の設定値を読んでくれる。

ローカルのシステム環境変数を汚すことになるが、一旦 PowerShell などでこのように設定することで、seeding 時にも環境変数を参照できるようになる。

$[Environment]::SetEnvironmentVariable("DATABASE_URL", "DBのURL")

よりベターな方法

今回は事情があって Windows 上で seeding を実施しましたが、基本的にはコンテナ上など隔離された環境で実行した方がきれいだと思います。(コンテナ内に必要なモジュールが入っていないなどの手間はかかりますが Dockerfile に書いておく方針で。)

(Prisma も node_modules の中で環境変数を見に行くような実装するあたりはセンスの無さを感じますが、気に入らないなら自分でプルリク出せとマサカリが飛んできそうではある。)

タイトルとURLをコピーしました