3

複数のテーブルと複雑なリレーションシップを持つ MySQL データベースを構築しましたが、vapor のドキュメントを参照すると、具体的にはモデルの構築段階で、テーブルを作成する方法があります (モデル クラスが対話します)。

static func prepare(_ database: Database) throws {
    try database.create("users") { users in
        users.id()
        users.string("name")
    }
}

ただし、既に持っているテーブルには DATETIME のような外部キーと型が含まれているため、使用したくありません (Swift コンテキスト内で宣言する方法がわかりません)。既に構築されたテーブルをリンクする方法はありますか?蒸気で?

4

2 に答える 2

1

これは、Vapor (より正確には、Vapor のデータベース レベルである Fluent) が少し制限されている場所です。

はい、既存のテーブルを使用できます。prepare(_:)メソッドでは、テーブルをまったく作成せずに実装を空のままにしておくことができます。revert(_:)また、空のままにしておく必要があります。

init(node:in:)イニシャライザとmakeNode(context:)メソッドでは、テーブルの列名と型と Swift モデルのプロパティ型をマッピングする必要があります。

于 2017-01-06T23:11:33.300 に答える