Ruby on rails 升级到Rails 5.2,can和x27;t启动,ActiveRecord::StatementInvalid:PG::UndefinedTable:错误:关系不存在

Ruby on rails 升级到Rails 5.2,can和x27;t启动,ActiveRecord::StatementInvalid:PG::UndefinedTable:错误:关系不存在,ruby-on-rails,Ruby On Rails,使用新数据库,运行bundle exec-rails-db:structure:load或rails-db:create或rails-db:migrate或bin/rails-db:setup rails aborted! ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation "clients" does not exist LINE 8: WHERE a.attrelid = '

使用新数据库,运行
bundle exec-rails-db:structure:load
rails-db:create
rails-db:migrate
bin/rails-db:setup

rails aborted!
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  relation "clients" 
does not exist
LINE 8:                WHERE a.attrelid = '"clients"'::regclass
...etc                                      ^
我很高兴知道如何调试这个。在某些时候,一些代码正在调用客户机模型,但它是不可见的。什么可能要求客户机表在引导前存在

编辑:

没有迁移被删除,没有。应用程序在有数据库的地方可以在本地正常启动:这首先发生在CI中,它从零开始启动

下面是stacktrace,它显示了我在Flipper初始值设定项中注释掉以下代码后缺少的另一个表:

Client::Identifiers::IDENTIFER_ID_MAPPING.each do |client_identifier, client_id|
  Flipper.register(client_identifier) do |actor|
    actor&.client_id == client_id
  end
end

但是当您加载结构时,初始化器代码不应该在引导中运行,对吗?而且确实没有在Rails 4.2.10中运行(从该版本升级到5.2)

将初始值设定项中的模型调用包装为

Rails.configuration.after_initialize do
  # Model calls 
end

获取要启动的应用程序。必须在引导过程中比在Rails 4中更早地调用初始值设定项。编辑:事实上,这是线程

错误的一部分…etc可能与此有关您是否删除了一些迁移?请告诉我们更多可能有助于您达到此阶段的信息。您的初始值设定项中是否有尝试使用
客户机
模型的信息?ActiveRecord使用这一点SQL来计算
客户机
表的结构(即
客户机
模型),错误是告诉您没有这样的表。因此,我对Rails初创公司中尝试使用
客户机
模型的某些东西感到好奇。伴随该异常的堆栈跟踪可能有助于告诉您问题所在。