ダウンタイムなしでライブデータベースのスキーマをどのように変更しますか?
たとえば、すべてが特定のユーザーに関連付けられている、メールアドレスなどのさまざまなユーザーデータを含むテーブルを持つPostgreSQLデータベースがあるとします。電子メールアドレスを新しい専用テーブルに移動する場合は、スキーマを変更してから、電子メールデータを新しいテーブルに移行する必要があります。元のテーブルへの書き込みを停止せずにこれを行うにはどうすればよいですか?確かに、古いテーブルから新しいテーブルにデータが上書きされる間、新しいデータは引き続き古いテーブルに書き込まれ、失われますよね?
この問題はかなり頻繁に発生すると思いますが、それを処理するための標準的なソリューションが見つかりません。
この記事ではこの問題を扱いますが、手順3を本当に理解していませんでした。彼は両方のテーブルに書き込み、古いデータを最初のテーブルから新しいテーブルに移行するように言っています。古いデータのみを移行していることをどのように確認しますか?
(HerokuでPostgreSQLを使用しています。)
2
Facebook は、 MySQL用にこれを行うツールを開発しました。
—
ニックチャマス
K.スコットアレンは、ここでスキーマバージョンを管理するシステムについて書いています。バージョン対応のスキーマ展開用のオープンソースツールであるDbUpdaterを作成しました。もっとここに- http://www.tewari.info/dbupdater
—
灰
@NickChammasそれを共有してくれてありがとう。質問がたくさんあります。より詳細なチュートリアル、できればビデオで、ビットログ、非クラスター化インデックスなどについて説明し、次のような質問に答えてください。テーブルを直接。2.コピーフェーズはいつ終了しますか?これらは私が持っているほんのいくつかの質問であり、私はそれを読み始めたばかりです。
—
サンディーパンナス
@SandeepanNath-申し訳ありませんが、私はFacebookのツールにそれほど詳しくないので、他のリソースを紹介することはできません。私はそれについての発表を読んで、何年も前にコメントを投稿しましたが、私はそれを使ったことがありません。
—
ニックチャマス