Связывание моей модели Fluent с существующей таблицей базы данных - PullRequest
2 голосов
/ 07 февраля 2020

Я пытался связать свою базу данных PostgreSQL с проектом Swift Vapor, поэтому я создаю маршруты к нему. Первая таблица, к которой я хочу получить доступ, - это таблица из my_database вызовов users. Он имеет свойства user_id (первичный целочисленный ключ) и created_on (отметка времени с часовым поясом).

Я связал свой проект Vapor с my_database, чтобы я мог создавать новые модели. Однако что делать, если я хочу получить доступ к уже существующей таблице users. Вот что я собрал из документации и нескольких учебных пособий:

Моя начальная модель:

final class Users: Model {

static let name = "users"

typealias ID = Int
typealias Database = PostgreSQLDatabase

static let idKey: WritableKeyPath<Users, Int?> = \.user_id

var user_id: Int?
var created_on: Date
}

extension Users: Content { }

Моя миграция (которую я считаю просто «пустая» миграция, просто чтобы привязать проект к таблице?):

struct FirstMigration: PostgreSQLMigration {
static func prepare(on conn: PostgreSQLConnection) -> EventLoopFuture<Void> {
    return conn.future()
}

static func revert(on conn: PostgreSQLConnection) -> EventLoopFuture<Void> {
    return Future<Void>.done(on: conn)
   }
}

И моя конфигурация:

var migrations = MigrationConfig()
migrations.add(migration: FirstMigration.self, database: .psql)
services.register(migrations)

Любой руководство очень ценится!

1 Ответ

2 голосов
/ 07 февраля 2020

Вам не нужна миграция. Вам нужно либо подтвердить свою модель на Migration и добавить модель в качестве миграции, либо установить свойство stati c defaultDatabase. Тогда тебе должно быть хорошо до go.

PS - Я думаю, что вы хотите entity, а не name, чтобы сказать, как называется таблица.

...