シリアル化されたハッシュがあるpostgresql dbにレガシーカラムがあり、これをjsonデータタイプに変換します。私は、単にマイグレーションをしてjsonに変換することはできないと確信しています。新しい列を作成し、ある列から別の列にデータをコピーし、古い列を削除して新しい列の名前を変更する最も簡単な方法を教えてください。Rails:シリアル化されたハッシュカラムをjsonカラムに変換する方法は?
0
A
答えて
1
json列はシリアル化された列のように機能しますが、json列をドロップイン置換(たとえば、ActiveAdminなどの一部の拡張機能)に使用できない場合があることに注意してください。したがって、元の列を維持し、新しい名前で新しいJSON列にデータを非破壊的にコピーすることをお勧めします。潜在的な問題を元に戻しながらデータを安全に移行できるようにします。
- 新しいJSON列を追加するには、移行を作成します。
プロセスは次のようになります。 は
- は、各レコード用に新しく作成したJSON列にすくい(おそらく
find_each
を使用して)各レコードを反復処理するタスクとコピー、既存のシリアル化された列からデータを書き込みはgitにコミットします。 gitへのコミット - コードの参照を元のシリアル化された列に置き換え、新しい列への参照を置き換えます。 好ましくは既存のデータがあるステージングサーバー上で、広範囲に
- ランテストをgitのためにコミット生産
上
あなたの整合性の確信していたら、ダウンタイムを排除するために、あなたは、あなたが最後に、ステップ3
でコードの変更を展開する前に、マイグレーションを実行して、rakeタスクを介してデータをコピーすることは明らかにしたいでしょうデータを使用すると、元のシリアル化された列を削除して、JSON列の名前を列の元の名前に変更できます。
関連する問題
- 1. PHPの配列にシリアル化されたJSONに変換
- 2. インデントされたjsonにデータをシリアル化する方法
- 3. CネストされたJsonデータを逆シリアル化する方法
- 4. これをJSONのシリアル化されたオブジェクトでPOST呼び出しに変換する方法
- 5. Railsフィルタを使用してシリアル化されたパラメータとは別にJSON文字列を解析する方法
- 6. C#DataTableのシリアル化されたインスタンスをJavaに変換する
- 7. シリアル化されたHTML時刻フィールドをjava.time.LocalTimeに変換する
- 8. JSONのシリアル化されたオブジェクトのJSONリストを逆シリアル化する
- 9. ジャクソン - シリアル化されたマップを置き換える方法
- 10. 計算されたハッシュカラムをインデックスする方法
- 11. jsonをベクター化された方法でリストに変換するR
- 12. 変換エラーのあるJSON.NETでJSONを逆シリアル化する方法
- 13. エンティティのシリアル化されたJSONに追加フィールドを追加する方法
- 14. Json VB.NETをシリアル化する方法
- 15. pandasカラム内のJSONデータを新しいカラムに変換する方法
- 16. Angular 2フォームのシリアル化をJSON形式に変換する
- 17. PHPのデータ構造をシリアル化されたXMLに変換
- 18. JSON逆シリアル化 - 文字列が自動的にIntに変換されます
- 19. シリアル化されないように設計されたクラスをシリアル化する方法は?
- 20. Finatra FeatureTests:返されたjsonを手動で逆シリアル化する方法
- 21. 事前シリアル化されたJSONハブAPIメソッドを送信する方法
- 22. Javaプログラムでprotobuf-netでシリアル化されたデータを逆シリアル化する方法
- 23. 最初にXMLから変換されたJSONを逆シリアル化する際にエラーが発生する
- 24. PHPのシリアル化された文字列をutf8に変換する簡単な方法は?
- 25. json-dateにjsonの日付時刻をシリアル化する方法
- 26. hangfireパラメータをjson(シリアル化)に変換しますか?
- 27. Json.NET:シリアル化する前に暗黙的にオブジェクトを変換する方法は?
- 28. Railsはシリアル化されたモデルレコードを取得します
- 29. JSONオブジェクトをC#で特定の深度にシリアル化または逆シリアル化する方法は?
- 30. Javascriptオブジェクトをシリアル化せずにJsonオブジェクトに変換
あなたの明確かつ考えられた答えをありがとうございます – stevo999999
問題なし、最高の幸運! –
それはあなたのために働く場合、あなたは答えを受け入れるのですか? –