我正在关注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