Rails with postgresql

Hi this is my first time for a few things. I am trying to get rails
working with postgres-9.0.1, I have never used postgres before. I do
know the server is listening on localhost:5432 as I am able to connect
to it using pgadmin3 and see the 2 databases on it.

I have ‘pg’ gem installed
my database.yml looks like this

development:
adapter: postgresql
encoding: unicode
database: test
pool: 5
username:
password:

however i am getting the following migrate error

yadav@expression:$ rake db:migrate --trace
(in /home/yadav/dev/rails/tmp/testapp)
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
rake aborted!
could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket “/var/run/postgresql/.s.PGSQL.
5432”?


Kind Regards,
Rajinder Y. | DevMentor.org | Do Good! ~ Share Freely

GNU/Linux: 2.6.35-22-generic
Kubuntu x86_64 10.10 | KDE 4.5.1
Ruby 1.9.2p0 | Rails 3.0.1

On Dec 7, 2010, at 1:49 PM, Rajinder Y. wrote:

encoding: unicode
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
rake aborted!
could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket “/var/run/postgresql/.s.PGSQL.
5432”?

Is the server running locally and accepting connections on that unix
domain socket? You don’t say that it is…

Or if you don’t want to tweak that, change your database.yml and add a
“host: localhost” entry.

-philip

On Tue, Dec 7, 2010 at 3:49 PM, Rajinder Y. [email protected]
wrote:

encoding: unicode
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
rake aborted!
could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket “/var/run/postgresql/.s.PGSQL.
5432”?

It might help if you can post your database.yml… also, have you
created
your databases (rake db:create:all)?

On Tue, Dec 7, 2010 at 4:59 PM, David K. [email protected]
wrote:

my database.yml looks like this

5432"?

It might help if you can post your database.yml… also, have you created
your databases (rake db:create:all)?

Hi David,

thanks for the tip, I got it working, just had to add “host:
localhost” as Philip pointed out.

Kind Regards,
Rajinder Y.

On Tue, Dec 7, 2010 at 4:25 PM, Rajinder Y. [email protected]
wrote:

to it using pgadmin3 and see the 2 databases on it.
password:
could not connect to server: No such file or directory

thanks for the tip, I got it working, just had to add “host:
localhost” as Philip pointed out.

Cool… hey if you have a chance let me know if you can connect to the
db
using: “rails dbconsole”… I have never been successful doing this and
I
just go to the postgresql command line but would be curious if it works
for
you… I can connect no problem to the rails console, but for whatever
reason I get “Couldn’t find database client: psql. Check your $PATH and
try
again.” when I try rails dbconsole.

On 10-12-07 05:31 PM, David K. wrote:

<http://devguy.ca>@gmail.com <http://gmail.com>> wrote:
 >> development:
 >> (in /home/yadav/dev/rails/tmp/testapp)
 >

Cool… hey if you have a chance let me know if you can connect to the
db using: “rails dbconsole”… I have never been successful doing this
and I just go to the postgresql command line but would be curious if it
works for you… I can connect no problem to the rails console, but for
whatever reason I get “Couldn’t find database client: psql. Check your
$PATH and try again.” when I try rails dbconsole.

Hi David,

‘rails dbconsole’ works for me. Are you on Linux? if so what do you get
when you do a ‘which psql’, do you get the right path?

I built postgresql-9.0.1 from source, and the make install script puts
psql under /usr/local/pgsql/bin/psql

What I ended up doing instead of adding to the $PATH, was creating a
symbolic link under /usr/local/bin

lrwxrwxrwx 1 root root 25 2010-12-07 19:50 psql →
/usr/local/pgsql/bin/psql

I am guessing, either you need to update your $PATH variable or use a
sym-link like me and things should work fine.


Kind Regards,
Rajinder Y. | DevMentor.org | Do Good! ~ Share Freely

GNU/Linux: 2.6.35-22-generic
Kubuntu x86_64 10.10 | KDE 4.5.1
Ruby 1.9.2p0 | Rails 3.0.1

On Tue, Dec 7, 2010 at 4:59 PM, Philip H. [email protected]
wrote:

my database.yml looks like this

5432"?

Is the server running locally and accepting connections on that unix domain
socket? You don’t say that it is…

Or if you don’t want to tweak that, change your database.yml and add a “host:
localhost” entry.

-philip

Hi Philip,

that was it, not sure (yet) how to setup the server to listen on the
unix domain socket, but adding the host entry made the connection
possible.

I can now add and view records interactively from the rails console!

Thanks,


Kind Regards,
Rajinder Y. | DevMentor.org | Do Good! ~ Share Freely

GNU/Linux: 2.6.35-22-generic
Kubuntu x86_64 10.10 | KDE 4.5.1
Ruby 1.9.2p0 | Rails 3.0.1

On Tue, Dec 7, 2010 at 7:17 PM, Rajinder Y. [email protected]
wrote:

>
>> I have 'pg' gem installed
>> however i am getting the following migrate error
>>        connections on Unix domain socket

thanks for the tip, I got it working, just had to add "host:

Hi David,

‘rails dbconsole’ works for me. Are you on Linux? if so what do you get
when you do a ‘which psql’, do you get the right path?

Well, I am on a Mac, and interesting, when I ask for ‘which psql’ it
does
not return anything. And if I type psql into the terminal I get “command
not
found”. So must be that I need to assign the path… I have just been
lazy.
I just rebuilt my computer so I’ll have a look at doing this.

:migrate

rake aborted!
could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket “/var/run/postgresql/.s.PGSQL.
5432”?

It is looking for the domain socket in
/var/run/postgresql/.s.PGSQL.5432.

Go in /var/run/postgresql/ and
ln -s wherever/your/domain/socket/is/.s.PGSQL.5432 .

You can find the socket with a global search, like

find / -name .s.PGSQL.*

The above will fix the issue, but a more definitive solution would be to
point rails to the right location of the domain socket (I am just
looking how to do it myself!)

Philip H. wrote in post #967046:

On Dec 7, 2010, at 1:49 PM, Rajinder Y. wrote:

encoding: unicode
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
rake aborted!
could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket “/var/run/postgresql/.s.PGSQL.
5432”?

Is the server running locally and accepting connections on that unix
domain socket? You don’t say that it is…

Or if you don’t want to tweak that, change your database.yml and add a
“host: localhost” entry.

-philip

Hey Phillip Hallstrom, How “host: localhost” resolves the problem. Of
course it resolved my problem without any new configuration. Please tell
me how does it worked.

By default PostgreSQL listens on a local domain socket for security
reasons, however, by adding the host: localhost line you are telling the
PostgreSQL driver that you want to use TCP networking, and so it
switches to TCP/IP connections on port 5432.

The fact that use use localhost to connect to the local machine is
irrelevant you can put any IP address there to connect to a PostgreSQL
instance anywhere on the Internet