使用 Go 應用程式程式碼中的值回填新列的最佳方法是什麼?理想情況下,我會遍歷每一行,呼叫 Go 程式碼,並使用返回值作為列值。 Go 代碼是有狀態的。也就是說,它作用於在每個新行上更新的資料結構,並根據此資訊計算一個值。
我正在考慮做的是進行一次遷移,將新列新增為可為空,然後在遷移後執行 Go 程式來回填行。但是,如果所有這些都可以在一次遷移中完成,那就更好了,特別是因為該列從一開始就應該不為 NULL。
我們使用 Flyway 進行遷移。我們的資料庫是 Postgres 11.5。
不可能透過遷移以這種方式填入新欄位-即在交易內一步完成。相反,您需要類似以下方法:
此方法需要對應用程式進行更改,但不需要維護時段。它還確保遷移不會因為遷移時不滿足約束而失敗。
以上是使用 Go 程式碼中的值回填新列的詳細內容。更多資訊請關注PHP中文網其他相關文章!