アプリの最初のバージョンで sqlite を使用してデータを保存していますが、一部のテーブルの構造を変更する必要があります。
以前に新しいバージョンをリリースしたことに注意してください。更新後にデータベースレコードが表示されず、行の登録が再び開始されたため、更新後にデータベースが削除されたことに注意してください。
私の質問は、更新時にテーブルの削除を処理する必要があるのですか?なぜアップルは前回の更新でテーブルを削除するのですか?
アプリの最初のバージョンで sqlite を使用してデータを保存していますが、一部のテーブルの構造を変更する必要があります。
以前に新しいバージョンをリリースしたことに注意してください。更新後にデータベースレコードが表示されず、行の登録が再び開始されたため、更新後にデータベースが削除されたことに注意してください。
私の質問は、更新時にテーブルの削除を処理する必要があるのですか?なぜアップルは前回の更新でテーブルを削除するのですか?
これは、データベースファイルの名前、テーブル名、および場所によって異なります。
Appleのプログラミングガイドから:ユーザーがアプリのアップデートをダウンロードすると、iTunesはそのアップデートを新しいアプリディレクトリにインストールします。次に、古いインストールを削除する前に、ユーザーのデータファイルを古いインストールから新しいアプリディレクトリに移動します。次のディレクトリ内のファイルは、更新プロセス中に保持されることが保証されています。
<Application_Home>/Documents
<Application_Home>/Library
他のユーザーディレクトリ内のファイルも移動される可能性がありますが、更新後にそれらが存在することに依存しないでください。
更新後にデータが表示されなかった理由はいくつか考えられます。たとえば、2 回目の更新のコードによって、データベース ファイルの名前、または特定のテーブルまたはフィールドの名前が変更された可能性があります。
原則として、古い sqlite ストアは更新後に存在する必要があります。
移行を手動でコーディングする必要があります。更新後の最初の起動時に、新しいストアを作成し、古いストアからすべてのレコードを読み取り、新しい形式で新しいストアに保存します。