*DBのアップデートは、とても難しい。 [#ja361015] 多分、重要なデータを管理するようなソフトウェアを作っている人達には常識なのですが、アップデートってとても困難なんですよね。特にやっかいなのは、旧システムで動いていたデータを、新システムに移行するとき。旧→新システム用にデータを変換しないといけないのですよ。GentooにおけるPostgreSQLの場合はどうやってやるのか、と。まとめておきまーす。 *順を追って行きましょう。 [#s7b9118e] **データベース内のデータをバックアップする [#t33336bb] まずは、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 **アップデートパッケージのインストール [#f06decc5] # emerge --newuse -vuD world **アクティブなPostgreSQLを切り替える [#y0e59d8f] まず、動いている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にデータを突っ込みます。 **新しいPostgreSQLにデータを突っ込む [#a8c02c8f] まずはデータベースの初期化。そして起動後psqlでやす。 # emerge --config =dev-db/postgresql-server-9.0.3 # /etc/init.d/postgresql-9.0 # psql -f pgsql.sql template1 **PostgreSQLをコンフィギュレーションしておく [#f9d4a62c] とりあえず、アクセス権限だけは必要かなーと。 # cd /var/lib/postgresql/9.0/data # vi pg_hba.conf アクセス権限は適宜に設定してやってね **PostgreSQLを再起動/動作確認 [#w552261b] # /etc/init.d/postgresql-9.0 restart # /etc/init.d/apache2 restart 私は、Davicalにしか使ってないので、apacheも再起動しないと有効にならないの。で、動作確認をしてみます。上手くデータが読み込めるかな~。 **古いパッケージを消す [#led1b928] # emerge --depclean *終了! [#k88e50fd] いや~、なかなか大変ですね~。でも、これで手順が確立できましたよっ♪次からは安心かなっ♪
(This host) = https://femt.ddo.jp