Ubuntu .debパッケージにデータベースをアップグレード/作成するメカニズムはありますか?
-
12-12-2019 - |
質問
例えば、Androidプラットフォームのようなものがあります。
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
db.execSQL("DROP TABLE ....");
db.execSQL("ATER TABLE ....");
onCreate(db);
}
.
アップグレードなどを処理するのに非常に良いです。
.debパッケージのための同様の戦略はありますか?私はDebian / Control、Debian / Preinstを使用して現在のバージョン、Debian / PostInstを使用してデータベースのアップグレードを処理することができますが、それは解決策のきちんとしたものではありません。
解決
いいえ、そうではありません。ただし、はるかに清潔である必要はありません。あなたのポストインストはただのようなものがある必要があります
case "$1" in
configure)
oldver=$2
if dpkg --compare-versions "$oldver" -lt 1.2.3; then
sqlite3 mydb.db 'DROP TABLE W...'
sqlite3 mydb.db 'ALTER TABLE X...'
fi
if dpkg --compare-versions "$oldver" -lt 1.3.4; then
sqlite3 mydb.db 'DROP TABLE Y...'
sqlite3 mydb.db 'ALTER TABLE Z...'
fi
;;
...
esac
. 所属していません StackOverflow