Я создаю приложение для рельсов, которое я клонировал от моего друга. Я использую Ubuntu 13.10, рельсы 3.2.14. Я использую базу данных postgresql, и когда я пытаюсь запустить rake db: migrate, она выдаёт мне ошибку вроде этого:
PG :: UndefinedObject: ERROR: тип "json" не существует LINE 1: ALTER TABLE " Фильтры "ADD COLUMN" search_string "json
Я установил версию pg: - 9.3.1
Выходные данные db работающих рельсов: -psql (9.3.1, сервер 9.1.10)
работает выбор версии (); : -PostgreSQL 9.1.10 для i686-pc-linux-gnu
Почему он показывает версию psql, отличную от версии, подключенной к моей базе данных ??
Мой друг работает над 9.2. 4 Я не знаю, почему возникает эта ошибка, я несколько раз пытался понизить версию, используя команды очистки или удаления, чтобы удалить 9.3.1, и все идет хорошо, но когда я проверяю psql --version, он снова показывает мне 9.3.1. Любое решение ???
Потому что у вас, вероятно, установлены разные пакеты версий клиента и сервера. Сначала я проверю, какие пакеты вы установили:
dpkg -l | grep postgresql
Затем установите серверный пакет 9.3, если у вас его еще нет.
Если он у вас уже есть, проверьте, какие кластеры у вас работают:
pg_lsclusters
Если у вас еще нет кластера 9.3, сделайте его (pg_createcluster
). Если вы это сделаете, запишите номер порта и убедитесь, что вы подключаетесь к нему.
Postgres 9.2 не упакован для Ubuntu 13.10, но 9.1 есть. Попробуйте сделать это так:
sudo apt-get purge postgresql*
sudo apt-get autoremove
sudo apt-get install postgresql-9.1