Do not rely on env vars for superuser role name.

Environment variables may not be set in Docker.
Instead, obtain the superuser role from the database.
This commit is contained in:
Oleksii Kliukin
2015-09-02 15:20:16 +02:00
parent a7f7a7bf58
commit da132ca1fc
+2 -1
View File
@@ -354,7 +354,8 @@ primary_conninfo = '{}'
self.query('CREATE ROLE "{0}" WITH LOGIN SUPERUSER PASSWORD %s'.format(
self.superuser['username']), self.superuser['password'])
else:
self.query('ALTER ROLE "{0}" WITH PASSWORD %s'.format(os.environ['USER']), self.superuser['password'])
rolsuper = self.query("""SELECT rolname FROM pg_authid WHERE rolsuper = 't'""").fetchone()[0]
self.query('ALTER ROLE "{0}" WITH PASSWORD %s'.format(rolsuper), self.superuser['password'])
if self.admin:
self.query('CREATE ROLE "{0}" WITH LOGIN CREATEDB CREATEROLE PASSWORD %s'.format(
self.admin['username']), self.admin['password'])