Skip to content

Commit dd9e846

Browse files
fix: Ensure PostgreSQL uses default port 5432
1 parent 434b2f2 commit dd9e846

File tree

1 file changed

+50
-29
lines changed

1 file changed

+50
-29
lines changed
Lines changed: 50 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
travis_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}" main || true
55+
fi
4656

47-
sudo pg_createcluster ${version} main
57+
sudo pg_createcluster "${version}" main
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}" main stop || 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}" travis
62-
sudo -u postgres createdb -O travis -p "${port}" travis
63-
done &>/dev/null
64-
popd &>/dev/null || true
82+
pushd / &>/dev/null || true
83+
sudo -u postgres createuser -s -p "${port}" travis
84+
sudo -u postgres createdb -O travis -p "${port}" travis
85+
popd &>/dev/null || true
6586
}

0 commit comments

Comments
 (0)