query: tag:PostgreSQL

普段はPostgresqlのサイトで配布されているMac用のインストーラを使っているのですが、どうやらLionはまだサポートされていないようです。

ということで、homebrewを使ってインストールすることにしました。

Homebrewをインストール

以下を実行すればok

pre>>
/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
<<--

あとは

pre>>
brew install postgresql
<<--

でインストールし、以下でdbを初期化します。

pre>>
initdb /usr/local/var/postgres
<<--

最後に、自動起動の設定を行います。

pre>>
cp /usr/local/Cellar/postgresql/9.0.4/org.postgresql.postgres.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/org.postgresql.postgres.plist
<<--

brewでインストールした場合、postgresユーザは作成されないようです。
$USERがスーパユーザとして作成されます。

posted by genki genki on Thu 18 Aug 2011 at 17:56 with 0 comments

(以下は PostgreSQL を例にしてますが、他のドライバでも通用すると思います)

install

まずは JRuby 用のドライバをインストールします。

shell>>
% gem install activerecord-jdbcpostgresql-adapter
<<--

設定

通常は database.yml に "adapter: jdbcpostgresql" と記述して利用するのですが、ここでは別の方法を紹介します。
内容は簡単で以下のコードを評価するだけです。

ruby>>
if RUBY_PLATFORM == "java"
require "active_record/connection_adapters/jdbcpostgresql_adapter"
end
<<--

(Railsであれば "config/initializers/jruby_compat.rb" などに記述しておくとよいでしょう)

メリット

  • MRI と同じアダプタ名 "postgresql" を利用できる
  • 変更なしで MRI, JRuby のどちらでも動作する

実行例

shell>>
% rvm use system
% ./script/console

User.count
=> 6

User.connection.class
=> ActiveRecord::ConnectionAdapters::PostgreSQLAdapter

% rvm use jruby
% ./script/console

User.count
=> 6

User.connection.class
=> ActiveRecord::ConnectionAdapters::JdbcAdapter
<<--

JRuby はまだ発展途上ですので、
開発や挙動確認で MRI を利用する局面が多々あります。
そんな折、この方法であればいちいち database.yml の内容を変更する必要がないため、非常にシームレス&快適に利用できると思います。

posted by maiha maiha on Mon 18 Jan 2010 at 23:16 with 0 comments

DBにyyyy,mm,dayというカラムがあるのだがmm,dayがなぜかvarcharで発狂しそう。日付型か数値型に置き換えよう。PostgreSQLの数値型へ変換する関数「TO_NUMBER」では書式指定が必須となっている。

詳細はこちら。

http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-8.1-ja/functions-formatting.html#FUNCTIONS-FORMATTING-NUMERIC-TABLE

to_number(year,9999) * 10000 + to_number(month,99)*100+to_number(day,99))>=20080401

のように使う。(日付型にした方が早かったか?

posted by ysakaki ysakaki on Tue 16 Sep 2008 at 17:15 with 0 comments