📑

prisma で dev: sqlite、prod: postgresql な環境を作成したかったけど

2022/08/05に公開

2022/08/06 追記

https://www.prisma.io/docs/concepts/components/prisma-migrate/prisma-migrate-limitations-issues

Prisma Migrate generates SQL files that are specific to your provider. This means that you cannot use the same migration files for PostgreSQL in production and SQLite in development, because the syntax in the migrations will be incompatible.

つまり、migrationsに互換性が無いのでNGだよ。という話らしい。
それならば仕方ない。。
devローカルでもPostgresql使うしかない。

調査

過去のissueから、
https://github.com/prisma/prisma/issues/1487
▼ prisma.schema

provider = [ "sqlite", "postgresql" ]

一時的に、こんな感じの書き方ができるようになっていたらしい。

が、今は削除されている。(白目
https://github.com/prisma/prisma/issues/3834

他の方法を模索したが、

  1. sed で動的に書き換える
  2. schema.prismaを環境ごとに分ける

ぐらいしか思いつかない。

1はやりたくない。prodにdeployするたびにdiffができる?
jenkinsを間にかませるとかならまだマシか。

2が候補になるが、ここもよい策が見つかっていない。

Discussion