首页 > 解决方案 > 如何提供模型迁移/建表的默认值?

问题描述

class Foobar: Model {}
extension Foobar: Migration {}

当您刚刚创建一个新模型并且还想在数据库中创建一个表时,这两行可能已经足够了。

如果你想提供更多像var id: Int?Vapor 这样的原始类型的属性,知道如何处理它。

但是如果你有这样的东西怎么办......

enum FancyType: String, Codable {
    case awesome
    // ...
}

...并且您的模型期望初始化和表创建的默认值?

class Foobar: Model {
    let fancy: FancyType

    init(fancy: FancyType = .awesome) {
        self.fancy = fancy
    }
}

就我而言,它只是因致命错误而崩溃:

DecodingError:无法从无效的字符串值 0 初始化 Foobar

有了这个,我很好奇如何在创建表时实际配置默认值。

标签: swiftmigrationvapor

解决方案


推荐阅读