tom*_*opp 6 postgresql homebrew postgis ruby-on-rails rails-postgresql
我用自制软件更新到最新版本的postgis.(2.1)
brew unlink postgis
brew install postgis
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个迁移,将postgis扩展名改为2.1
rails g migration alter_postgis_version
def change
execute %q{ALTER EXTENSION postgis UPDATE TO "2.1.0";}
end
Run Code Online (Sandbox Code Playgroud)
在第一条评论中运行brew命令,现在我在迁移时遇到以下错误:
PG::UndefinedObject: ERROR: type "geometry" does not exist:
CREATE EXTENSION postgis_tiger_geocoder;/me/.rvm/gems/ruby-2.0.0-
p247@freight_alert/gems/activerecord4.0.0/
lib/active_record/connection_adapters/postgresql/database_statements.rb:128:in `exec'
Run Code Online (Sandbox Code Playgroud)
我在postgis的架构下设置了postgis,所以如果我运行的话
$: set search_path = "$user", postgis,public;
$: \d
List of relations
Schema | Name | Type | Owner
---------+--------------------------+----------+-------------------
postgis | geography_columns | view | me
postgis | geometry_columns | view | me
etc..
$: \d geometry_columns
View "postgis.geometry_columns"
Column | Type | Modifiers
-------------------+------------------------+-----------
f_table_catalog | character varying(256) |
f_table_schema | character varying(256) |
f_table_name | character varying(256) |
f_geometry_column | character varying(256) |
coord_dimension | integer |
srid | integer |
type | character varying(30) |
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试运行:
$: CREATE EXTENSION postgis_tiger_geocoder;
ERROR: type "geometry" does not exist
Run Code Online (Sandbox Code Playgroud)
这对我没有任何意义,因为geometry_columns在关系列表中.
小智 1
遇到了这个。在我重新安装 geos、gdal 和 libspatialite(也重新链接每个)后就消失了。我不能说这是复制/粘贴的秘诀,但可以尝试一下,看看是否可以让它工作:
brew reinstall gdal
brew unlink gdal && brew link gdal
brew reinstall geos
brew unlink geos && brew link geos
brew reinstall libspatialite
brew unlink libspatialite && brew link libspatialite
Run Code Online (Sandbox Code Playgroud)
您可能必须以不同的顺序执行此操作,或者以一种使库按顺序排列的方式一个接一个地重做。也不要卸载 postgis-2.0.x,因为您需要(两个)库进行软升级。
| 归档时间: |
|
| 查看次数: |
1016 次 |
| 最近记录: |