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

相关文章

以下代码导致我的问题: class Foo def initialize(n=0) @n = n end attr_accessor :n d...
这是我的spec文件,当为上下文添加测试“而不是可单独更新用户余额”时,我得到以下错误. require 's...
我有一个拦截器:DevelopmentMailInterceptor和一个启动拦截器的inititializer setup_mail.rb. 但我想将...
例如,如果我有YAML文件 en: questions: new: 'New Question' other: recent: ...
我听说在RSpec中避免它,let,let !,指定,之前和主题是最佳做法. 关于让,让!之前,如果不使用这些,我该如...
我在Rails中使用MongoDB和mongo_mapper gem,项目足够大.有什么办法可以将数据从Mongoid迁移到 Postgres...