postgresql – 在顶级引发的错误:Fluent.EntityError.noDatabas
发布时间:2020-12-13 15:53:16 所属栏目:百科 来源:网络整理
导读:我正在尝试修复我最近在运行Vapor项目时遇到的错误. 它构建良好,但当它运行时,它崩溃.这是我的日志: fatal error: Error raised at top level: Fluent.EntityError.noDatabase: file /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-800.0.58.6
我正在尝试修复我最近在运行Vapor项目时遇到的错误.
它构建良好,但当它运行时,它崩溃.这是我的日志: fatal error: Error raised at top level: Fluent.EntityError.noDatabase: file /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-800.0.58.6/src/swift/stdlib/public/core/ErrorType.swift,line 184 Current stack trace: 0 libswiftCore.dylib 0x0000000100fe7cc0 swift_reportError + 132 1 libswiftCore.dylib 0x0000000101004f50 _swift_stdlib_reportFatalErrorInFile + 112 2 libswiftCore.dylib 0x0000000100fb3370 partial apply for (_assertionFailed(StaticString,String,StaticString,UInt,flags : UInt32) -> Never).(closure #1).(closure #1).(closure #1) + 99 3 libswiftCore.dylib 0x0000000100dfb0a0 specialized specialized StaticString.withUTF8Buffer<A> ((UnsafeBufferPointer<UInt8>) -> A) -> A + 355 4 libswiftCore.dylib 0x0000000100fb32b0 partial apply for (_assertionFailed(StaticString,flags : UInt32) -> Never).(closure #1).(closure #1) + 144 5 libswiftCore.dylib 0x0000000100dfb5b0 specialized specialized String._withUnsafeBufferPointerToUTF8<A> ((UnsafeBufferPointer<UInt8>) throws -> A) throws -> A + 124 6 libswiftCore.dylib 0x0000000100f57af0 partial apply for (_assertionFailed(StaticString,flags : UInt32) -> Never).(closure #1) + 185 7 libswiftCore.dylib 0x0000000100dfb0a0 specialized specialized StaticString.withUTF8Buffer<A> ((UnsafeBufferPointer<UInt8>) -> A) -> A + 355 8 libswiftCore.dylib 0x0000000100dfae80 _assertionFailed(StaticString,flags : UInt32) -> Never + 144 9 libswiftCore.dylib 0x0000000100e1e540 swift_unexpectedError_merged + 569 10 App 0x0000000100001ef0 main + 2798 11 libdyld.dylib 0x00007fff974375ac start + 1 Program ended with exit code: 9 我正在使用VaporPostgreSQL包.这是我的Package.swift: import PackageDescription let package = Package( name: "mist",dependencies: [ .Package(url: "https://github.com/vapor/vapor.git",majorVersion: 1,minor: 2),.Package(url: "https://github.com/vapor/postgresql-provider.git",minor: 1) ],exclude: [ "Config","Database","Localization","Public","Resources","Tests",] ) 和main.swift: import Vapor import VaporPostgreSQL import Auth import HTTP let drop = Droplet() let auth = AuthMiddleware(user: User.self) try drop.addProvider(VaporPostgreSQL.Provider.self) drop.preparations.append(Post.self) drop.preparations.append(User.self) drop.preparations.append(Site.self) drop.middleware.append(auth) let admin = AdminController() var site = Site(name: "",theme: "") if let retreivedSite = try Site.all().first { site = retreivedSite } else { drop.get { req in return Response(redirect: "http://localhost:8080/login") } } drop.get { req in return try drop.view.make("Themes/VaporDark/index",[ "posts": Node(node: JSON(Post.all().makeNode())) ]) } admin.addRoutes(to: drop) drop.resource("posts",PostController()) drop.run() 我的postgres版本是9.6.1 出于某种原因,VaporPostgreSQL不会更新,我认为这可能是问题的一部分.我已经尝试过蒸汽xcode,蒸汽构造和蒸汽清洁,但我无法获得最新版本. 解决方法
我认为这个问题在这里:
if let retreivedSite = try Site.all().first { site = retreivedSite } else { drop.get { req in return Response(redirect: "http://localhost:8080/login") } } 更具体地说,Site.all()调用.在调用run()命令之前,我们不准备模型,因此,要在该点之前查找Site,需要手动准备模型. 希望这可以帮助! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |