蒸气数据库 无效的 SQL 关系不存在 Fluent 尝试从错误的数据库名称中进行选择



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

try BlogDetails.all()

我总是收到错误"invalidSQL("错误关系\"blogdetailss\"不存在",以两个 S 结尾,这对我来说毫无意义,有谁知道我可能做错了什么,我已经尝试了 dropdb 并再次创建并恢复和准备:(这是我的主要.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 }

覆盖类中此值的默认值。

即代替

fileprivate static let entityName = "blogdetails"

fileprivate static let entity = "blogdetails"

最新更新