Swift 如何在模型迁移/表创建时提供默认值?

Swift 如何在模型迁移/表创建时提供默认值?,swift,migration,vapor,Swift,Migration,Vapor,当您刚刚创建一个新模型,并且还想在数据库中创建一个表时,这两行可能已经足够了 如果您想为诸如varid:Int?Vapor之类的基本类型提供更多属性,您应该知道如何处理它 但是如果你有这样的东西 class Foobar: Model {} extension Foobar: Migration {} 。。。您的模型需要初始化和表创建的默认值吗 enum FancyType: String, Codable { case awesome // ... } 在我的例子中,它只是

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

如果您想为诸如
varid:Int?
Vapor之类的基本类型提供更多属性,您应该知道如何处理它

但是如果你有这样的东西

class Foobar: Model {}
extension Foobar: Migration {}
。。。您的模型需要初始化和表创建的默认值吗

enum FancyType: String, Codable {
    case awesome
    // ...
}
在我的例子中,它只是崩溃了,出现了一个致命的错误:

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


因此,我很好奇如何在创建表时实际配置默认值。

您的
案例中初始化
FancyType
实例的代码是什么?另外(但可能与您当前的问题无关)不应该
Foobar
符合
迁移
class Foobar: Model {
    let fancy: FancyType

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