11travis_setup_postgresql () {
2-   local  port start_cmd stop_cmd
2+   local  port=5432  start_cmd stop_cmd
33  local  version=" ${1} " 
44
5-    if  [[ -z  " ${version} " ;  then 
6-      case  " ${TRAVIS_DIST} " in 
5+ if  [[ -z  " ${version} " ;  then 
6+   case  " ${TRAVIS_DIST} " in 
77    precise)
88      version=' 9.1' 
99      ;;
@@ -27,39 +27,60 @@ travis_setup_postgresql() {
2727      ;;
2828    * )
2929      echo  -e " ${ANSI_RED} Unrecognized operating system.${ANSI_CLEAR} " 
30+       return  1
3031      ;;
31-      esac 
32-    fi 
32+   esac 
33+ fi 
3334
34-    echo  -e " ${ANSI_YELLOW} Starting PostgreSQL v${version}${ANSI_CLEAR} " 
35-    export  PATH=" /usr/lib/postgresql/${version} /bin:$PATH " 
35+ echo  -e " ${ANSI_YELLOW} Starting PostgreSQL v${version}${ANSI_CLEAR} " 
36+ export  PATH=" /usr/lib/postgresql/${version} /bin:$PATH " 
3637
37-   if  [[ " ${TRAVIS_INIT} " ==  upstart ]];  then 
38-     start_cmd=" sudo service postgresql start ${version} " 
39-     stop_cmd=" sudo service postgresql stop" 
40-   elif  [[ " ${TRAVIS_INIT} " ==  systemd ]];  then 
41-     start_cmd=" sudo systemctl start postgresql@${version} -main" 
42-     stop_cmd=" sudo systemctl stop postgresql" 
43-   fi 
38+ if  [[ " ${TRAVIS_INIT} " ==  upstart ]];  then 
39+   start_cmd=" sudo service postgresql start ${version} " 
40+   stop_cmd=" sudo service postgresql stop" 
41+ elif  [[ " ${TRAVIS_INIT} " ==  systemd ]];  then 
42+   start_cmd=" sudo systemctl start postgresql@${version} -main" 
43+   stop_cmd=" sudo systemctl stop postgresql" 
44+ else 
45+   echo  " Unsupported TRAVIS_INIT: ${TRAVIS_INIT} " 
46+   return  1
47+ fi 
48+ 
49+ ${stop_cmd} 
4450
45-   ${stop_cmd} 
51+ #  Jeśli klaster istnieje, usuń go (bez opcji --force, która generowała błąd)
52+ if  sudo pg_lsclusters |  grep -q " ^${version} [[:space:]]\+main" ;  then 
53+   echo  " Dropping existing PostgreSQL cluster ${version} /main" 
54+   sudo pg_dropcluster --stop " ${version} " ||  true 
55+ fi 
4656
47-    sudo pg_createcluster ${version}  main
57+ sudo pg_createcluster " ${version} " 
4858
49-   sudo bash -c " 
50- 	if [[ -d /var/ramfs && ! -d \" /var/ramfs/postgresql/${version} \"  ]]; then 
59+ sudo sed -i " s/^port = .*/port = ${port} /" " /etc/postgresql/${version} /main/postgresql.conf" 
60+ 
61+ for  existing_version  in  $( pg_lsclusters |  grep " ${port} " |  awk ' {print $1}' ) ;  do 
62+   if  [ " ${existing_version} " !=  " ${version} " ;  then 
63+     sudo pg_ctlcluster " ${existing_version} " ||  true 
64+   fi 
65+ done 
66+ 
67+ sudo bash -c " 
68+   if [[ -d /var/ramfs && ! -d \" /var/ramfs/postgresql/${version} \"  ]]; then 
5169    mkdir -p /var/ramfs/postgresql 
52- 	  cp -rp \" /var/lib/postgresql/${version} \"  \" /var/ramfs/postgresql/${version} \"  
53- 	fi 
54-   "   & > /dev/null
70+     cp -rp \" /var/lib/postgresql/${version} \"  \" /var/ramfs/postgresql/${version} \"  
71+   fi 
72+ " & > /dev/null
73+ 
74+ sudo sed -i " s/^local.*postgres.*peer$/local   all             postgres                                trust/" " /etc/postgresql/${version} /main/pg_hba.conf" 
75+ sudo sed -i " s/^host.*all.*all.*127.0.0.1\\ /32.*md5$/host    all             all             127.0.0.1\\ /32            trust/" " /etc/postgresql/${version} /main/pg_hba.conf" 
76+ 
77+ ${start_cmd} 
78+ echo  " ${start_cmd} " 
5579
56-   ${start_cmd} 
57-   echo  " ${start_cmd} " 
80+ sleep 2
5881
59-   pushd  / & > /dev/null ||  true 
60-   for  port  in  5432 5433;  do 
61-     sudo -u postgres createuser -s -p " ${port} " 
62-     sudo -u postgres createdb -O travis -p " ${port} " 
63-   done  & > /dev/null
64-   popd  & > /dev/null ||  true 
82+ pushd  / & > /dev/null ||  true 
83+ sudo -u postgres createuser -s -p " ${port} " 
84+ sudo -u postgres createdb -O travis -p " ${port} " 
85+ popd  & > /dev/null ||  true 
6586}
0 commit comments