play 2.1.1 を使用して新しいアプリケーションを本番環境にデプロイする過程にあり、いくつかの実際の問題があり、非常に限られたドキュメントはあまり役に立ちませんでした...
そのため、新しいバージョンに更新する時が来ました。通常の停止/アップグレード/開始スクリプトを実行しましたが、失敗しました。何らかの理由で、プレイは進化の適用を拒否していました。始めたとき、それは言い続けました
サーバーを起動できません。@ 6elnj89fh: データベースの「デフォルト」には進化が必要です!
applyEvolutions.default=true
これは、コマンド ラインと application_prod.conf ファイルの両方で設定しようとしたにもかかわらずです。また、それは不平を言った
警告!このスクリプトには、破壊的な可能性のある DOWNS の進化が含まれています
バージョンが上がっているので、ダウンは適用されるべきではないので、これはあまり意味がありません。しかし、これが進化の適用を拒否した理由だったようです.
この時点では、進化を手動で適用する方法があると思っていたので、それほど心配していませんでした。広範な検索の後、次のように見えます...プレイ1ではこれがサポートされていましたが、プレイ2ではサポートされていませんでした。開発モードでは、ブラウザのボタンを押すだけで進化を適用できますが、製品モードではNO WAY OFを見つけることができました進化を手動で適用する。これは本当ですか、それとも私はそれを見逃しましたか? これは本当に重要な機能だと思います!(後から考えると、スクリプトを手動で適用して進化プラグインを無効にすることもできましたが、そうすると便利な進化追跡が失われていたでしょう..)
また、ある時点でそれを行う必要がある時点に到達すると確信しているため、データベースを「バックアップ」する方法についても疑問に思います。これを手動で行う方法があれば、データベースをダウングレードするためのオプションのバージョン引数がおそらくあるでしょう。たとえば、バージョン 5 を使用していて 4 に戻す必要がある場合は、実行play apply-evolutions 4
してバージョン 5 からのダウンを適用し、それに応じて進化データベースを更新します。ダウンを手動で適用することもできますが、問題は、進化データベースが再び無効な状態になることです...
さらに必死になって、サーバーを再起動するために見つけたすべての設定を試し、-DapplyDownEvolutions.default=true
オプションを追加しました。この設定は、DB をダウングレードすることを選択した場合にのみダウンを適用すると想定していましたが (そのようなオプションはないようです)、実際には、アップを適用してからすぐにダウンを適用することでした (後でトラブルシューティングでこれを見つけました)。サーバーは最終的に起動しました-メッセージはまったくありません-しかし、サイトにアクセスすると不可解なエラーメッセージが表示されました)。それがこの設定の目的ですか?もしそうなら、なぜその設定が存在するのか理解できません。新しいデータベース バージョンに移行するときに、アップを適用してからすぐにダウンを適用するシナリオは考えられません。誰かがこの設定に光を当てることができますか?
この時点で、適切な「UP」を手動で再実行することで、アプリをもう一度実行することができました。
この時点で、実行される内容をより適切に制御し、元に戻すことができるようにするために、独自に進化を処理するためのスクリプトを基本的に書き直すことに取り組んでいます。誰かがこれに光を当てることができることを願っています。そうでない場合は、この暴言が同じような状況にある人を助けることができるかもしれません...