Open3
Prisma migrateをプロダクションでどう使うか
現状
localの場合はchema.prismaファイルを編集して、prisma migrate dev
を実行すると、自動で差分を検知し、SQLのmigrationファイルを作ってくれる、もう一回 prisma migrate dev
を実行すると、差分のmigrationが実行され、DBのschemaが変わるような流れ。
CICDでは prisma migrate deploy
を実行して、DBのschemaをコミットしている。
問題
テーブルのカラム名変更や、カラムを別のテーブルに移行したいときに、prisma migrate dev
を実行すると、既にDBに入っているデーターがリセットされてしまう。
prisma migrate deployの挙動
疑問
- そもそも本番のDBには
_prisma_migrations
のテーブルが作成されるのか?- どうやら作られる模様
- データーを強制破壊されるか?
- 注意もされずに強制破壊された
- テーブルのデーター移行はどうしたらいいだろう?
- ローカルでscriptを書いてSQLを生成する -> migrationのSQLを編集する ->
migrate deploy
を実行する
- ローカルでscriptを書いてSQLを生成する -> migrationのSQLを編集する ->
- migrate deployが失敗した場合どうなるのか
-
migrate resolve
で直す? -
_prisma_migrations
から該当のmigrationを見つけて、レコードを削除する、SQLを直してもう一回実行する
-
- 失敗した場合にmigrate resolveはどうやるのか
- migrationをTypescriptで書きたいときはどうすればいいだろう?
-
db execute
コマンドでどうにかする?
-