上記の@Joachimと@awoodlandで提案されているように、バイナリを更新することができます。どちらも有効ですが、私は注意深い側で間違いを犯し、単純にロバの作業を行うパッケージ管理ツールを入手します。依存関係を解決するためのセキュリティとより重大な理由残念なことに、これはあなたがおそらくdebファイルとrpmファイルで逃げることができ、これは大したことではない大部分をカバーするので、あなたはパッケージを維持する必要があります。
データベースのアップグレード側で
、(適切なフィールドなどを追加)、バックアップDBおよび1つ(またはシリーズ)は、それを更新することをSQLスクリプトを作成
スクリプトを使ってデータベースのバージョンテーブルを作成してもらいますアップグレードのバージョン番号の日付と時刻、アップグレードを実行したソフトウェアのリビジョン番号、成功したかどうか(有用であると思われるもの)を入力してください。
バイナリプログラムを起動するときに期待されるdbバージョンとの最大バージョン番号を調べて、バイナリが他のデータベースバージョンと互換性があることを確認しますグレード。
これをさらに拡張すると、一連のアップグレードスクリプトをループすることで、大幅に異なるバージョン間でアップグレードできます。これらの情報を組み込みリソースとして保持する必要がある場合は、これらの情報を安全な状態(r)から保護する必要がありますが、問題が解決するはずです。
私のコーヒーはまだ持っていませんが、それは解決策を指しているかもしれません。さらにステップを進めると、アップグレードログの表を作成して、アップグレードがどのように行われたか、問題が発生したかどうかを記録することもできます。
Linuxの場合は、ディストリビューションのパッケージ管理システムを使用してください。システム全体のアプリケーションのバイナリにランダムなユーザの書き込みを許可することは、問題を求めています。 – Flexo
一般的に、データベーススキーマ部分では、a)アプリケーションが探しているものより古いスキーマのときは何かを書く必要があります。b)新しいスキーマを適用し、互換性のない行を変換します新しいフィールドの計算値と古いフィールドの削除) - それは大きな問題ですが、ほとんどのORMシステムで扱いやすくなります。 – Flexo