First time here? Check out the FAQ!
1

Database error when running migrations

I've set up a Postgres database (createdb askbot; create user askbot with password 'blah; grant all on database askbot to askbot). For some reason, when I tried to do syncdb, I got an error saying 'psycopg2.OperationalError: FATAL: Ident authentication failed for user "askbot"'. Anyway, I ended up adding a line to the pg_hba.conf file to fix password authentication for the askbot user.

The problem I'm having is that when I try and run python manage.py migrate, I get this error:

File "/srv/askbot/askbot/management/commands/init_postgresql_full_text_search.py", line 19, in handle_noargs cursor.execute("CREATE LANGUAGE plpgsql") psycopg2.ProgrammingError: must be owner of database askbot

Any help with this would be much appreciated.

allanw's avatar
33
allanw
asked 2011-02-11 18:42:12 -0500
edit flag offensive 0 remove flag close merge delete

Comments

add a comment see more comments

1 Answer

0

In my pg_hba.conf I have, approximately

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
# "local" is for Unix domain socket connections only
local   askbot      askbot                            md5
local   test_askbot askbot                            md5

These entries must be before "all" - there might be something like:

local   all         all                               ident

Put your lines above that one.

After the file is changed, restart the database daemon process. On my system I do

/etc/init.d/postgresql restart

But also you'll need to create a user, databases and assign owner to the databases.

To do that, you need to log in as user postgres - you could also su to that user through root and then open the database:

su #enter root password
su postgres
psql #user postgres can login without password

Then in the database run:

create role askbot with login encrypted password 'thepassword';
create database askbot with owner=askbot;

If you want to run tests as well, you will need to add privilege to create database, and create database for running the testcases:

alter role askbot with createdb;
create database test_askbot with owner=askbot;

or add the privilege in the first create role statement.

Evgeny's avatar
13.2k
Evgeny
updated 2011-02-11 20:39:11 -0500, answered 2011-02-11 19:13:01 -0500
edit flag offensive 0 remove flag delete link

Comments

add a comment see more comments