2012-01-03 23 views
4

我使用Rails 3.1,我與PostGIS的geometry數據類型的表不完全兼容。這些似乎與rake db:schema:dumprake db:test:clonerake test:*任務不兼容。包含這個數據類型的表只是不被這些rake任務處理和實例化。Rails的PostgreSQL的+ PostGIS幾何數據類型

是否有補丁或解決方案呢?

+0

我有我的PostGIS數據庫指向類似的問題,我們認爲,我們已經把範圍縮小到SchemaDumper方法,可能與spacial_adapter。我還沒有解決方法。 – 2012-01-13 17:17:01

回答

4

有一個解決方案:

首先,你需要一個PostgreSQL template在PostGIS功能的支持。

創建模板數據庫:

$ psql -U postgres 
> CREATE DATABASE template_postgis WITH TEMPLATE=template1 ENCODING='UTF8'; 
> \c template_postgis; 
> CREATE LANGUAGE plpgsql; 

加載必要的PostGIS功能爲模板(我使用的是自制,於是找到路徑到您的PostGIS SQL文件):

$ psql -f /usr/local/share/postgis/postgis.sql template_postgis 
$ psql -f /usr/local/share/postgis/spatial_ref_sys.sql template_postgis 

設置數據庫模板和授予權限:

$ psql -U postgres template_postgis 
> UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template_postgis'; 
> GRANT ALL ON geometry_columns TO PUBLIC; 
> GRANT ALL ON spatial_ref_sys TO PUBLIC; 

然後,添加gem 'postgis_adapter'到您的Gemfile並運行bundle。 之後添加template: template_postgisconfig/database.yml這樣的:

development: 
    adapter: postgresql 
    template: template_postgis 
    database: postgis_db 

而且 - 瞧!歡迎加入!

相關問題