我有一個使用 Vapor Fluent PostgreSQL 構建的已部署后端。
現在我需要在資料庫new_field 中使用模式名稱向表中添加一個新的必需欄位鍵schema_name 。我創建了一個新的遷移:
struct AddNewFieldToSchema: Migration {
func prepare(on database: Database) -> EventLoopFuture<Void> {
database.schema("schema_name")
.field("new_field", .string, .required)
.update()
}
func revert(on database: Database) -> EventLoopFuture<Void> {
database.schema("schema_name")
.deleteField("new_field")
.update()
}
}
但是運行后,它給了我錯誤:
Fatal error: Error raised at top level: server: column "new_field" of relation "schema_name" contains null values (ATRewriteTable)
我猜這是因為存在使用沒有值的舊資料模型創建的現有資料new_field,因為如果資料庫為空,則此新遷移運行良好。
我該如何解決這個問題?謝謝。
uj5u.com熱心網友回復:
該.field函式采用可選屬性串列,您可以在其中傳遞默認值,因此對您來說
func prepare(on database: Database) -> EventLoopFuture<Void> {
database.schema("schema_name")
.field("new_field", .string, .required, .sql(.default("Your default value")))
.update()
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/364934.html
標籤:迅速 PostgreSQL的 流利 汽
上一篇:組部分存在時的組情況
下一篇:如何自動讓cmd關閉批處理檔案
