多分、重要なデータを管理するようなソフトウェアを作っている人達には常識なのですが、アップデートってとても困難なんですよね。特にやっかいなのは、旧システムで動いていたデータを、新システムに移行するとき。旧→新システム用にデータを変換しないといけないのですよ。GentooにおけるPostgreSQLの場合はどうやってやるのか、と。まとめておきまーす。
まずは、pg_dumpallコマンド使用して、SQL形式でダンプいたします。
# cd /var/lib/postgresql/8.4/data # vi pg_hba.conf local all all trust
この行を追加して、
# /etc/init.d/postgresql-8.4 restart
それから、pg_dumpallコマンドを使用して、SQL形式ダンプを作ります。
# su postgres postgres@localhost ~ $pg_dumpall > pgsql.sql
# emerge --newuse -vuD world
まず、動いているPostgreSQLを止め、eselectコマンドで切り替えます。
# /etc/init.d/postgresql-8.4 stop # eselect postgresql list Available postgresql installations 8.4 <-* <-S base-8.4.5 server-8.4.5 9.0 base-9.0.3 server-9.0.3
こんな感じね。これを切り替えましょー。
# eselect postgresql set-all 9.0 # eselect postgresql list Available postgresql installations 8.4 base-8.4.5 server-8.4.5 9.0 <-* <-S base-9.0.3 server-9.0.3 # eselect postgresql update
はい。これで、アクティブなPostgreSQLのバージョンが、8.4から9.0に切り替わりました。次は新しいPostgreSQLにデータを突っ込みます。
まずはデータベースの初期化。そして起動後psqlでやす。
# emerge --config =dev-db/postgresql-server-9.0.3 # /etc/init.d/postgresql-9.0 # psql -f pgsql.sql template1
とりあえず、アクセス権限だけは必要かなーと。
# cd /var/lib/postgresql/9.0/data # vi pg_hba.conf
アクセス権限は適宜に設定してやってね
# /etc/init.d/postgresql-9.0 restart # /etc/init.d/apache2 restart
私は、Davicalにしか使ってないので、apacheも再起動しないと有効にならないの。で、動作確認をしてみます。上手くデータが読み込めるかな~。
# emerge --depclean
いや~、なかなか大変ですね~。でも、これで手順が確立できましたよっ♪次からは安心かなっ♪
(This host) = https://femt.ddo.jp