query: tag:postgres

bundlerを使ってnative extensionを含むGemをインストールする場合に、
オプションの指定が必要な場合は ~/.bundle/config などを使いますが、
例えば Mac 環境で do_postgres をbundle installするには、以下のように
設定します。

pre>>
BUNDLE_BUILD__DO_POSTGRES:
--with-opt-dir=/Library/PostgreSQL/9.0
--with-opt-include=/Library/PostgreSQL/9.0/include/postgresql/server
<<--

posted by genki genki on Wed 20 Jul 2011 at 19:07 with 0 comments

ActiveRecordを使っている場合、
YamlDb
を使うと比較的簡単にデータの移行ができるようです。
script/consoleあたりから、

ruby>>
YamlDb.dump "/path/to/data.yml" # dump
YamlDb.load "/path/to/data.yml" # load
<<--

という感じに使えます。structureは作ってくれないので、migrationなどであらかじめ用意しておきます。

posted by genki genki on Mon 20 Jun 2011 at 16:04 with 0 comments

まずはPostgreSQLをこの辺からDLしてインストールします。

インストール先のディレクトリはデフォルトでは
/Library/PostgreSQL/9.0 になります。

pg gemをインストールするには、以下のようなコマンドを実行。

pre>>
% gem install pg -- --with-opt-dir=/Library/PostgreSQL/9.0
<<--

これでok

posted by genki genki on Thu 13 Jan 2011 at 21:50 with 0 comments

Postgresを使っている場合、新規にユーザを作成する場合には、ユーザ作成時にDB作成権限の付与の設定を行えるのですが、
あとからこれを変更する方法がわからなかったのでメモ。

pre>>

update pg_authid set rolcreatedb = true where rolname = 'username';

<<--

こんな感じでokのようです。

権限周りのSQLはRDBMSごとにまちまちで統一されてないあたりが、素のSQLが敬遠されてORマッパーが隆盛する原因かもしれないですね。

posted by genki genki on Wed 5 Jan 2011 at 19:32 with 0 comments

The edge version of do_postgres with JRuby causes misterious error like this.

pre>>
~ (1) SELECT "id", "digest", "fetched_at", "created_at", "site_id" FROM "pages" WHERE ("site_id" IN (1)) ORDER BY "id"
~ ERROR: syntax error at or near "("merb : worker (port 4000) ~ ERROR: syntax error at or near "(" - (PostgresError)
<<--

The SQL that had been performed is here.

sql>>
SELECT "id", "digest", "fetched_at", "created_at", "site_id" FROM "pages" WHERE ("site_id" IN (1)) ORDER BY "id"
<<--

This is able to be performed successfully at the psql console.
So I wonder what the error message means.

Updates

I found the bug.

For example, this code

pre>>
Page.repository.adapter.execute('SELECT * FROM "pages" WHERE ("id" IN ?) AND ("site_id" = ?)', [1], nil)
<<--

generates this sql

sql>>
SELECT * FROM "pages" WHERE ("id" IN (1)) AND ("site_id" = (NULL))
<<--

(NULL) causes parsing error.

This issue happens if the first value is an Array and the succeeding values are not Arrays.

posted by takiuchi takiuchi on Sun 7 Jun 2009 at 20:06 with 0 comments

最近の釣果ならぬYak Shaving状況:

  • watch.s21g.com が重たくて固まる
  • CouchDB-adapterを疑ってmysqlに戻す
  • まだ遅いのでdm-aggregatesを調査
  • dm-core が原因っぽいのでdm-coreのソースを見る
  • dm-core のスペックが通らない
  • postgresが必要なのでインストール
  • Mac用インストーラではdo_postgresがmakeできない
  • postgresをソースからインストール <- いまここ

ということで、MacOSにPostgresを入れるためにユーザを作成する手順のメモ。

pre>>

dscl . -create /Users/postgres

dscl . -create /Users/postgres UserShell /bin/bash

dscl . -create /Users/postgres RealName "Postgres"

dscl . -create /Users/postgres UniqueID 451

dscl . -create /Users/postgres PrimaryGroupID 451

dscl . -create /Users/postgres NFSHomeDirectory /usr/local/pgsql

<<--

UID/GIDの根拠は自信が無い。UIDは500未満にしておくとログイン画面にでないようになるそうだ。

Alas, life is full of yakshaving!

See Also

posted by genki genki on Tue 7 Apr 2009 at 23:36 with 0 comments

他人のサーバ、既存環境が動いているサーバでバージョン確認したいことってありますよね。

■postgreSQL

psql --version

■httpd

httpd -vでバージョン、httpd -Vでコンパイルオプション

■mysql

mysql -D mydatabase -e "select version();"

posted by ysakaki ysakaki on Thu 13 Nov 2008 at 13:02 with 0 comments