1

我正在尝试将一些种子数据添加到迁移中的表中。对于这个表,我不希望自动生成 id 值,但我想为每条记录手动设置它。如何才能做到这一点?我当前的代码如下所示,但是记录没有插入到数据库中,迁移运行时也没有抛出错误。

型号类:

import Foundation
import FluentPostgreSQL
import Vapor

final class PropertyType: PostgreSQLModel {
    var id: Int?
    var name: String

    init(id: Int, name: String) {
        self.id = id
        self.name = name
    }
}

extension PropertyType: Migration { }
extension PropertyType: Content { }
extension PropertyType: Parameter { }

迁移类:

import FluentPostgreSQL
import Vapor

struct AddPropertyTypes: Migration {
    typealias Database = PostgreSQLDatabase

    static func prepare(on conn: PostgreSQLConnection) -> Future<Void> {
        let propertyType1 = PropertyType(id: 1, name: "Einfamilienhaus")
        return propertyType.save(on: conn).transform(to: ())
    }

    static func revert(on conn: PostgreSQLConnection) -> Future<Void> {
        let futures = [1].map { id in
            return CodePropertyType.query(on: conn).filter(\CodePropertyType.id == id)
                .delete()
        }
        return futures.flatten(on: conn)
    }
}
4

1 回答 1

2

只需更换

propertyType.save(on: conn)

propertyType.create(on: conn)
于 2020-02-23T12:53:30.093 回答