2009-05-14 13 views
0

私はアプリケーションを開発しており、私はデータベースストレージとしてSQLiteを使用しています。 私はアプリケーションの期間中sqliteデータベースを追加して更新したいので、ドキュメントディレクトリにコピーしましたので、データベースから選択するだけで、すべての種類のデータをデータベースで処理できます。 iPhone上でプロセスを経てiPhone SQLiteファイル管理

しかし、私は「時間」を開発していますから、私のデータベースの変更頻度の高い(データベースアーキテクチャは、他の開発者によって作られて)

場合、私は

  1. をチェックしていますデータベースが文書ディレクトリに存在する場合
  2. (存在しない場合)それをコピーします。
  3. 使用するデータベース

ことが、私は自分のデータベースを更新するときに、データベースが存在する場合、私はチェックしていますので、(私は別のsqliteのマネージャーで行われた)、それは、新しいバージョンをコピーするプロセスを失敗しました。

あなたの誰かが同じ種類の問題を経験しましたか?そして私の唯一のアイデアが

も方法があります。..設定表を作成し、データベースのバージョン番号のを確認した行を保持するためにあなたがこの種の問題を渡すようにしたんだ...

ました任意のsqlite管理ツールのドキュメントディレクトリからsqlファイルを編集するには?

より良い解決法がありますか?

答えて

0

iPhoneでアプリケーションを削除しようとしましたが、その後に再度アプリケーションを導入しようとしましたか?

+0

問題は私が複数のsqliteデータベースで作業していて、それらをすべて削除するのではなく、ただ1つしか更新したくないということです。 –

1

私のアプリで何をしましたか: - 最初は同じことをしています。 DBがDocuments内にあるかどうかを確認してください。 - それから、以前にインストールされたバージョンを確認します:文書の小さなテキストファイルが私にこれを伝えます - アップデートが必要な場合は、データベースをマージします:/ Documentsとアプリケーションバンドルの別のものをマージします。 - 私の場合、私はマージする必要があります。あなたが変更していない場合は、あなたがコピーするだけかもしれません。

+0

マージングは​​面白いと思います。 –

1

私が行うのは、以前のバージョン1.sql、2.sql、3.sqlなどからアップグレードできる一連のSQLスクリプトを作成することです。私のデータベースを開くと、設定テーブルからバージョンをクエリします私がアプリケーションバンドルで見つけた最新の.sqlファイルと比較してください。新しいバージョンがある場合は、最新のバージョンが出現するまで.sqlスクリプトの実行を開始します。これは今、いくつかのプロジェクトでかなりうまくいきました。

0

私がやっていることは、小さな二番目のテーブルをデータベースに追加したことを除いて、あなたがしたことに似ています。このデータベースには、データベースのバージョン番号であるレコードが1つだけ含まれています。したがって、このデータベーステーブルのバージョン1から始めます。次に、構造体を変更するときに、このバージョン番号を2に更新します。スタートアップコードで、データベースが存在するかどうかを確認します。その場合は、データベースのバージョン番号を確認してください。データベースのバージョン番号が予期したものと一致する場合は、そのまま続行してください。予想よりも少ない場合は、コードを呼び出してデータベースを現在のバージョンにアップグレードしてから続行してください。

関連する問題