我使用的是蒸汽和内置的SQLite 3驱动程序:https://github.com/vapor/sqlite
所以我改变"driver": "memory"
在fluent.json到"driver": "sqlite"
创造sqlite.json:
{
"path": "data.sqlite"
}
但是,即使我用Spotlight搜索,我不能找到一个名为data.sqlite的任何文件。我也无法使用sqlite-provider
这是流行在很多教程,我发现,因为它不是用蒸汽2兼容:无法生成Xcode项目:SWIFT包:错误:不可满足的
但尽管如此数据存储的地方:我可以重新启动我的Mac,运行蒸汽和看到所有的数据。
我看了这里很多类似的问题,但没有作者的使用蒸汽,所以这些问题的答案并没有帮助我。我需要得到这个data.sqlite文件的位置。我究竟做错了什么?
P.S我使用的Xcode 8.3.2,雨燕3.1,蒸气2.0.1。 sqlite3的安装。
好了,我还是不明白的地方蒸汽存储数据库文件,但我发现这个解决方案:
Xcode > Product > Scheme > Edit Scheme > Options > Use Custom Working Directory
我设置为我的项目的父目录和data.sqlite在那里出现。
不过,我仍然不知道在哪里以及在什么样的名字,他们如果连射灯找不到他们最初存储。
一种终端find
命令行可以用于找到“data.sqlite”(或其它已知的数据库名称)文件按Spotlight搜索没有另外可定位:
sudo find / -name "data.sqlite" -print
在汽2,SQLite是Fluent
的一部分,以便SQLiteProvider
不再需要。它使用SQLiteProvider
教程将改用FluentProvider
。
对于蒸气2默认api
模板,Fluent
是包括在内。用于汽2非默认web
模板,fluent-provider
需要被添加到Package.swift
和随后在代码被配置。
对于swift package tools-version
3.1.0
dependencies: [
…
.Package(url: "https://github.com/vapor/fluent-provider.git", majorVersion: 1),
对于swift package tools-version
4.0.0
dependencies: [
…
.package(url: "https://github.com/vapor/fluent-provider.git", .upToNextMajor(from: "1.3.0")),
我对其中的蒸汽2生成的SQLite文件,发现如下...
vapor --version
# Vapor Toolbox: 2.0.3
# Vapor Framework: 2.1.0
vapor new VaporDefaultExample
cd VaporDefaultExample/Config
nano fluent.json # edit to: "driver": "sqlite"
nano sqlite.json # create file. add { "path":"FindMeSQLite.sqlite" }
需要注意的是预期.sqlite位置在qazxsw POI文件中指定。
Config/sqlite.json
结果是:“FindMeSQLite.sqlite”在路径中找到/到/ VaporDefaultExample / FindMeSQLite.sqlite如cd ..
vapor update
vapor build
vapor run &
sudo find / -name "FindMeSQLite.sqlite" -print
指定
Config/sqlite.json
结果:“FindMeSQLite.sqlite”在# ^C quit the previous vapor run
# then create Xcode project
vapor xcode -y
# run project in Xcode
# then, repeat the find
sudo find / -name "FindMeSQLite.sqlite" -print
再次发现在path/to/VaporDefaultExample/FindMeSQLite.sqlite
规定
注意:如果.sqlite位置是您的配置不同,则Config/sqlite.json
在任的MacOS或Ubuntu应该露出这样的位置。
这发生在您使用Xcode中构建和运行汽项目。 Xcode使用本地临时目录中每一个应用程序是在发展阶段。使用蒸汽的CLI在终端
find
然后,所有旧的数据库将被删除,在你的主目录中创建一个新的文件.sqlite。