我想在Ubuntu上與Postgres9.1使用Rails 2.3.5應用程序(部署在Apache2與Phusion乘客)。當我試圖訪問它,抱怨表中不存在該應用程序將引發此錯誤:rails SQL查詢報告與postgres失敗,但成功從psql命令行工具
PGError: ERROR: relation "users" does not exist
LINE 4: WHERE a.attrelid = '"users"'::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 = '"users"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
但是如果我剪切和粘貼在PSQL(CMDLINE客戶端)相同的查詢,它工作得很好。 用戶表也存在。我嘗試了一次rake db:reset和'rake db:migrate',但似乎沒有幫助。
我還驗證了ActiveRecord :: Base.connection從rails-app中的腳本/控制檯成功,這意味着與數據庫的連接使用database.yml中配置的憑據。
我迷路了..任何線索,以補救這一點將大大讚賞。
我敢打賭,你是從Rails內部連接到不同的數據庫 –
非常感謝你的迴應,Edwin和「a_horse ..」。 T'was連接到錯誤的數據庫。我配置了開發模式的應用程序(通過environment.rb)。但是我的設置正在被Phusion Passenger(我使用的是apache)覆蓋。它默認將RailsEnv設置爲「生產」。由於我之前使用'rake db:create:all',prod DB確實已經創建,但我的'rake db:migrate'只填充了開發數據庫。我必須更改apache站點配置以設置RailsEnv開發,如下所示:http://www.modrails.com/documentation/Users%20guide%20Apache.html#rails_env。 – Don
@唐:a_horse_with_no_name有他的右馬的錢。很酷,它的作品。不過,我真的很想知道這個神祕的埃德溫傢伙。 ;) –