ruby-on-rails - rails + Postgis : error cannot drop table spatial_ref_sys

标签 ruby-on-rails postgresql postgis

rails 5
PostgreSQL 9.4.10
Postgis 2.1.8

当我尝试 rake db:reset 时,控制台显示错误

rake aborted! ActiveRecord::StatementInvalid:
PG::DependentObjectsStillExist: ERROR:  cannot drop table
spatial_ref_sys because extension postgis requires it HINT:  You can
drop extension postgis instead. : DROP TABLE "spatial_ref_sys" CASCADE

我是 psql 和 postgis 的新手,我们将不胜感激。

最佳答案

我在使用 enable_extension :postgis 创建迁移时遇到了同样的问题。这具有启用扩展的预期效果,但它也更新了我的 db/schema.rb 文件以包含此 spatial_ref_sys 表,这是 postgis 所需的。

但是,我们不希望 db/schema.rb 文件包含这个表,因为那样的话 db:dropdb:reset 将尝试删除该表,我们将收到此错误。

要告诉 Rails 忽略此表,我们可以将以下内容添加到 config/environment.rb 的末尾:

ActiveRecord::SchemaDumper.ignore_tables = ["spatial_ref_sys"]

此外,不要忘记从 db/schema.rb 中删除 create_table 语句。

关于ruby-on-rails - rails + Postgis : error cannot drop table spatial_ref_sys,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40882420/

相关文章:

ruby-on-rails - 错误 : column "increment_by" does not exist - Postgres 10 and Rails 5

ruby-on-rails - 将子类的名称存储在多态关联的数据库列中 - rails

sql - 将多个值组合到 Postgres 中的一个单元格中

java - PostgreSQL 上的 Hibernate 架构生成 : wrong column type UUID instead of INET

postgresql - 如何将 OSM 导出到包含所有城市和街道名称的数据库?

ruby-on-rails - Rails for ActionMailer - 如何禁用某个邮件程序的布局

ruby-on-rails - 编辑属于帖子的评论

python - 我怎样才能停止Python中的循环迭代

postgresql - PostGIS中栅格分辨率较低

postgresql - 多边形点距其质心的最远距离