我已经吹走了我的数据库,现在在迁移回工作数据库时遇到了问题。
该错误看起来与已经发布的其他问题相同,但我不知道如何解决它。 我可以更改哪些内容来恢复我的环境? 怎么会变成这样?
我已经验证了数据库确实存在,但迁移步骤未创建表。
错误如下所示:
$ 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 任务以跟踪此代码。