蒸汽2.0:当存储在SQLite的?

问题描述 投票:4回答:3

我使用的是蒸汽和内置的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的安装。

swift sqlite vapor
3个回答
2
投票

好了,我还是不明白的地方蒸汽存储数据库文件,但我发现这个解决方案:

Xcode > Product > Scheme > Edit Scheme > Options >  Use Custom Working Directory

我设置为我的项目的父目录和data.sqlite在那里出现。

不过,我仍然不知道在哪里以及在什么样的名字,他们如果连射灯找不到他们最初存储。


2
投票

一种终端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应该露出这样的位置。


0
投票

这发生在您使用Xcode中构建和运行汽项目。 Xcode使用本地临时目录中每一个应用程序是在发展阶段。使用蒸汽的CLI在终端

find

然后,所有旧的数据库将被删除,在你的主目录中创建一个新的文件.sqlite。

© www.soinside.com 2019 - 2024. All rights reserved.