2017-02-06 4 views
2

私はアンドロイドアプリケーションでORMLiteデータベースを使用していますが、データベースの構造全体を変更したい(テーブル名の変更、列の追加/削除、 。等)。アプリケーション内でORMLiteデータベース構造を変更するとどうなるのですか?

私のアプリが以前にインストールされているデバイスで競合が発生することはありますか?言い換えれば、アプリケーションを更新するとき、ORMLiteは新しいものと競合する前のインストールからの道を残すのですか?だから、parentというテーブルがあり、その名前をguardianに変更した場合、新しいリリースで2つのテーブルが用意されますか?

答えがでない場合なので、なぜデータベースバージョンのようなものがあるのですか?

答えがはいの場合、私のアプリケーションにはもう存在しないテーブルを削除するにはどうすればよいですか?前のテーブルをオーバーライドするために別のテーブル名の注釈で同じクラス名を使用することはできますか?

答えて

0

私は特にORMLiteを使用していません。しかし、ORMの意味では、ある条件に基づいてテーブルが削除されるかどうかは判断されません。これは、クライアントがビジネスルールに基づいて具体的に行う必要があることです。 https://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html

しかし、SQLIteのデータベーススキーマをアップグレードするには、多くの制限があります。つまり、本格的なDBMSとは異なり、多くの操作がサポートされていません。しかし、それはSQLiteがとても軽い理由の一部です。一般的には、開発サイクル中は、できるだけ早く安定したデータベーススキーマを締結してください。後でマイナーな追加が必要です(SQLIteは特に列の削除などをサポートしていません)。いったんプロダクションに入って、ユーザーのデータを使ってプレイしたくない場合は、アップグレードロジックを実装することが最良の方法です。

しかし、あなたはまだ明示的にテーブルを削除したい場合は、私は、APIのはORMLiteに同じのためにそこにある参照 -

http://ormlite.com/javadoc/ormlite-core/com/j256/ormlite/table/TableUtils.html

+0

残念ながら、これは私のような状況で私を助けにはなりません、あなたは私の仮定ではないを与えましたTableUtils APIはテーブルを削除するのに実際には使用されますが、既存のテーブルは削除されます。 –

関連する問題