ruby-on-rails – Rails PostGIS错误迁移数据库

我正在关注Daniel Azuma在 geospatial analysis with rails的演讲,但是当我运行rake db:在第二个项目中迁移时,我遇到困难.

我的设置细节如下:我正在运行Postgresql Postgres.app,它给了Postgres 9.1.3版本和PostGIS 2.0.0版本.我遇到几个问题与database.yml文件,并运行迁移. (我已经添加了相关的宝石,并在application.rb中要求他们的信息)

我的database.yml文件如下所示:

development:
   adapter: postgis
   postgis_extension: true
   host: localhost
   encoding: unicode
   database: my_app_development
   pool: 5
   username: my_app
   password:

如果我添加以下行schema_search_path:“public,postgis”我得到:

rake aborted!
 PG::Error: ERROR:  schema "postgis" does not exist
 : SET search_path TO public,postgis

如果我删除该行我尝试迁移我的数据库时收到以下错误:

rake aborted!
PG::Error: ERROR:  relation "geometry_columns" does not exist
LINE 1: SELECT * FROM geometry_columns WHERE f_table_name='schema_mi...                       ^
: SELECT * FROM geometry_columns WHERE f_table_name='schema_migrations'

有没有人想到如何解决这些问题?

解决方法

将PostGIS扩展在公共模式中,并在postgis模式中重新创建它.
DROP EXTENSION PostGIS;

CREATE SCHEMA postgis;
CREATE EXTENSION PostGIS WITH SCHEMA postgis;
GRANT ALL ON postgis.geometry_columns TO PUBLIC;
GRANT ALL ON postgis.spatial_ref_sys TO PUBLIC

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...