2011/12/06

たまには仕事ネタ

このところ仕事のネタをWeblogに書く事がなかったけど・・・・・

業務で、長らく懸案になっていたWebDBシステムの移行作業が、じっくりと時間がとれぬまま放置されていて、やらねばやらねばで年末になり、どうにか時間をやりくりしながら着手した次第。

主な作業は、これまで自分のPC上に構築していたWebDBシステム(Apache+PHP+Postgres)を、社内LAN上のサーバーへ移行するというもの。

移行先のサーバーには、Apache+PHP+Postgresの環境は既に出来ているので、PHPスクリプト用に適当なディレクトリを掘って、単純にコピーして、DBへの接続先などの設定を変更する。

DBは、毎日データの追加を行なっているため、これらの作業を設定して毎日自動でDBが更新されるように設定する。

DBは、未だ完全移行ではないので、デバグ期間中は定期的に、自PCのDBと同期を取る必要があるので、自分のPC 上のDBをバックアップして、サーバー上のDBにリストアして同期するという作業が暫定的に必要となるわけなんだが、単純にリストアしたんでは、既存のデータに追記でリストアされてしまい、レコード数が2倍の840,000件に膨れ上がって、ギョギョギョ!!

ということで、本日学んだことは、リストア先のテーブルを削除してからリストアしないと「追記されてしまう」という事。

ということで、サーバー上の該当テーブルを削除しようと、Drop table ***; コマンドを実行しようとするが、エラーが発生して削除できない。

どうやら、削除しようとしたテーブルは外部キー制約や、ビュー、トリガ、関数などを使ったテーブルが多数含まれるような複雑なデータベース構造をとっているために、単純にDropコマンドでは削除できないとの事です。
DROP TABLE products CASCADE;
このコマンドで、削除できるとの事、Google先生が答えを見つけてくれました。

以上で、DBの同期も問題なく出来るようになりまして、あとはひたすら、検索処理スクリプト(PHP)の動作確認をはじめとした検証です。

連日ルーチンワークに追われて、なかなか試行錯誤できる時間が取れない状況ですがまた暇(仕事上の暇?)を見つけて、少しずつ進めていくしかないです。

今や、オールラウンドプレーヤとして日々のしのぎを削っている毎日、なかなかシステム構築メンテナンスに掛ける時間がありません。


0 件のコメント:

コメントを投稿


~愛~