{"id":1124,"date":"2017-03-24T17:03:33","date_gmt":"2017-03-25T00:03:33","guid":{"rendered":"http:\/\/www.wiredatom.com\/blog\/?p=1124"},"modified":"2017-03-24T19:43:26","modified_gmt":"2017-03-25T02:43:26","slug":"changing-aws-rds-postresql-database-name","status":"publish","type":"post","link":"https:\/\/www.wiredatom.com\/blog\/2017\/03\/24\/changing-aws-rds-postresql-database-name\/","title":{"rendered":"Changing AWS RDS PostreSQL database name"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.wiredatom.com\/blog\/wp-content\/uploads\/2017\/03\/rds_postgres-300x164.png\" alt=\"\" width=\"300\" height=\"164\" class=\"alignleft size-medium wp-image-1133\" srcset=\"https:\/\/www.wiredatom.com\/blog\/wp-content\/uploads\/2017\/03\/rds_postgres-300x164.png 300w, https:\/\/www.wiredatom.com\/blog\/wp-content\/uploads\/2017\/03\/rds_postgres-150x82.png 150w, https:\/\/www.wiredatom.com\/blog\/wp-content\/uploads\/2017\/03\/rds_postgres.png 550w\" sizes=\"auto, (max-width: 300px) 85vw, 300px\" \/><br \/>\nWorking with AWS RDS isn&#8217;t always the easiest. That&#8217;s the limitations that come with hosted solutions. \/shrugs\/<\/p>\n<p>For example, you can&#8217;t change master username once an instance has been spawned, not even on an instance restored from a snapshot.<\/p>\n<p>But I did figure out how to change a Postgres RDS instance&#8217;s database name. To do this, we&#8217;ll need terminal connection to the database:<\/p>\n<div class=\"codecolorer-container bash railscasts\" style=\"overflow:auto;white-space:nowrap;width:680px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/><\/div><\/td><td><div class=\"bash codecolorer\">$ psql <span class=\"re5\">-U<\/span> james_holden <span class=\"re5\">-h<\/span> my-database-identifier.abc123.us-west-<span class=\"nu0\">2<\/span>.rds.amazonaws.com <span class=\"re5\">-d<\/span> donnager<br \/>\n$ password <span class=\"kw1\">for<\/span> james_holden: <span class=\"co0\"># provide your db password here<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>At this point, if you attempted to change the database name, Postgres will complain immediately:<\/p>\n<div class=\"codecolorer-container bash railscasts\" style=\"overflow:auto;white-space:nowrap;width:680px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/><\/div><\/td><td><div class=\"bash codecolorer\"><span class=\"re2\">donnager<\/span>=<span class=\"sy0\">&gt;<\/span> ALTER DATABASE donnager RENAME TO rocinate;<br \/>\n<span class=\"re2\">donnager<\/span>=<span class=\"sy0\">&gt;<\/span> ERROR: &nbsp;current database cannot be renamed<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>However, if you get out of the connected db, switch to the standard &#8220;postgres&#8221; db, it&#8217;s all fair game:<\/p>\n<div class=\"codecolorer-container bash railscasts\" style=\"overflow:auto;white-space:nowrap;width:680px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/><\/div><\/td><td><div class=\"bash codecolorer\"><span class=\"re2\">donnager<\/span>=<span class=\"sy0\">&gt;<\/span> \\c postgres<br \/>\npsql <span class=\"br0\">&#40;<\/span>9.5.5, server 9.5.4<span class=\"br0\">&#41;<\/span><br \/>\nSSL connection <span class=\"br0\">&#40;<\/span>protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: <span class=\"nu0\">256<\/span>, compression: off<span class=\"br0\">&#41;<\/span><br \/>\nYou are now connected to database <span class=\"st0\">&quot;postgres&quot;<\/span> <span class=\"kw2\">as<\/span> user <span class=\"st0\">&quot;james_holden&quot;<\/span>.<br \/>\n<span class=\"re2\">postgres<\/span>=<span class=\"sy0\">&gt;<\/span> ALTER DATABASE donnager RENAME TO rocinate;<br \/>\nALTER DATABASE<br \/>\n<span class=\"re2\">postgres<\/span>=<span class=\"sy0\">&gt;<\/span> \\q<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Peace is restored again.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Working with AWS RDS isn&#8217;t always the easiest. That&#8217;s the limitations that come with hosted solutions. \/shrugs\/ For example, you can&#8217;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&#8217;s database name. To do &hellip; <a href=\"https:\/\/www.wiredatom.com\/blog\/2017\/03\/24\/changing-aws-rds-postresql-database-name\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Changing AWS RDS PostreSQL database name&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[10,14,4],"tags":[],"class_list":["post-1124","post","type-post","status-publish","format-standard","hentry","category-geek-stuff","category-linuxunix","category-tips-tricks"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p54IqZ-i8","_links":{"self":[{"href":"https:\/\/www.wiredatom.com\/blog\/wp-json\/wp\/v2\/posts\/1124","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wiredatom.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wiredatom.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wiredatom.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wiredatom.com\/blog\/wp-json\/wp\/v2\/comments?post=1124"}],"version-history":[{"count":1,"href":"https:\/\/www.wiredatom.com\/blog\/wp-json\/wp\/v2\/posts\/1124\/revisions"}],"predecessor-version":[{"id":1129,"href":"https:\/\/www.wiredatom.com\/blog\/wp-json\/wp\/v2\/posts\/1124\/revisions\/1129"}],"wp:attachment":[{"href":"https:\/\/www.wiredatom.com\/blog\/wp-json\/wp\/v2\/media?parent=1124"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wiredatom.com\/blog\/wp-json\/wp\/v2\/categories?post=1124"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wiredatom.com\/blog\/wp-json\/wp\/v2\/tags?post=1124"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}