无法将 SQLite 集成到 Vapor 项目中

Failed to integrate SQLite in Vapor project

我正在尝试将 SQLite 集成到 Vapor 项目中。我在 Package.swift 文件中添加了 Sqlite Provider 的包,如下所示:

.Package(url: "https://github.com/vapor/sqlite-provider.git", majorVersion: 1, minor: 1)

并在 config 目录下创建了一个 sqlite.json 文件,其中包含

{
    "path": "database_name.sqlite"
}

之后,我运行vapor clean && vapor xcode将sqlite集成到项目中。一切正常,除了现在项目显示两个 Swift 编译器错误:

Header '/usr/local/opt/sqlite/include/sqlite3.h' not found

Could not build Objective-C module 'CSQliteMac'

你能帮忙解决这个问题吗?

以下是您可能想要执行的操作:

1: 首先检查 /usr/local/opt/sqlite 文件夹和该文件夹内的 includes 子文件夹是否存在。

2:如果/usr/local/opt/sqlite文件夹不存在,您可能需要安装SQLite。最简单的方法是通过 Homebrew - 如果你安装了它。只需 运行 来自终端的以下命令:

brew install sqlite

3:如果您没有 Homebrew,则必须决定是要安装 Homebrew 还是要尝试手动安装 SQLite 源。

希望这对您有所帮助:)

感谢 @Fahimsqlite3.h 没有出现在

/usr/local/opt/sqlite/include/sqlite3.h

就我而言,正确的位置是 /usr/local/Cellar/sqlite/3.17.0/include/sqlite3.h

只需 运行 在终端中输入以下命令:

brew install sqlite

如果您以前安装过,它将安装或更新。在完成的最后,你会看到 Summary 类似的东西:

==> Summary
/usr/local/Cellar/sqlite/3.17.0: 11 files, 2.9MB

给出 sqlite 位置,/usr/local/Cellar/sqlite/3.17.0

现在单击第一条错误消息,它将带您到 module.modulemap 文件。替换位置并构建。它将构建成功。

很明显是mysql安装问题,按照下面的步骤运行 mysql vapor app.

  1. 先卸载安装mysql.
  2. here 或 运行 下面的命令

    安装 brew
    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
  3. 运行 下面的命令安装 mysql

    brew install mysql
    
  4. 运行 下面的链接命令

    brew link mysql
    
  5. 运行 下面的命令启动 mysql 服务器

    mysql.sever start 
    
  6. 运行 下面是 root 用户的命令

    mysql -uroot
    
  7. 然后运行下面的命令设置ROOT用户密码

    SET PASSWORD = PASSWORD(‘admin’);
    
  8. 在 运行 你的项目之前创建数据库,使用下面的命令

    create database your_database_name_goes_here;
    
  9. 然后运行你的项目,毫无疑问在这之后你的项目将运行.

Note1:- Don't forget to add mysql.json in you project as described here.

.

Note2:- Also don't forget to add provider and prepare database table using model class as below.

 try drop.addProvider(VaporMySQL.Provider.self)
 drop.preparations = [ModelClass.self]

我在Github here上创建了一个演示项目,你可以试试。