切换开发机器后的PostgreSQL错误(Rails开发)

时间:2013-05-05 15:02:53

标签: ruby-on-rails postgresql

我目前正在开发一个在开发和生产中使用PostgreSQL的Rails应用程序。我开始在笔记本电脑上开发,但现在我想在新桌面上开始开发(都使用Ubuntu作为操作系统)。我在笔记本电脑上进行了所有更改,在桌面上克隆了git,安装了所需的宝石,安装了PostgreSQL,并进行了rake db:create和migrate。但是,当我在笔记本电脑上运行应用程序时,我仍然会收到数据库错误。

例如:

ActiveRecord::StatementInvalid in UsersController#show
PG::Error: ERROR:  column works.user_id does not exist
LINE 1: SELECT "works".* FROM "works"  WHERE "works"."user_id" = 1
                                             ^
: SELECT "works".* FROM "works"  WHERE "works"."user_id" = 1

似乎SQL语法包含不属于那里的添加引号。同样,我的笔记本电脑上也不会出现此错误。

正确设置了database.yml文件:

development:
  adapter: postgresql
  encoding: unicode
  database: app_development
  pool: 5
  username: bruce

我从未使用sqlite开发应用程序,所以我不确定为什么我会收到这些奇怪的错误。当我在我的新开发机器上克隆我的回购时,我是否错过了一步?

谢谢!

1 个答案:

答案 0 :(得分:5)

PostgreSQL告诉你他错过了一个user_id列,因此你必须启动rake db:migrate

检查环境中的两个db/schema.rb。在第一个环境中打开控制台,并确保工作表具有user_id属性。