Ich möchte eine Spalte zu einer Tabelle hinzufügen und dann einige Arbeiten ausführen, um die Spalte als Teil der Migration aufzufüllen. Das Auffüllen der Spalte erfordert einige Manipulationen im Code.Führen Sie das Update innerhalb der Knex-Migration aus
Betrachten Sie zwei Tabellen: Benutzer [user_id, first_name, last_name] und Bestellungen [order_id, user_id, other_field_1, other_field_2].
Und die Funktion
var getNickName = function(user_row) {
//do a bunch of javascripty stuff here
//based on user_row.first_name and user_row.last_name.
//i.e., stuff not possible in SQL
return 'nickname';
}
Ich mag eine Knex Migration, die ein 'user_nick_name' Feld der Orders-Tabelle erstellt. Dann wird die neue Spalte mit der Ausgabe von getNickName() aktualisiert.
Ich brauche dies in einer Transaktion zu sein.
Ich weiß, ich muss die Spalte zu Bestellungen hinzufügen, dann wählen Sie alle Aufträge, durchlaufen über die Aufträge durchführen: übergeben Sie die Benutzerzeile in getNickName, verwenden Sie das, um Update in der Tabelle users aufrufen den Wert.
Ich kann einfach nicht die Knex-Syntax für all dies zu bekommen, wenn eine Transaktion beteiligt ist.