時々再インポートが必要なエントリがかなりあるテーブルがいくつかあります。唯一のいくつかのテーブルは懸念しているので、我々はrestore
を使用していないが、このようなコマンド:Heroku Postgresで新しいテーブルをインポート中にダウンタイムを制限する
heroku pg:psql --app ourapp HEROKU_POSTGRESQL_WHITE < data.sql
これは主に、(約1GB)データのアップロードに、およそ30分かかります。
これまでは、新しいデータをインポートするためにアプリをメンテナンスモードにしましたが、今後は長いダウンタイムを避けたいと考えています。
ヘロクでこれを達成するにはどうすればよいでしょうか?
ダウンタイムを短縮するための最初の考えは、アップロード速度がはるかに向上するサーバーからコマンドを実行する方法を見つけることでしたが、まだ完全ではありません。
私たちはフォロワーを使用すると考えていましたが、ユーザーがアプリケーションとやりとりしているときに書かれている必要があるテーブルがあります。マスターの場合でもフォロワーにフォールバックするように指示できるかどうかはわかりません問題はありません。
新しいデータをアップロードしてからそのキャッシュをクリアしている間に、関連するすべてのテーブルを完全にキャッシュすることも考えましたが、Herokuはそれを達成するためにキャッシュを十分に制御していないようです。
このソリューションを選択すると、テーブルに適用する必要がある新しいデータ(メンテナンス期間中に追加された)を意味する「差分」問題があることに気づくでしょう。 –
なぜか分かりません我々はこれを考えなかった、それはおそらく、それを行うための最も簡単な方法です、ありがとう。 @GuyDubrovski私たちの場合再インポートされるテーブルは静的であるため、diffの問題はありません – Jukurrpa