无法将 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 源。
希望这对您有所帮助:)
感谢 @Fahim,sqlite3.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.
- 先卸载安装mysql.
从 here 或 运行 下面的命令
安装 brew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
运行 下面的命令安装 mysql
brew install mysql
运行 下面的链接命令
brew link mysql
运行 下面的命令启动 mysql 服务器
mysql.sever start
运行 下面是 root 用户的命令
mysql -uroot
然后运行下面的命令设置ROOT用户密码
SET PASSWORD = PASSWORD(‘admin’);
在 运行 你的项目之前创建数据库,使用下面的命令
create database your_database_name_goes_here;
然后运行你的项目,毫无疑问在这之后你的项目将运行.
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上创建了一个演示项目,你可以试试。
我正在尝试将 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 源。
希望这对您有所帮助:)
感谢 @Fahim,sqlite3.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.
- 先卸载安装mysql.
从 here 或 运行 下面的命令
安装 brew/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
运行 下面的命令安装 mysql
brew install mysql
运行 下面的链接命令
brew link mysql
运行 下面的命令启动 mysql 服务器
mysql.sever start
运行 下面是 root 用户的命令
mysql -uroot
然后运行下面的命令设置ROOT用户密码
SET PASSWORD = PASSWORD(‘admin’);
在 运行 你的项目之前创建数据库,使用下面的命令
create database your_database_name_goes_here;
然后运行你的项目,毫无疑问在这之后你的项目将运行.
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上创建了一个演示项目,你可以试试。