Lukasz Brodziak, 26.10.2010 08:58:
>> The problem with a batch file is that you will need to provide the password
>> for the superuser in clear text - which is probably not something you will
>> want to do.
>>
>> But if that isn't a problem (and you actually know the superuser password of
>> your client) then the following might work:
>>
>> ------------- snip ---------------
>> @echo off
>> setlocal
>>
>> set PGHOST=localhost
>> set PGUSER=postgres
>> set PGPASSWORD=the_super_secret_password
>>
>> createuser role_1 1> nul 2>&1
>> createuser role_2 1> nul 2>&1
>> ...
>>
>> endlocal
>> ------------- snip ---------------
>>
>>
> One more question. Does the SET PGPASSWORD sets pass for the role?
No, it sets the password for the superuser (the one that is needed to run createrole)
> If not how to set the password for the role using the script provided.
I don't think this can be specified with createuser, but you could use psql to run a single statememt.
Something like:
psql -c "create role new_role with password 'new_roles_password'"
(You might need to play around with the quoting)
The environment variables are then used to establish the connection to the correct Postgres instance.
Regards
Thomas