Есть ли механизм обновления / создания базы данных на пакете 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 / Fruinst, чтобы получить текущую версию, 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