Advertisement
Guest User

Untitled

a guest
Aug 5th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.26 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Instalatron kufa!
  4.  
  5. my_dir="`pwd`/data/sql";
  6. user='';
  7. pass='';
  8. database='bdt';
  9. demo=0;
  10. backup=0;
  11.  
  12. usage()
  13. {
  14. cat << EOF
  15. Użycie $0 opcje
  16.  
  17. Skrypt ten, wywołuje inne pliki tekstowe z bezpośrednim wpisem do bazy, operacja "nieodwracalna".
  18.  
  19. Wymagane ścieżki w katalogu:
  20.  
  21. $(pwd)/
  22.  
  23. to:
  24. $(echo -e "\t") ./data/sql/delete/index
  25. $(echo -e "\t") ./data/sql/create/index
  26. $(echo -e "\t") ./data/sql/insert/demo/index
  27. $(echo -e "\t") ./data/sql/insert/init/index
  28.  
  29. Należy zachować kolejność utwaiania dropowania schematów odrwotną niż przy tworzeniu gdyż zależności pomiędzy tabelami nam nie pozwolą inaczej wykonać operacji.
  30.  
  31. Pliki index, są to zwykłe pliki tekstowe, bez żadnego rozserzenia, przykład pliku ./data/sql/create/index:
  32.  
  33. user/table.sql
  34. session/table.sql
  35. module/table.sql
  36.  
  37. Gdzie odniesie jest do katalogu: ./data/sql/create/
  38.  
  39. Opcje:
  40.    -b      Backup, tworzy pierw backup
  41.    -d      Nazwa bazy danych
  42.    -u      Nazwa użytkownika
  43.    -p      Hasło użytkownika
  44.    -e      (Demo) Przykładowe dane
  45.    -h      Wyświetla pomoc
  46. EOF
  47. }
  48.  
  49. setup_sql()
  50. {
  51. echo $1;exit;
  52.    export PGUSER=$1
  53.    export PGPASSWORD=$2
  54. }
  55.  
  56. run_sql()
  57. {
  58.    postgresql -f $1 $2
  59. }
  60.  
  61. backup_sql()
  62. {
  63.    backup_file="$(pwd)/data/backup/$(date +'%F|%T').tar"
  64.    pg_dump -F 'tar' -f "$backup_file" $1
  65. }
  66.  
  67. create_sql()
  68. {
  69.    if [ ! -e "$1/create/index" ]
  70.    then
  71.       echo "Brak pliku $1/create/index";
  72.       echo "Nie tworzymy bazy ;)";
  73.       return;
  74.    fi;
  75.  
  76.    files=$(cat "$1/create/index"|grep -e ^[^#]);
  77.  
  78.    for x in $files
  79.    do
  80.       echo "$1/create/index/$x";
  81.    done
  82. }
  83.  
  84. delete_sql()
  85. {
  86.    if [ ! -e "$1/delete/index" ]
  87.    then
  88.       echo "Brak pliku $1/delete/index";
  89.       echo "Nie kasujemy bazy ;[";
  90.       return;
  91.    fi;
  92.  
  93.    files=$(cat "$1/delete/index"|grep -e ^[^#]);
  94.  
  95.    for x in $files
  96.    do
  97.       echo "$1/delete/index/$x";
  98.    done
  99. }
  100.  
  101. init_sql()
  102. {
  103.    if [ ! -e "$1/insert/init/index" ]
  104.    then
  105.       echo "Brak pliku $1/insert/init/index";
  106.       echo "Nie inicjalizujemy bazy ]:->";
  107.       return;
  108.    fi;
  109.  
  110.    files=$(cat "$1/insert/init/index"|grep -e ^[^#]);
  111.  
  112.    for x in $files
  113.    do
  114.       echo "$my_dir/create/index/$x";
  115.    done
  116. }
  117.  
  118. demo_sql()
  119. {
  120.    if [ ! -e "$1/insert/init/index" ]
  121.    then
  122.       echo "Brak pliku $1/insert/demo/index";
  123.       echo "Nie wrzucamy przykładowych treści do bazy :(";
  124.       return;
  125.    fi;
  126.  
  127.    files=$(cat "$1/insert/demo/index"|grep -e ^[^#]);
  128.  
  129.    for x in $files
  130.    do
  131.       echo "$my_dir/create/index/$x";
  132.    done
  133. }
  134.  
  135. # hahaha to przez przypadek :D
  136. while getopts "d:u:p:ebh" OPTION
  137. do
  138.    case $OPTION in
  139.       b)
  140.          backup=1
  141.          ;;
  142.       d)
  143.          database=$OPTARG
  144.          ;;
  145.       u)
  146.          user=$OPTARG
  147.          ;;
  148.       p)
  149.          pass=$OPTARG
  150.          ;;
  151.       e)
  152.          demo=1
  153.          ;;
  154.       h)
  155.          usage
  156.          exit 1
  157.          ;;
  158.       ?)
  159.          usage
  160.          exit
  161.          ;;
  162.    esac
  163. done
  164.  
  165. #Inicjalizujemy sql'a
  166. setup_sql $user, $pass;
  167.  
  168. if [ -n $backup ]
  169. then
  170.    backup_sql $database;
  171. fi;
  172. exit;
  173. #Kasujemy
  174. drop_sql $my_dir;
  175.  
  176. #Tworzymy
  177. create_sql $my_dir;
  178.  
  179. #Inicjalizujemy
  180. init_sql $my_dir;
  181.  
  182. #A jak chcemy demo to je dodajemy ;)
  183. if [ -n $demo ]
  184. then
  185.    demo_sql $my_dir;
  186. fi;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement