PostgreSQL

PostgreSQLのアクセス制御

apt-getでインストールしたPostgreSQLはデフォルトではlocalhostからのみ接続を受け付けるようになっています。また、ホスト名を指定しないローカル接続(unixドメインソケット)ではOS上に存在するユーザーのみ接続が許可されています。 localhost以外から…

app_modelのsaveメソッドで$dataを書き換えているとAROが上手く保存されない

開発中のCakeにACLを組み込んでみたもののAROの保存がどうもうまく行かず、素のCakeにACLを組み込んだものと比較しながら一つ一つ潰していってここで引っ掛かっていることが分かった。 AROにcreate_userカラムを足してもダメで、$this->nameがAco、Aro、AroA…

app/config/sql/db_acl.sqlはPostgreSQLで使えない

そのまま使えないので書き換える 修正前 CREATE TABLE acos ( id INTEGER(10) UNSIGNED NOT NULL AUTO_INCREMENT, parent_id INTEGER(10) DEFAULT NULL, model VARCHAR(255) DEFAULT '', foreign_key INTEGER(10) UNSIGNED DEFAULT NULL, alias VARCHAR(255)…

PostgreSQLの問い合わせツリーをログに出力する

どのようにルールシステムが機能するかを理解するためには、ルールがどのように起動され、その入力と結果は何かを理解しなければなりません。 http://www.postgresql.jp/document/pg837doc/html/querytree.html postgresql.confを編集 log_min_messages = de…

ActiveRecord経由でテーブルのフィールド型を得る方法

ActiveRecord::Baseクラスのcolumnsメソッドでカラムの情報が取得できます。 nameにフィールド名、typeにフィールド型が入っています。 null NULL値の許可 sql_type SQL型 name フィールド名 scale 位取り precision 精度 limit ? type フィールド型 defaul…

PostgreSQLでINSERTのみ使用してレコードの更新履歴を残すテーブル構造を実装する

今関わっている案件でレコードの更新履歴があるとうれしいなという話を聞いて、システム設計日記 http://masuda220.jugem.jp/?eid=350の「記録は不変( immutable )」パターンを思い出して実装してみました。 ビジネスのイベント記録の原則は、不変 ( immutab…