私の Java webapp では、データベースが JDBC 接続を介して最新であるかどうか、各インスタンスが起動時にチェックしています。DB が最新でない場合、SQL スクリプトを実行して更新ルーチンを実行します。
インスタンスが起動するタイミングを制御できません。したがって、データベースの更新を同時に実行するインスタンスが 1 つだけであることを確認する必要があります。理想的には、データベース全体をロックする必要がありますが、
http://www.postgresql.org/docs/8.4/static/explicit-locking.html
と
http://wiki.postgresql.org/wiki/Lock_database
PostgreSQL はそれをサポートしていません (私はまだバージョン 8.4 を使用しています)。
他にどのようなオプションがありますか?