メイン

PostgreSQL アーカイブ

Page:  1  |  2  |  3  |  4 

2009年7月31日

前回、DBD::Pgをインストールするも、MTのmt-check.cgiで何故かクリアできない。
どうやらMTとDBD::Pgのバージョンに問題関係があるらしい。
Movable Typeユーザー・マニュアル: 既知の問題 (制限事項)、3.xのドキュメントですが、この時点でDBD::Pg 1.4でのトラブルが記されている。

Movable Type 3.17 では、DBD::Pg 1.4 のデータベース・ドライバに不具合があるため、DBD::Pg 1.4 をお使いいただけません。

ちなみに、DBD::Pg 1.32以上が条件なのだが…。

ソースからインストールして確認してみた。

OK…DBD-Pg-1.32_1 ** DEVELOPER RELEASE **
OK…DBD-Pg-1.32_2 ** DEVELOPER RELEASE **
OK…DBD-Pg-1.32

1.4から2.5までのソースは見当たらない…

NG…DBD-Pg-2.5.0

NG…DBD-Pg-2.6.0

あきたので飛ばすw

NG…DBD-Pg-2.13.1_7 ** DEVELOPER RELEASE **
NG…DBD-Pg-2.13.1

NG…DBD-Pg-2.14.0
NG…DBD-Pg-2.14.1←現時点での最新版

つまるところ、2.x系は全滅っぽく、MTでDBD::Pgを使う場合、1.32しか選択肢がないってことになるみたい。
CPANでインストールする人は要注意ですね。

こういうの、インストールドキュメントに記載しておいて欲しいですが…。もしかして、うちだけの問題なのかなぁ。

続きを読む "Movable TypeとDBD::Pg" »

2009年7月27日

とりあえずいろいろメモ状態ですが…。

MacPortを使うもコンパイルエラーで断念。
とりあえず、ImageMagicとかライブラリなど依存関係のものは(Universal状態で)インストールできたので、PATHを通してありがたく使用する。

PostgreSQLをソースからインストール。

環境変数をセットする。

cd
vi .bash_profile
export PATH=$PATH:/usr/local/pgsql/bin
export MANPATH=$MANPATH:/usr/local/pgsql/man
export POSTGRES_HOME="/usr/local/pgsql/"
export POSTGRES_LIB="/usr/local/pgsql/lib -lssl -lcrypto"
export POSTGRES_INCLUDE="/usr/local/pgsql/include"

OSXのshared memory segmentの変更を行う。
これ重要。後にperlモジュールのDBD:Pgのmake testでエラーの原因となる。

shared memoryの確認方法

ipcs -M

sysctl.confを作成して再起動で設定を反映させる。

sudo vi /etc/sysctl.conf
kern.sysv.shmmax=167772160
kern.sysv.shmmin=1
kern.sysv.shmmni=32
kern.sysv.shmseg=8
kern.sysv.shmall=65536

PHPをソースからインストール。

./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-apxs2=/usr/sbin/apxs --with-ldap=/usr --with-kerberos=/usr --enable-cli --with-zlib-dir=/usr --enable-exif --enable-ftp --enable-mbstring --enable-mbregex --enable-sockets --with-iodbc=/usr --with-curl=/usr --with-config-file-path=/etc --sysconfdir=/private/etc --with-pgsql --with-xmlrpc --with-xsl=/usr --without-pear

インストールされた、libphp5.soの様子がおかしい。

sudo httpd -t
httpd: Syntax error on line 115 of /private/etc/apache2/httpd.conf: Cannot load /usr/libexec/apache2/libphp5.so into server: dlopen(/usr/libexec/apache2/libphp5.so, 10): no suitable image found.  Did find:\n\t/usr/libexec/apache2/libphp5.so: mach-o, but wrong architecture

Leopard で PHP5 を再構築できなかった話によると、デフォルトでインストールされているapacheは64ビット(x86_64)で動いているのに、phpのモジュールが32ビット(i386)なのでイヤをしているとのこと。
httpd_64.jpg
ロードされている他のモジュールがどのようにコンパイルされているかを考えたら先には進めないのですが、きっとPPC、ppc64、i386、x86_64対応になっているんだよ!
というわけで、疑問は横においといて、解決策として、Running FogBugz on Leopardにあるように、Apacheの方をなんとかしちゃえって話にして片付ける。

