繁体   English   中英

在FluentMySQL 3上使用FluentMySQL

[英]Using FluentMySQL with vapor 3

我一直在尝试将fluent-mysql依赖项添加到我的蒸气项目中,以便从该项目中查询单独的mysql数据库。 但是我似乎总是会遇到某种错误,例如,当我尝试vapor update它永远不会完成。 (我已经将它放置了几个小时了),我也尝试了swift package update但是有同样的错误。 我现在处于vapor update可以正常工作的地步,但是我仍然遇到两个错误'mysql/udf_registration_types.h' file not found with <angled> include; use "quotes" instead 'mysql/udf_registration_types.h' file not found with <angled> include; use "quotes" instead

并且Could not build Objective-C module 'CMySQL'

我从蒸气Web模板更改的唯一东西是package.swift ,现在是这样的:

import PackageDescription

let package = Package(
    name: "iPadLocator",
    products: [
        .library(name: "App", targets: ["App"]),
        .executable(name: "Run", targets: ["Run"])
    ],
    dependencies: [
        .package(url: "https://github.com/vapor/vapor.git", .upToNextMajor(from: "2.2.0")),
        .package(url: "https://github.com/vapor/leaf-provider.git", .upToNextMajor(from: "1.1.0")),
        .package(url: "https://github.com/vapor/fluent-mysql.git", .upToNextMajor(from: "2.0.0"))

    ],
    targets: [
        .target(
            name: "App",
            dependencies: ["Vapor", "LeafProvider", "MySQLDriver"],
            exclude: ["Config", "Database", "Public", "Resources"]
        ),
        .target(name: "Run", dependencies: ["App"]),
        .testTarget(name: "AppTests", dependencies: ["App", "Testing"])
    ]
)

在此先感谢您的任何帮助。 这是我的第一个stackOverflow问题,非常抱歉。 我正在运行vapor Toolbox 3.1.7Vapor framework 2.4.4 ,同时安装了mysqlcmysql并保持最新。

您要使用Vapor 2还是Vapor 3? (忽略工具箱的版本)。 如果您想要Vapor 2,那么您所拥有的就是正确的-您只需要将依赖关系从MySQLDriver更改为MySQLProvider

如果您想使用Vapor 3,则需要将所有依赖项更改为

// swift-tools-version:4.0
import PackageDescription

let package = Package(
    name: "TILApp",
    dependencies: [
        // 💧 A server-side Swift web framework.
        .package(url: "https://github.com/vapor/vapor.git", from: "3.0.0"),
        .package(url: "https://github.com/vapor/fluent-mysql.git", from: "3.0.0"),
        .package(url: "https://github.com/vapor/leaf.git", from: "3.0.0-rc"),
    ],
    targets: [
        .target(name: "App", dependencies: ["FluentMySQL", "Vapor", "Leaf"]),
        .target(name: "Run", dependencies: ["App"]),
        .testTarget(name: "AppTests", dependencies: ["App"]),
    ]
)

出现这些错误的原因是因为Vapor 3不包含“ Droplet”,“ Resource”或“ ResourceRepresentable”类型。 好消息是您已经成功安装了蒸气3依赖项,这是一个坏消息,要使用它们,您必须使蒸气3成为项目。 好消息,蒸气3比蒸气2具有更高的性能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM