我目前正在开发一个在开发和生产中使用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开发应用程序,所以我不确定为什么我会收到这些奇怪的错误。当我在我的新开发机器上克隆我的回购时,我是否错过了一步?
谢谢!
答案 0 :(得分:5)
PostgreSQL告诉你他错过了一个user_id列,因此你必须启动rake db:migrate
检查环境中的两个db/schema.rb
。在第一个环境中打开控制台,并确保工作表具有user_id属性。