我想在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有他的右马的钱。很酷,它的作品。不过,我真的很想知道这个神秘的埃德温家伙。 ;) –