PG::错误:错误:在开发与生产中不存在关系(rails 3.1.3)



我已经吹走了我的数据库,现在在迁移回工作数据库时遇到了问题。

该错误看起来与已经发布的其他问题相同,但我不知道如何解决它。 我可以更改哪些内容来恢复我的环境? 怎么会变成这样?

我已经验证了数据库确实存在,但迁移步骤未创建表。

错误如下所示:

$ RAILS_ENV="development" bundle exec rake db:test:prepare
rake aborted!
PG::Error: ERROR:  relation "documents" does not exist
LINE 4:              WHERE a.attrelid = '"documents"'::regclass
                                        ^

注意:尝试以下任何一种方法,我都会得到相同的结果:

$ bundle exec spec
$ RAILS_ENV="development" bundle exec rake db:migrate
$ RAILS_ENV="development" bundle exec rake db:test:prepare
$ RAILS_ENV="development" bundle exec rake db:schema:load

理论一:

这可能与我的迁移编写方式有关:我有一个类段落:

class Paragraph < ActiveRecord::Base
  belongs_to :document
  validates_presence_of :document, :document_index
  validates_uniqueness_of :document_index, scope: [:document_id]

但是,最初在开发此内容时,我添加了模型"文档"LAST。我应该以某种方式更改迁移顺序吗?

理论二:当我使用"生产"运行其中任何一个时,它们工作正常(当然我的测试除外)。

因此,配置错误在某种程度上受到数据库配置的影响。

你说什么?

在运行迁移之前,将初始化整个 Rails 环境。因此,可能在初始化过程中执行的代码尝试使用缺少的关系。

使用--trace选项运行 rake 任务以跟踪此代码。

相关内容

  • 没有找到相关文章

最新更新