While upgrading Rails 2.0.2 sites to Rails 2.1.1, I encountered a
weird postgres adapter problem. Although the old postgresql adapter
(aka ruby-postgres) works fine with Rails 2.1.1 on my Mac dev box
(running PG 8.2.6) and also works fine with Rails 2.0.2 apps on a
Debian etch staging server (running PG 8.2.1), this error occurs when
trying to cap deploy 2.1.1 apps on the Debian box: "PQserverVersion
not supported by this client version". This error occurs at the point
of the rake migration task.
This error has everything to do with the change from Rails 2.0.2 to
2.1.1; by changing the version of Rails back to 2.0.2 in config/
environment.rb, the rake migration proceeds fine and the PG db
connects fine in script/console. This problem is most mysterious, as
it didn't manifest itself on my Mac (the only difference that I can
easily see is the slightly newer PG version).
However, the solution turns out to be easy: simply use the ruby-pg
adapger (https://rubyforge.org/projects/ruby-pg/). The omnipresent
Fred C had suggested that this adapter might not work on pre-2.1 apps
(http://www.ruby-forum.com/topic/156143), but it appears to work just
Furthermore, the ruby-pg adapter project is in the reliable hands of
Jeff Davis, a superstar whose abilities mean that PG has a brilliant
future with Rails. Hurrah for that!
Anyway, I hope that this saves someone else some time.