Как предоставить значения по умолчанию при переносе модели / создании таблицы? - PullRequest
0 голосов
/ 11 октября 2018
class Foobar: Model {}
extension Foobar: Migration {}

Когда вы просто создаете новую модель и также хотите создать таблицу в базе данных, этих двух строк может быть уже достаточно.

Если вы хотите предоставить больше свойств с примитивными типами, такими как var id: Int? Vapor знают, как с этим справиться.

Но что, если у вас что-то подобное ...

enum FancyType: String, Codable {
    case awesome
    // ...
}

... и ваша модель ожидает значение по умолчанию для инициализации и таблицыcreation?

class Foobar: Model {
    let fancy: FancyType

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

В моем случае это просто сбой с фатальной ошибкой:

DecodingError: Невозможно инициализировать Foobar из недопустимого строкового значения 0

При этом мне интересно, как на самом деле настроить значения по умолчанию при создании таблицы.

...