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

Isi semula lajur baharu dengan nilai daripada kod Go

王林
王林ke hadapan
2024-02-06 11:27:03915semak imbas

使用 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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Artikel sebelumnya:Pergi templat jika syaratArtikel seterusnya:Pergi templat jika syarat