なかのにっき

最新版はこちら。 突っ込みは各日付の BBS エントリのほか、 メール (nakano@st.seikei.ac.jp) や フォーム からどうぞ。 なおスパム除けのため、BBS 機能には 緩い認証を入れて います。 検索エンジンから来た方は、エンジンの方のキャッシュを見るか、 下の簡易検索を試してみてください。


hns - 日記自動生成システム - Version 2.19.5

先月 2001年08月 来月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Namazu for hns による簡易全文検索
詳しくは 詳細指定/ヘルプを参照して下さい
検索式:

2001年08月16日(木) [n年日記]

#1 rmdb インストールの試み (6)

完了。

従来は文献に通し番号をつけてストッカーに保存していたのだが、 この番号を実際にデータが登録されるテーブル refs のプライマリキー ref_id とあわせる方向で作業。

まず req/ref.inc を修正して、 登録完了後に ref_id を画面表示させるようにした。 cudb で定義されてる gdb_insert() という php 関数は、 登録後にそのエントリのプライマリキーを返してくれる仕様になってるので、 こいつを利用。 パッチ も更新した。

続いて今までの文献データベースソフトからデータ抽出、 手作業でエラー修正を行った後、 perl で変換スクリプトを書いて SQL のバッチ (~/project/rmdb/ph_insert.ddl.gz) を作った。 内部ではシングルクォートを \ でエスケープしてあることに注意。 こいつを
sudo -u www-data psql www-data < ph_insert.ddl
で食わせ、一括登録。

この状態で web browser から新既文献を登録しようとすると、 ref_id が衝突する旨のエラーになる。 ref_id は refs_ref_id_seq というシーケンスを使って
not null default nextval('"refs_ref_id_seq"'::text)
と定義されている。さっきの一括登録のときは nextval() が呼ばれなかったので、 refs_ref_id_seq の last_value が増えていないのが敗因。

そこで psql プロンプトから
select setval('refs_ref_id_seq', max(ref_id)) from refs limit 1;
によってシーケンスの値を修正 *1 。 これで新既登録も web から問題なくできるようになった。

あと必要な作業は くらいかな。最後が大変そうだ。

とりあえず今日は帰って寝よ。
*1: そんなフィールドはもちろんないけど。

#2 宅急便

で起こされた。 寝たまま居留守でやり過ごそうと思ったら、 玄関のカギをかけ忘れていた。

横浜の伯母から幸水。一個冷蔵庫にいれてまた寝る(笑)

起きて食す。大変おいしい。

#3 [labo] 黒田さん来訪

してくれていたらしい(^^;
18:30 に研究室に出てきたら、 その旨の院生のメッセージと共に名刺が残っていた。 おみやげどうもありがとうございました。

その後電話。秋に結婚するとのこと。 残念ながら IVC にかかっちゃって出席はできなさげ。

#4 [freshmeat] 8/15 分の新着メールから

#5 [JM] 今日の commit & post

mmap.2 と getservent.2 を revise (各々数行) して commit。 madvise.2 の新訳を post。

slabinfo.5 も片づけようと思ったが、 ちと歯ごたえがあるので中断して予約だけ投げ。

やっつけて投げた (23:30)。

#6 [linux] potato 以降の task-* パッケージ

tasksel を使うと選べるみたいですね。 仮想パッケージではなくなったのかしらん。

#7 rmdb 環境設定

ユーザの追加:

こんな bash スクリプト の出力を psql に食わせる。 名前の登録とかはログインしてやってもらうことに。

abbrev の追加:

以下のような感じで。

テーブルを index でシーケンシャルにサーチして、 最初にマッチしたエントリで展開されてしまうようなので、 例えば JJAP は JAP より先に insert しないといけないことに注意。
insert into ref_abbrev (abbrev, full_text) values ('JJAP', 'Jpn. J. Appl. Phys.');
insert into ref_abbrev (abbrev, full_text) values ('JAP', 'J. Appl. Phys.');
insert into ref_abbrev (abbrev, full_text) values ('APL', ' Appl. Phys. Lett.');
insert into ref_abbrev (abbrev, full_text) values ('JMR', ' J. Mater. Res.');
insert into ref_abbrev (abbrev, full_text) values ('JVSTA', 'J. Vac. Sci. Technol. A');
insert into ref_abbrev (abbrev, full_text) values ('JVSTB', 'J. Vac. Sci. Technol. B');
insert into ref_abbrev (abbrev, full_text) values ('PRB', 'Phys. Rev. B:');
insert into ref_abbrev (abbrev, full_text) values ('PRL', 'Phys. Rev. Lett.');
insert into ref_abbrev (abbrev, full_text) values ('RSI', 'Rev. Sci. Instrum.');

バックアップ:

以下を /etc/crontab に追加 *2
30 3 * * * www-data pg_dump -b -F c www-data > /home/common/data/rmdb.ddl
/home/common/data/ は nfs マウントしてるディレクトリで、 毎晩テープにバックアップを取っている。

関連作業ファイル:

~/project/rmdb に移動。

ちなみに:

identd 動かさないと php4 から postgres に接続できない のは、 /etc/postgresql/pg_hba.conf に
local        all                                           peer sameuser
host         all         127.0.0.1     255.0.0.0           ident sameuser
host         all         0.0.0.0       0.0.0.0             reject
という指定があるからだった。 シーラカンス本の「2.8 セキュリティ機能」辺りを参照のこと。

*2: /usr/bin には crontab 中でパスが通してある。
コメント [全部読む/投稿する]

以上、1 日分です。
タイトル一覧
カテゴリ分類
book
dept
issp
labo
paper
snap
stock
vsj
Powered by hns-2.19.5, HyperNikkiSystem Project

中野武雄 (NAKANO, Takeo) <nakano@st.seikei.ac.jp> Since 1999-10-07
RSS feed, 更新時刻, LIRS エントリ, アクセス制御 (解説)

中野のホームページへ