% cd /usr/sbin
% sudo cp httpd httpd-fat
% sudo lipo httpd -thin i386 -output httpd

とりあえずこれで32ビットのapacheを抽出したのかな?

一応これで解決だけど、いろいろと面倒なことになった感じ…。
セキュリティアップグレードの度にごにょごにょしないといけないかもね;;
雪豹あたりだと64ビットでコンパイルできるようになるのかなぁ?

続きを読む "IntelMacにPostgreSQL8.3とPHP5.2のインストール" »

2009年2月10日

POstgreSQLのテーブル(カラム)のデータ型をどう設計したか忘れてしまうような、悲しい状態になってしまった時に

ita_data=# \d
        List of relations
 Schema | Name     | Type  | Owner  
--------+----------+-------+--------
 public | ita_data | table | pamo
(1 row)
ita_data=# \d ita_data

\d [テーブル名]って手があったのですね。
これでカラムのデータ型を簡単に調べることができます。

             Table "public.ita_data"
 Column  |          Type          | Modifiers 
---------+------------------------+-----------
 code    | integer                | not null
 ress    | integer                | 
 name    | character varying(20)  | 
 email   | character varying(50)  | 
 hp      | character varying(50)  | 
 pass    | character varying(10)  | 
 subject | character varying(50)  | 
 comment | character varying(300) |

2008年10月 2日

あまりにもよく忘れるのでメモw

ALTER TABLEを使うと、
新しい列をテーブルに追加したり(ADD COLUMN)、
列の名前を変更したり(RENAME COLUMN)、
列を削除したり(DROP COLUMN)、
列の型を変更したり(ALTER COLUMN TYPE)できます。

とりあえず、カラムを追加してみる

ALTER TABLE my_table ADD COLUMN jikoku_new time;

久しぶりに自作のシステムをいじくろうとしたら、PostgreSQLで作成したテーブルのカラム名とデータ型が何だったか忘れてしまっていたという(メモも残ってないや~><)、ダメダメなシステム管理者だということが発覚w

my_db=> \d
これでテーブルの一覧は出せるので、
select * from my_table;
これでカラム名まではわかるようになります。 でも、データ型をどう指定したのかわからなくて困ることがあるよね? ないですか;; ...普通は困らないのだろうから、そういうSQLやらコマンドや関数はないのだと思われます。ええ、そうですよね?

そうは言っても困っているので、いろいろと検索してみました。
テーブルのカラム名とデータ型を、SQLを使って動的に取得する」(永字八法)というのを見つけることができましたので、以下丸写しさせてもらいますm(_ _)m

SELECT
        pg_attribute.attname,
        pg_type.typname,
        pg_attribute.attlen
FROM
        pg_attribute,
        pg_type
WHERE
        pg_attribute.atttypid = pg_type.oid AND
        ( pg_attribute.atttypid < 26 OR pg_attribute.atttypid > 29 ) AND
        attrelid IN (
                SELECT
                        pg_class.oid
                FROM
                        pg_class,
                        pg_namespace
                WHERE
                        relname='__TABLE_NAME__' AND
                        pg_class.relnamespace=pg_namespace.oid AND
                        pg_namespace.nspname='__SCHEMA_NAME__'
        );

最後のWHERE句の__TABLE_NAME__と__SCHEMA_NAME__を指定してあげれば、

   attname    | typname | attlen 
--------------+---------+--------
 id           | int4    |      4
 member       | int4    |      4
 date_t       | date    |      4
 schedule     | varchar |     -1

と、こなような感じに教えてくれます。
サイズを指定していない時にはattlenが-1になるそうです。


◆其の二

ダンプの取り方を工夫すると、CREATE TABLEの文の他にビューなども取り出せるので便利かも。

適当なディレクトリで

pg_dump -f __FILE_NAME__ -F p -v -s __DB_NAME__

データベースが大きいと該当するテーブル見つけるのが大変かもしれないけど。

CREATE TABLE week_schedule (
    id integer,
    member integer,
    date_t date,
    schedule character varying
);

こんな感じ^ ^

続きを読む "カラムに設定したデータ型を調べる" »

Page:  1  |  2  |  3  |  4 

カテゴリー

PAMO Menu
イラスト 綾波レイ MIWO 独白 掲示板