Rumah > pembangunan bahagian belakang > Golang > Isi semula lajur baharu dengan nilai daripada kod Go

Isi semula lajur baharu dengan nilai daripada kod Go

王林
Lepaskan: 2024-02-06 11:27:03
ke hadapan
944 orang telah melayarinya

使用 Go 代码中的值回填新列

Kandungan soalan

Apakah cara terbaik untuk mengisi semula lajur baharu dengan nilai daripada kod aplikasi Go? Sebaik-baiknya, saya akan mengulangi setiap baris, memanggil kod Go, dan menggunakan nilai pulangan sebagai nilai lajur. Kod Go adalah stateful. Iaitu, ia bertindak pada struktur data yang dikemas kini pada setiap baris baharu dan mengira nilai berdasarkan maklumat ini.

Apa yang saya fikirkan untuk lakukan ialah melakukan migrasi, menambahkan lajur baharu sebagai boleh batal, dan kemudian menjalankan program Go selepas pemindahan untuk mengisi semula baris. Tetapi adalah lebih baik jika semua ini boleh dilakukan dalam satu penghijrahan, terutamanya kerana lajur tidak sepatutnya NULL di tempat pertama.

Kami menggunakan Flyway untuk migrasi. Pangkalan data kami ialah Postgres 11.5.


Jawapan betul


Tidak mungkin mengisi lajur baharu dengan cara ini melalui penghijrahan - iaitu dilakukan dalam satu langkah dalam transaksi. Sebaliknya, anda memerlukan sesuatu seperti:

  1. Kemas kini apl untuk mengendalikan baris dengan betul dalam lajur baharu dengan nilai bertanda sebelum cap masa 123.
  2. Tambah lajur baharu dengan kekangan bukan nol dan nilai teg lalai dalam penghijrahan.
  3. Jalankan program go untuk mengemas kini nilai sentinel baris sebelum cap waktu 123 kepada nilai yang sesuai.

Kaedah ini memerlukan perubahan pada aplikasi tetapi tidak memerlukan tetingkap penyelenggaraan. Ia juga memastikan migrasi tidak gagal kerana kekangan tidak dipenuhi pada masa migrasi.

Atas ialah kandungan terperinci Isi semula lajur baharu dengan nilai daripada kod Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan