Working with AWS RDS isn’t always the easiest. That’s the limitations that come with hosted solutions. /shrugs/
For example, you can’t change master username once an instance has been spawned, not even on an instance restored from a snapshot.
But I did figure out how to change a Postgres RDS instance’s database name. To do this, we’ll need terminal connection to the database:
1 2 | $ psql -U james_holden -h my-database-identifier.abc123.us-west-2.rds.amazonaws.com -d donnager $ password for james_holden: # provide your db password here |
At this point, if you attempted to change the database name, Postgres will complain immediately:
1 2 | donnager=> ALTER DATABASE donnager RENAME TO rocinate; donnager=> ERROR: current database cannot be renamed |
However, if you get out of the connected db, switch to the standard “postgres” db, it’s all fair game:
1 2 3 4 5 6 7 | donnager=> \c postgres psql (9.5.5, server 9.5.4) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) You are now connected to database "postgres" as user "james_holden". postgres=> ALTER DATABASE donnager RENAME TO rocinate; ALTER DATABASE postgres=> \q |
Peace is restored again.