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:drop
或 db: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/