jake wong
jake wong

Reputation: 5228

how to connect to postgresql with python

I am trying to create a postgresql database via sqlalchemy in pycharm (running python 3.6) but have trouble connecting / creating the database.

I initially started with sqlalchemy tutorial:

from sqlalchemy import create_table


engine =create_engine("postgresql+psycopg2://scott:tiger@localhost/test")
connection = engine.connect()
connection.close()

But it print's the error: could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432?

How should I be opening up the port, or pointing it to the localhost?

Is there any specific thing that I need to do to create the database before i run create_engine?

I've also been searching online and found that perhaps I should be using psycopg2 to create the database, but I don't understand how this is to be done.

What I would like is to create a postgresql database on my desktop, in a specific folder.

Upvotes: 0

Views: 4099

Answers (1)

TimGJ
TimGJ

Reputation: 1654

Assuming you have the psycopg2 connector installed, then all you need to specify in the the connection string is postgresql, so your connection string would be something like

postgresql://tim:xyzzy@somehost/somedb

By default, PostgreSQL only listens on the localhost IP address, 127.0.0.1. So if the PostgreSQL server is on a different system you will need to configure the listen address in postgresql.conf

You will also need to have created the database before attempting to connect to it with SQLAlchemy. So you need to so a createdb when logged in as the PostgreSQL user.

tim@merlin:~$ sudo -i -u postgres
postgres@merlin:~$ createdb foo
postgres@merlin:~$ 

Upvotes: 1

Related Questions