0

Я хочу получить приложение rails, работающее с PostgreSQL, но что-то странное происходит. Мои друзья были в состоянии установить PostgreSQL и выполнить:Странные ошибки PostgreSQL при попытке запустить сервер rails на Mac OS X

sudo su 
su postgres 
createdb development 

следует

rails server 

без каких-либо ошибок. Однако, когда я пытаюсь сделать это, я получаю странную ошибку:

/Users/user/.rvm/gems/ruby-1.9.3-p194/gems/activerecord 3.2.5/lib/active_record/connection_adapters/postgresql_adapter.rb:1151:in `async_exec': PG::Error: ERROR: relation "reports" does not exist (ActiveRecord::StatementInvalid) 

LINE 4:    WHERE a.attrelid = '"reports"'::regclass 
            ^
:    SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull 
      FROM pg_attribute a LEFT JOIN pg_attrdef d 
      ON a.attrelid = d.adrelid AND a.attnum = d.adnum 
     WHERE a.attrelid = '"reports"'::regclass 
      AND a.attnum > 0 AND NOT a.attisdropped 
     ORDER BY a.attnum 

Обратите внимание, что «отчеты» представляет собой модель в приложении.

Для чего это стоит, файл database.yml выглядит следующим образом:

development: 
    adapter: postgresql 
    encoding: unicode 
    database: development 
    pool: 5 
    username: postgres 
    password: post 

(я не знаю, что значит бассейн, но я уже установил мой Postgres пароль, чтобы быть должность)

+0

Есть ли у вас инициализаторы, которые что-либо делают с вашими моделями? –

+0

Что вы подразумеваете под этим? я так не думаю – kyothine

+1

Кажется, что-то в вашей инициализации вашего приложения пытается использовать ваш класс 'Report'. Этот SQL - это то, что использует адаптер PostgreSQL ActiveRecord для определения структуры таблицы, и ошибка указывает, что у вас нет «отчетов» в вашей базе данных. Когда вы «рейка db: migrate», вы получаете ту же проблему; поэтому ваша инициализация приложения, вероятно, виновата, поскольку это происходит * до того, как * 'db: migrate' делает что-нибудь полезное. Какие плагины вы используете? У вас что-нибудь есть в 'config/initializers'? –

ответ

2

Вы бежите rake db:migrate?

+0

это дает мне ту же ошибку, когда я пытаюсь использовать rake db: migrate - rake aborted! PG :: Ошибка: ERROR: отношения «отчеты» не существуют .... и т. Д. – kyothine

+0

как насчет рейка db: сброс или рейк db: drop & rake db: create (предупреждение: вы потеряете любые данные в своей локальной базе данных если у вас их было!) –

+0

rake db: drop and rake db: create ничего не делает, поскольку, когда я запускаю «rake db: reset», он все равно дает мне рейк прерывается! ошибка. – kyothine

0

WHERE a.attrelid = '"reports"'::regclass ... имеет слишком много котировок. Это должно быть WHERE a.attrelid = 'reports'::regclass ...

+0

Интересно - знаете ли вы, в каком файле это должно быть? Я попытаюсь исправить это – kyothine

+0

Простите, я не знаю RoR. Вероятно, он каким-то образом предполагает, что «отчеты» - это имя таблицы или столбца, но в этом контексте это строковый литерал. – wildplasser

+1

Кавычки в порядке, рассматриваемый SQL - это версия '\ d отчетов ActiveRecord', но таблицы еще нет, поэтому сбой происходит. Это проблема chicken'n'egg на этапе инициализации приложения. –

 Смежные вопросы

  • Нет связанных вопросов^_^