8.0 -> 8.1 migration issue with ROLEs ... maybe?

Started by Marc G. Fournierabout 20 years ago2 messages
#1Marc G. Fournier
scrappy@postgresql.org

I just setup a test 8.1 server, to see how things work as far as the new
roles system is concerned, as it relates to migrating from 8.0->8.1 ...
specifically since there doesn't appear to be anything in HISTORY
concerning migrating up to 8.1 from 8.0 concerning this ...

As expected:

template1=# create group a_test_group;
CREATE ROLE
template1=# create user a_test_user in group a_test_group;
CREATE ROLE
template1=#

but:

template1=# create user a_test_group in group a_test_group;
ERROR: role "a_test_group" already exists
template1=#

So, if I have a group that happens to have a userid matching it, in the
old system, its going to fail to load?

Whereas, under 8.0, it does work:

test=# create user a_test_group in group a_test_group;
CREATE USER
test=#

Is there something I'm missing here, as far as ensuring a 'clean'
migration from pre-ROLEs?

----
Marc G. Fournier Hub.Org Networking Services (http://www.hub.org)
Email: scrappy@hub.org Yahoo!: yscrappy ICQ: 7615664

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Marc G. Fournier (#1)
Re: 8.0 -> 8.1 migration issue with ROLEs ... maybe?

"Marc G. Fournier" <scrappy@postgresql.org> writes:

template1=# create user a_test_group in group a_test_group;
ERROR: role "a_test_group" already exists

So, if I have a group that happens to have a userid matching it, in the
old system, its going to fail to load?

Groups and users are the same thing now, so the above isn't unexpected.
I think though that if you just ignore the error, it'll still work the
way you want --- the same role can serve as both a user and a group.

If the script tries to create the group first, you might need
ALTER USER a_test_group LOGIN;
to enable the role to login as a user.

regards, tom lane