我用的是蒸汽 4
struct MakeRegionOptional: AsyncMigration {
func prepare(on database: Database) async throws {
try await database.schema("Attraction")
.updateField("region", .string)
.update()
}
func revert(on database: Database) async throws {
try await database.schema("Attraction")
.field("region", .sql(.default("")))
.update()
}
}
还在配置文件更新表模型中添加迁移。
app.migrations.add(MakeRegionOptional())
// 桌子的吸引力模型
final class Attraction: Model, Content {
static let schema = "Attraction"
@ID(key: .id)
var id: UUID?
//Before
//@Field(key: "region")
//var region: String
// after make optional
@OptionalField(key: "region")
var region: String?
init() { }
init(id: UUID? = nil, region: String?) {
self.id = id
self.region = region
}
}
我正在尝试使用迁移来制作可选的区域字段。但是我的代码不起作用,也许我的迁移是错误的。任何人都知道如何进行此迁移?
update()
使您能够将列从可选更改为 .required
但不是其他方式。 .notRequired
之类的东西在这里会有用,但它不存在!
最简单的方法是使用原始 sql 查询来更改列。