Я установил PostgreSQL и драйвер php PDO на свой 14.04 Ubuntu следующим образом:
sudo apt-get install postgresql postgresql-contrib
sudo apt-get install php5-pgsql
Который установил PostgreSQL 9.3 и работал нормально, но теперь я хочу запустить 9.5. Поэтому я обновил пакеты postgresql, добавив репозиторий PostgreSQL после это руководство и обновление пакетов.
Однако phpinfo по-прежнему сообщает 9.3 после перезапуска apache:
PostgreSQL (libpq) версии 9.3.10
Я могу представить, что мне как-то также нужно обновить пакет php5-pgsql? Но как тогда? Или я должен сделать что-нибудь еще?
Хорошо, я решил эту проблему, но какое-то время боролся, поэтому я точно не знаю, какой самый простой способ сделать. Но я опишу рецепт, который, вероятно, подойдет и для других.
Первое важное замечание: я думаю, что решил проблему, поскольку могу использовать новую функцию upsert, представленную в 9.5 (INSERT .. ON CONFLICT DO UPDATE ..). Однако мой phpinfo () по-прежнему сообщает о версии 9.3.
Еще одно слово о проблемной ситуации: после добавления репозитория PostgreSQL и выполнения apt-get upgrade
Видимо, у меня было две версии PostgreSQL.
ls /usr/share/postgresql
9.3 9.5
Итак, чтобы исправить, я сделал:
dpkg --get-selections | grep postgresql
Вы получите список всех установленных связанных пакетов. Я деинсталлировал их все с помощью --purge (вероятно, это удалит и все ваши базы данных, в моем случае это не проблема, так как они были пусты).
sudo apt-get remove --purge postgresql postgresql-9.5 postgresql-contrib etc.
Это давало мне ошибки в некоторых пакетах, но когда я повторил это, в конце концов, все пакеты исчезли. Также сделайте это для драйвера php pdo:
sudo apt-get remove --purge php5-pgsql
Теперь снова установите postgresql, будет установлена только версия 9.5.
sudo apt-get install postgresql postgresql-contrib php5-pgsql