Heim > Artikel > Backend-Entwicklung > Füllen Sie neue Spalten mit Werten aus dem Go-Code auf
Was ist der beste Weg, eine neue Spalte mit Werten aus dem Go-Anwendungscode aufzufüllen? Im Idealfall würde ich jede Zeile durchlaufen, den Go-Code aufrufen und den Rückgabewert als Spaltenwert verwenden. Go-Code ist zustandsbehaftet. Das heißt, es wirkt auf die Datenstruktur ein, die in jeder neuen Zeile aktualisiert wird, und berechnet einen Wert basierend auf diesen Informationen.
Ich denke darüber nach, eine Migration durchzuführen, die neuen Spalten als nullfähige Spalten hinzuzufügen und dann nach der Migration ein Go-Programm auszuführen, um die Zeilen wieder aufzufüllen. Es wäre jedoch besser, wenn dies alles in einer Migration erledigt werden könnte, insbesondere da die Spalte nicht von vornherein NULL sein sollte.
Wir nutzen Flyway für die Migration. Unsere Datenbank ist Postgres 11.5.
Es ist nicht möglich, neue Spalten auf diese Weise per Migration zu füllen – also in einem Schritt innerhalb einer Transaktion. Stattdessen benötigen Sie etwas wie:
Diese Methode erfordert Änderungen an der Anwendung, erfordert jedoch kein Wartungsfenster. Es stellt außerdem sicher, dass Migrationen nicht fehlschlagen, weil Einschränkungen zum Zeitpunkt der Migration nicht erfüllt sind.
Das obige ist der detaillierte Inhalt vonFüllen Sie neue Spalten mit Werten aus dem Go-Code auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!