私は最近、FTS5拡張がリリースされたことを知りました。
私のアプリケーションがユーザーシステム上でそれを使用できるかどうかを確認する最良の方法は何ですか?
python3のバージョンチェック、またはrelease pageに従ってsqlite3.sqlite_versionのチェック?または、他の何か?pythonとsqlite3、私がfts5拡張子を使用できるかどうかを確認しますか?
答えて
/これは以前にOPポストの編集だったが、私は質問を保つために、ここでそれを下に移動それは仕事ができるように明確な
ので、これは問題here
でそれを見つけ、感じていますしかし、私はいくつかの仮想マシンで実行し、fts4は有効にしていませんでしたが、私はそれを幸せに何も使っていませんでした...おそらくfts3/fts4はむしろ同じか、違う。 FTS3を有効にするともFTS4が利用できるようにすることを文書
ノートから
/編集
。 SQLite_ENABLE_FTS4コンパイル時オプションは別途ありません。 SQLiteのビルドは、FTS3とFTS4の両方をサポートするか、どちらもサポートしません。
FTS5がデフォルトで無効になっていることをリンク先のドキュメントに記載しています。 SQLiteをコンパイルするときに有効にしましたか?知って
一つの簡単な方法を使用することですpeewee
ORM:
from playhouse.sqlite_ext import FTS5Model
FTS5Model.fts5_installed()
あなたがFTS5を使用できる場合は、上記True
を返します。 pip install peewee
とpeewee
をインストールできます。
apsw
ラッパー(includes FTS5 by default since version 3.11.0-r1)を使用することもできます。 build instructionsを参照し、--enable-all-extensions
フラグを使用してください。 apsw
ラッパーはamalgamationを使用します。
編集:ここでは はこれがどのように行われるかを実証peewee
sourceからのコードです:
def fts5_installed(cls):
if sqlite3.sqlite_version_info[:3] < FTS5_MIN_VERSION:
return False
# Test in-memory DB to determine if the FTS5 extension is installed.
tmp_db = sqlite3.connect(':memory:')
try:
tmp_db.execute('CREATE VIRTUAL TABLE fts5test USING fts5 (data);')
except:
try:
sqlite3.enable_load_extension(True)
sqlite3.load_extension('fts5')
except:
return False
else:
cls._meta.database.load_extension('fts5')
finally:
tmp_db.close()
return True
フレームワークを持ってきている私はちょうどチェックのためにこれに使用しませんが、理想的ではないようです。 – DoTheEvo
@DoTheEvo、そうだけど、あなたは[peewee source](https://github.com/coleifer/peewee/blob/master/playhouse/sqlite_ext.py)を読んで、それがどのように完了したかを見ることができます!関数はわずか19行です。あなたは実際に 'peewee'を使う必要はなく、必要なコードをコピーするだけです。 – ChrisP
[開示:私はapswの著者です]それを使用しようとした以外に拡張子が存在するかどうかを調べる方法は100%ありません。エクステンションはSQLiteの一部としてコンパイルすることも、個別にロードすることもできます。 「fts5」があなたが期待しているものであるという保証もありません。いずれにしても、上記のコードは最も確かなチェック方法です。 –
- 1. ファイルmime-typeがphpの拡張子と一致するかどうかを確認します
- 2. ファイルと拡張子が実際にディレクトリまたはファイルであるかどうかを確認するPHPコード
- 3. FinderSyncで拡張子が選択されているかどうかを確認します
- 4. どこで拡張子を使用しますか?
- 5. どのファイル拡張子をnskeyedarchiverで使用しますか
- 6. PECL拡張が存在するかどうかを確認する方法は?
- 7. SFINAE/templatesを使用して演算子が存在するかどうかを確認できますか?
- 8. Pythonを使用してテーブルが存在するかどうかを確認
- 9. 私は星を動かすことができるかどうか確認しようとしています
- 10. 私がwindow.opener.parent.documentにアクセスできるかどうかを確認
- 11. リモートURLに有効な画像拡張子があるかどうかを確認
- 12. ファイルが特定の拡張子で終了するかどうかを確認してから、ファイルをリストに追加しますか?
- 13. 電子メールアドレスを使用してPayPalアカウントが存在するかどうかを確認しますか?
- 14. URLから.html拡張子が存在するかどうかを確認するにはどうすればよいですか?
- 15. ディレクトリ内のファイルの拡張子を確認するか、異なる拡張子amog特定の拡張子を検索する方法をObjective-Cの
- 16. gitの履歴でいくつかの拡張子を持つファイルの数を確認できますか?
- 17. lodashテンプレートを使用すると、変数が存在するかどうかを確認できますか?
- 18. PHP電子メールアドレスが存在するかどうかを確認しますか?
- 19. 子が存在するかどうかを確認する
- 20. <img>に画像を拡張子なしで使用できますか?
- 21. Sitecoreユーザープロファイルの拡張 - どのフィールドタイプを使用できますか?
- 22. データベースからのファイル拡張子をチェックする機能を確認する
- 23. pythonアイドルカラーを非Pythonファイル拡張子で使用するには
- 24. 1ステップがPythonの原子操作かどうかを確認する方法
- 25. ポートが使用されているかどうかを確認しますか?
- 26. Chrome拡張機能の要素を確認しますか?
- 27. SQLite3データベースが空であることをどのように確認できますか?
- 28. jQueryを使用してリンクの拡張子を確認してください
- 29. IronPythonでLINQタイプと拡張メソッドを使用できますか?
- 30. テーブルがSQLサーバーで使用されているかどうかを確認することができます
答えは質問に属するのではなく、答えになります(あなた自身の質問に答えることができます)。新しい質問がある場合は、新しい質問をしてください。 –