Go アプリケーション コードの値を新しい列に埋め戻す最良の方法は何ですか?理想的には、各行をループし、Go コードを呼び出し、戻り値を列の値として使用します。 Go コードはステートフルです。つまり、新しい行ごとに更新されるデータ構造に作用し、この情報に基づいて値を計算します。
私がやろうと考えているのは、移行を実行し、新しい列を null 許容として追加し、移行後に Go プログラムを実行して行をバックフィルすることです。ただし、特に最初から列が NULL であってはいけないため、これらすべてを 1 回の移行で実行できればより良いでしょう。
移行には Flyway を使用します。私たちのデータベースはPostgres 11.5です。
移行を介して、つまりトランザクション内の 1 ステップでこの方法で新しい列を設定することはできません。代わりに、次のようなものが必要です:
この方法では、アプリケーションの変更が必要ですが、メンテナンス期間は必要ありません。また、移行時に制約が満たされないために移行が失敗することがなくなります。
以上が新しい列に Go コードの値を埋め戻すの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。