0

バックグラウンド

私は、同じ sqlite データベース構造に基づいているが、異なる言語で実行されるいくつかのモバイル アプリケーションを使用してきました。ご想像のとおり、ObjC(iOS) と Java(Android) が関係しています。データ共有と相互運用性のために、このスキーマを標準化したいと考えています (大文字と小文字の違い、テーブルの命名の違い、構造の違いなどがあります)。おまけとして、ある種のスキーマ表現をソース管理にチェックインし、スキーマの個別のリリースを管理できるようにしたいと考えています。

問題

sqlite データベースの作成されたインスタンスにスキーマ情報が含まれていることは理解していますが、空の sqlite データベースを配布することがそのスキーマを共有する最良の方法であるとは確信していません。たとえば、Android では、SQLite データベースをプログラムで作成および/またはアップグレードするヘルパーの使用を推奨しています。

しかし、データベースを構築/アップグレードするコードがある場合、すべての言語のプログラムスキーマのメンテナンスが強制されるようです。

質問

複数の言語間でスキーマを共有および標準化する (事前に構築された、メタデータを含む、空の sqlite データベースを超える) 他のオプションまたはアプローチはありますか? それらは何でしょうか?これらのオプションはソース管理に保存できますか? 複数のプラットフォーム間で自動化可能?

どんな洞察も大歓迎です。1回限りのバージョンで足を引きずることはできますが、もっと良い方法があるはずです...

4

1 に答える 1

0

私が質問をするときはよくあることですが、それからさらにリードを求めて Web を調べます。複数行の sqlite "スクリプト" を実行する方法があるようです: SQLite - ファイルから複数行の SQL スクリプトを実行しますか?

静的な「作成」スクリプトと「更新」スクリプトを使用し、スクリプトを配布し、さまざまなプラットフォームでこれを初期化に使用できることを確認する必要があります...

この回答を私の調査結果で更新します。

アップデート

そうですね...少し管理すれば、ファイルの各行に対して実行sqlite3_execするバッチスクリプトを作成できます。execSqlしたがって、スクリプトを有効な sqlite ステートメントとしてソース管理に入れています。実行可能な解決策である必要があります...そして、私がそれについてもっと考えてみると、かなり明白です。

于 2012-11-15T18:52:50.600 に答える