CRUD 操作を行うためのかなり単純な Django ベースの Web サイトがあります。私はローカルでテストと開発を行っており、テストが完了したら、リリースとデータベース スキーマの変更をライブ サーバーにチェックアウトしています。最近、いくつかの種類の変更をリリースする際に問題が発生しました。次の一連のイベントを想像してください。
- ユーザーが Web フォームを開く
- サイトが更新され、このフォームに新しいフィールドが必要になりました
- ユーザーが作業中のフォームを送信する
- 手順 2 で追加された新しいフィールドを受信することを期待しているため、サーバーはエラーを返します。
他のサイトはこの種の問題にどのように対処していますか? 私のアイデア:
- 更新が行われている間、サイトをオフラインにします。これは実際には問題の解決にはなりません。ユーザーは Web フォームを送信する前に無限に開いたままにしておくことができますが、一定の時間が経過すると、誰もフォームを送信する可能性が低くなるからです。
- トラフィックが非常に少ない時間帯に自動更新を行います。これでも問題は解決しませんが、私たちのサイトはそれほど人気がなく、午前 3 時に更新を行った場合、多くのユーザーがいるとは思えません。この手法に関する懸念の 1 つは、失敗する自動更新です。
- サーバーが古いフォームが送信されていることを認識し、よりユーザーフレンドリーな応答を提供するように、フォームをバージョン管理します。これに役立つ自動化ツールはありますか?
考え?