Vapor 数据库无效 SQL 关系不存在 Fluent 尝试从错误的数据库名称 SELECT

Vapor db Invalid SQL relation doesn't exist Fluent tries to SELECT from wrong db name

当我在准备后查看我的 PostreSQL 服务器时,我看到了与名称 "blogdetails" 的关系,但是当我尝试执行

try BlogDetails.all()

I always get the error "invalidSQL("Error relation \"blogdetailss\" does not exist" 这种拼写方式以两个 Ss 结尾,这对我来说毫无意义,有谁知道我可能做错了什么,我再次尝试了 dropdb 和 createdb 并恢复和准备:( 这是来自我的 main.swift

try? drop.addProvider(VaporPostgreSQL.Provider.self)
drop.preparations = [BlogComment.self, BlogDetails.self]

do {
    try drop.database?.prepare([BlogComment.self, BlogDetails.self])
    print("Database prepared")
} catch {
     print("Prepare failed: \(error.localizedDescription)")
}

这是我的模型

struct BlogDetails: Model {

var id: Node?
var exists: Bool = false

let title: String
let author: String
let brief: String
let dateString: String

fileprivate static let entityName = "blogdetails"

init(id: Node? = nil, title: String, author: String, brief: String, dateString: String) {
    self.id = id
    self.title = title
    self.author = author
    self.brief = brief
    self.dateString = dateString
}

init(node: Node, in context: Context) throws {
    self.id = try node.extract(Keys.id)
    self.title = try node.extract(Keys.title)
    self.author = try node.extract(Keys.author)
    self.brief = try node.extract(Keys.brief)
    self.dateString = try node.extract(Keys.dateString)
}

func makeNode(context: Context) throws -> Node {
    return try Node(node: [
        Keys.id: id,
        Keys.title: title,
        Keys.author: author,
        Keys.brief: brief,
        Keys.dateString: dateString
    ])
}
}

extension BlogDetails: Preparation {
    static func prepare(_ database: Database) throws {
        try database.create(BlogDetails.entityName) {  in
            .id()
            .string(Keys.title)
            .string(Keys.author)
            .string(Keys.brief)
            .string(Keys.dateString)
        }
    }

    static func revert(_ database: Database) throws {
        try database.delete(BlogDetails.entityName)
    }
}

extension BlogDetails {
    struct Keys {
        static let id = "id"
        static let title = "title"
        static let author = "author"
        static let brief = "brief"
        static let dateString = "date_string"
    }
}

查询的实体名称取自static var entity: String { get }

覆盖 class 中的默认值。

即而不是

fileprivate static let entityName = "blogdetails"

使用

fileprivate static let entity = "blogdetails"