Skip to content

Instantly share code, notes, and snippets.

@phoolish
Forked from gingerlime/change_db_owner.sh
Created April 13, 2016 15:38
Show Gist options
  • Select an option

  • Save phoolish/62a504061ff70c4853fc55474764bde7 to your computer and use it in GitHub Desktop.

Select an option

Save phoolish/62a504061ff70c4853fc55474764bde7 to your computer and use it in GitHub Desktop.

Revisions

  1. gingerlime revised this gist Jun 30, 2012. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions change_db_owner.sh
    Original file line number Diff line number Diff line change
    @@ -8,6 +8,7 @@ usage: $0 options
    This script set ownership for all table, sequence and views for a given database
    Credit: Based on http://stackoverflow.com/a/2686185/305019 by Alex Soto
    Also merged changes from @sharoonthomas
    OPTIONS:
    -h Show this message
  2. gingerlime revised this gist Jun 30, 2012. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions change_db_owner.sh
    Original file line number Diff line number Diff line change
    @@ -45,5 +45,5 @@ for tbl in `psql -qAt -c "select tablename from pg_tables where schemaname = 'pu
    `psql -qAt -c "select sequence_name from information_schema.sequences where sequence_schema = 'public';" ${DB_NAME}` \
    `psql -qAt -c "select table_name from information_schema.views where table_schema = 'public';" ${DB_NAME}` ;
    do
    psql -c "alter table $tbl owner to ${NEW_OWNER}" ${DB_NAME} ;
    done
    psql -c "alter table \"$tbl\" owner to ${NEW_OWNER}" ${DB_NAME} ;
    done
  3. gingerlime created this gist Apr 24, 2012.
    49 changes: 49 additions & 0 deletions change_db_owner.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,49 @@
    #!/bin/bash

    usage()
    {
    cat << EOF
    usage: $0 options
    This script set ownership for all table, sequence and views for a given database
    Credit: Based on http://stackoverflow.com/a/2686185/305019 by Alex Soto
    OPTIONS:
    -h Show this message
    -d Database name
    -o Owner
    EOF
    }

    DB_NAME=
    NEW_OWNER=

    while getopts "hd:o:" OPTION
    do
    case $OPTION in
    h)
    usage
    exit 1
    ;;
    d)
    DB_NAME=$OPTARG
    ;;
    o)
    NEW_OWNER=$OPTARG
    ;;
    esac
    done

    if [[ -z $DB_NAME ]] || [[ -z $NEW_OWNER ]]
    then
    usage
    exit 1
    fi

    for tbl in `psql -qAt -c "select tablename from pg_tables where schemaname = 'public';" ${DB_NAME}` \
    `psql -qAt -c "select sequence_name from information_schema.sequences where sequence_schema = 'public';" ${DB_NAME}` \
    `psql -qAt -c "select table_name from information_schema.views where table_schema = 'public';" ${DB_NAME}` ;
    do
    psql -c "alter table $tbl owner to ${NEW_OWNER}" ${DB_NAME} ;
    done