Skip to content

Instantly share code, notes, and snippets.

@powellc
Last active December 11, 2015 17:48
Show Gist options
  • Save powellc/4637260 to your computer and use it in GitHub Desktop.
Save powellc/4637260 to your computer and use it in GitHub Desktop.
Change owner of all tables in a PG database, great for those times when your dev user doesn't match production or whatever.
echo "Your database name [Enter]: "
read YOUR_DB
echo "New owner name [Enter]: "
read NEW_OWNER
# First alter tables
for tbl in `psql -qAt -c "select tablename from pg_tables where schemaname = 'public';" $YOUR_DB` ; do
psql -c "alter table $tbl owner to $NEW_OWNER" $YOUR_DB ;
done
# Next, alter sequences
for tbl in `psql -qAt -c "select sequence_name from information_schema.sequences where sequence_schema = 'public';" $YOUR_DB` ; do
psql -c "alter table $tbl owner to $NEW_OWNER" $YOUR_DB ;
done
# Finally, lets do schemas, just to be safe
for tbl in `psql -qAt -c "select table_name from information_schema.views where table_schema = 'public';" $YOUR_DB` ; do
psql -c "alter table $tbl owner to $NEW_OWNER" $YOUR_DB ;
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment