0

我想要得到一個與PostgreSQL一起工作的Rails應用程序,但發生了一些奇怪的事情。我的朋友們能夠安裝PostgreSQL和執行:試圖在Mac OS X上啓動Rails服務器時發生奇怪的PostgreSQL錯誤

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是ActiveRecord的PostgreSQL適配器用來確定表的結構,錯誤表明您的數據庫中沒有「報告」。當你耙db:migrate時,你會遇到同樣的問題;因此您的應用程序初始化可能會發生故障*在*'db:migrate'之前會發生任何用處。你使用哪些插件?你有'config/initializers'中的任何東西嗎? –

回答

2

您是否運行rake db:migrate

+0

它給了我同樣的錯誤,當我嘗試耙分貝:遷移 - 耙中止! PG ::錯誤:錯誤:關係「報告」不存在.... etc – kyothine

+0

什麼關於rake db:重置或rake db:drop&rake db:create(警告:您將丟失本地數據庫中的任何數據如果你有任何!) –

+0

rake db:drop and rake db:create似乎什麼都不做,因爲當我運行「rake db:reset」時,它仍然會讓我的rake中止!錯誤。 – kyothine

0

WHERE a.attrelid = '"reports"'::regclass ...有太多的引號。它應該是WHERE a.attrelid = 'reports'::regclass ...

+0

有趣 - 你知道這個文件應該在哪個文件中嗎?我會嘗試糾正它 – kyothine

+0

對不起,我不知道RoR。可能它以某種方式假定「報告」是一個表名或列名,但在這種情況下它是一個字符串文字。 – wildplasser

+1

引號是好的,有問題的SQL是ActiveRecord的'\ d報告'版本,但表格還沒有,因此轉換失敗。這是應用程序初始化階段的一個雞蛋問題。 –