ローカル環境からマイグレーションをデプロイする
ローカル環境から本番環境へ直接マイグレーションをデプロイすることを検討する可能性のある2つのシナリオがあります。
- ローカルCI/CDパイプラインがある場合
- ベースライン設定を本番環境で行う場合
このページでは、その方法のいくつかの例と、一般的に推奨しない理由について説明します。
ローカルCI/CDパイプライン
自動化されたCI/CDプロセスがない場合、技術的には、ローカル環境から本番環境に新しいマイグレーションを以下の方法でデプロイできます。
- マイグレーション履歴が最新であることを確認してください。これは、
prisma migrate dev
を実行することで行えます。これにより、最新の変更からマイグレーション履歴が生成されます。 - ローカル接続URLを本番環境接続URLに置き換えます
.env
//delete-next-line
DATABASE_URL="postgresql://johndoe:randompassword@localhost:5432/my_local_database"
//add-next-line
DATABASE_URL="postgresql://johndoe:randompassword@localhost:5432/my_production_database"
prisma migrate deploy
を実行します
⛔
以下の理由により、この解決策を強く推奨しません。
- 本番環境データベース接続URLをバージョン管理に公開するリスクがあります。
- 誤って本番環境接続URLを代わりに使用し、結果として本番環境データベースを上書きまたは削除する可能性があります。
✅ 自動化されたCI/CDパイプラインのセットアップを推奨します。
パイプラインは、ステージング環境および本番環境へのデプロイを処理し、パイプラインステップでmigrate deploy
を使用する必要があります。例については、デプロイメントガイドを参照してください。
本番環境データベースのベースライン設定
Prisma Migrateを既存のデータベースに追加する場合、本番環境データベースをベースライン設定する必要があります。ベースライン設定は1回実行され、ローカルインスタンスから実行できます。