2017-05-24 8 views
3

私が気を使っていると、内蔵のSQLite 3ドライバ:https://github.com/vapor/sqlite蒸気2.0:SQLiteはどこに保存されていますか?

だから私はfluent.json"driver": "sqlite""driver": "memory"を変更し、sqlite.json作成:

{ 
    "path": "data.sqlite" 
} 

しかし、たとえをSpotlight検索を使用すると、data.sqliteというファイルが見つかりません。それは蒸気2との互換性はありませんので、私はまた、私が見つけた多くのチュートリアルで人気のあるsqlite-providerを使用することはできません。 Xcodeプロジェクトを生成できませんでした:SWIFTパッケージ:エラー:充足

しかし、それにもかかわらず、データがどこかに保存された:I Macを再起動してVaporを実行し、すべてのデータを見ることができます。

私はここで似たような質問をたくさん読んでいますが、著者の誰もVaporを使用していないので、それらの答えは私を助けません。私はこのdata.sqliteファイルの場所を取得する必要があります。私は間違って何をしていますか?

P.S私はXcode 8.3.2、Swift 3.1、Vapor 2.0.1を使用しています。 SQLite3がインストールされています。どこ蒸気ストアデータベースファイル

+0

他の人がこれを見つけた場合の小さなコメントが1つあります。Fluent 2ではSQLiteがメモリドライバとしてデフォルトでバンドルされていますので、すでにSQLiteProviderがインストールされていると仮定します。 – Logan

答えて

1

まあ、私はまだ理解していないが、私はこの解決策を見つけた:

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

私は私のプロジェクトの親ディレクトリに設定するとdata.sqliteが表示されます。

しかし、Spotlightでも見つからない場合は、元々どこの名前で保存されていたのか疑問です。

+0

Xcodeがビルドされると、おそらくスポットライトが拾わない、あいまいなビルドフォルダがある場合、恐らくあなたはそれを解決してうれしいxcodeキャッシュに詰まったいくつかのデータファイルを持っているでしょう! – Logan

1

ターミナルfindコマンドは、Spotlight検索により、そうでない場合に配置可能ではないファイルを見つけるために使用することができます:蒸気2で

sudo find/-name "VaporSQLite.sqlite" -print 

を、SQLiteはそうSQLiteProviderFluentの一部であり、もはや必要ありません。 SQLiteProviderを使用するチュートリアルでは、代わりにFluentProviderを使用します。

蒸気2のデフォルトapiテンプレートの場合、Fluentが含まれます。 Vapor 2のデフォルトでないwebテンプレートの場合、fluent-providerPackage.swiftに追加し、続いてコードで設定する必要があります。

... swift package tools-versionは4.0.0

dependencies: [ 
    … 
    .package(url: "https://github.com/vapor/fluent-provider.git", .upToNextMajor(from: "1.3.0")), 

SQLiteのファイルが蒸気2のために生成されるための私の発見は、以下のswift package tools-version 3.1.0

dependencies: [ 
    … 
    .Package(url: "https://github.com/vapor/fluent-provider.git", majorVersion: 1), 

のためにのために

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の場所は、Config/sqlite.jsonファイルで指定されています。"FindMeSQLite.sqlite" は再びとしてpath/to/VaporDefaultExample/FindMeSQLite.sqliteで発見されています

cd .. 
vapor update 
vapor build 
vapor run & 
sudo find/-name "FindMeSQLite.sqlite" -print 

結果:Config/sqlite.json

# ^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 

結果に指定されている "FindMeSQLite.sqliteは"/VaporDefaultExample/FindMeSQLite.sqliteに/パスで発見されますConfig/sqlite.json

注:ご使用の設定で.sqliteの場所が異なる場合は、macOSまたはUbuntuのfindにそのような場所が表示されます。

関連する問題