【问题标题】:Rails test error. PG::DependentObjectsStillExist: ERROR: cannot drop table addr because extension postgis_tiger_geocoder requires itRails 测试错误。 PG::DependentObjectsStillExist: 错误:无法删除表地址,因为扩展 postgis_tiger_geocoder 需要它
【发布时间】:2019-09-10 01:43:28
【问题描述】:

尝试在 Rails 中运行测试

PG::DependentObjectsStillExist: ERROR: cannot drop table addr because extension postgis_tiger_geocoder requires it HINT: You can drop extension postgis_tiger_geocoder instead.

无论是 RSpec 还是 minitest,都会出现同样的错误。我可能搞砸了一些迁移到 Rails 6 的东西。

错误指向 db/schema.rb:21 是

create_table "addr", primary_key: "gid", id: :integer, default: -> { "nextval('addr_gid_seq'::regclass)" }, force: :cascade do |t|

这大概与我想要保留的 postgis_tiger_geocoder 有关。表 addr 位于我假设与 postgis_tiger_geocoder 一起安装的 Tiger 数据模式中。但不知道是什么试图放弃它。在重新创建之前必须删除 addr 吗?

运行 2.8.1. Tiger Geocoder Enabling your PostGIS database: Using Extension 的测试第 3 项确认我的安装是正确的。

我该如何摆脱困境?

【问题讨论】:

    标签: ruby-on-rails postgresql postgis rspec-rails minitest


    【解决方案1】:

    我做了很多事情,但我认为这是在 config/application.rb 中添加一行 config.active_record.schema_format = :sql

    我通过Why is rails 5 adding nextval method in schema file? 找到的https://edgeguides.rubyonrails.org/active_record_migrations.html#types-of-schema-dumps 解决了一个相关问题。

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 1970-01-01
      • 2017-04-09
      • 1970-01-01
      • 1970-01-01
      • 2017-04-14
      • 2020-02-19
      • 2016-01-23
      相关资源
      最近更新 更多