2

我目前正在开发一个在开发和生产中都使用 PostgreSQL 的 Rails 应用程序。我开始在笔记本电脑上进行开发,但现在我想在新桌面上开始开发(两者都使用 Ubuntu 作为操作系统)。我在笔记本电脑上提交了所有更改,在桌面上克隆了 git,安装了所需的 gem,安装了 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 开发过该应用程序,所以我不确定为什么会出现这些奇怪的错误。当我在我的新开发机器上克隆我的仓库时,我错过了一步吗?

谢谢!

4

1 回答 1

5

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

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

于 2013-05-05T15:14:34.477 回答