新しいプロジェクトに とを使用してVapor 3
おり、移行によってFluentMySQL
フィールド ( ) の最大長を変更したいと考えていvarchar(N)
ます。これどうやってするの?
私は自分のプロジェクトで名前が付けられたモデルを持っており、Word
そのフィールドの 1 つはそれで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
および移行を介してテーブルの構造を変更するにはどうすればよいですか?