我正在为我的新项目使用Vapor 3
andFluentMySQL
并希望varchar(N)
通过迁移更改字段的最大长度 ( )。我怎样才能做到这一点?
我的项目中有一个模型Word
,它的一个字段是sourceIdentifier
最大String
长度为 12。模型是这样的:
final class Word: MySQLModel {
...other properties
var sourceIdentifier: String
...other properties
}
一开始,我认为 5 对领域来说就足够了,并使用这段代码Table
为这个模型创建:
static func prepare(on conn: MySQLConnection) -> Future<Void> {
return MySQLDatabase.create(Word.self, on: conn) { builder in
...other fields...
builder.field(for: \.sourceIdentifier, type: .varchar(5, characterSet: nil, collate: nil))
...other fields...
}
}
如上所示,使用字段创建的表sourceIdentifier
及其类型为.varchar(5, characterSet: nil, collate: nil)
.
现在我想通过迁移增加字段的最大长度。
我也试过MySQLDatabase.update
这样:
static func prepare(on conn: MySQLConnection) -> Future<Void> {
return MySQLDatabase.update(Word.self, on: conn) { builder in
builder.field(for: \.sourceIdentifier, type: .varchar(12, characterSet: nil, collate: nil))
}
}
它没有用;没啥事儿。
如何通过Vapor
,FluentMySQL
和迁移更改表的结构?