Ubuntu .debパッケージにデータベースをアップグレード/作成するメカニズムはありますか?

StackOverflow https://stackoverflow.com//questions/11680448

質問

例えば、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
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top