2015-09-22 16 views
5

PostGIS'i Heroku'daki Rails uygulamasında etkinleştirmeye çalışıyorum. AncakHeroku'da Ruby PostGIS desteğini etkinleştirme

gem 'activerecord-postgis-adapter', '3.0.0' 

, benim örneğini açılırken sonra, tam destek etkin görmüyorum:

$ heroku run irb 
Running `irb` attached to terminal... up, run.5549 
irb(main):001:0> require 'rgeo' 
=> true 
irb(main):002:0> RGeo::Geos.supported? 
=> false 

Ben heroku-geo-buildpack ekledik, PostGIS article belirtilen My Gemfileactiverecord-postgis-adapter mücevher içerir Ben daha yeni, gerçek çoklu buildpack formatını kullanıyorum gerçi:

$ heroku buildpacks 
=== staging Buildpack URLs 
1. https://github.com/cyberdelia/heroku-geo-buildpack.git#1.3 
2. https://github.com/heroku/heroku-buildpack-ruby.git#v140 

ben kafam karıştı benim oluşturma işlemi bakmak beri s doğru:

-----> Multipack app detected 
-----> Fetching custom git buildpack... done 
-----> geos/gdal/proj app detected 
     Using geos version: 3.4.2 
     Using gdal version: 1.11.1 
     Using proj version: 4.8.0_1 
-----> Vendoring geo libraries done 
-----> Fetching custom git buildpack... done 
-----> Ruby app detected 
-----> Compiling Ruby/Rails 
... 

Neyi eksik? Eski multi-buildpack yaklaşımı için topladığım için BUILDPACK_URL çevresel değişken setim yok.

+3

Oh, bu utanç verici. Hobi katman veritabanlarının bunu desteklemediği gerçeğini özlemiş gibi görünüyor. Sanırım bu benim problemim, o zaman, bazı hataları görmeyi beklerdim. – pr1001

+0

Evet, yalnızca üretim katmanı veritabanları.Hangi: standart 0 prim 0, standart-2 prim-2, \t standart-4 prim-4, \t standart-5 prim-5, standart-6 prim-6, standart 7 premium-7 enterprise-7, \t enterprise-8 –

+0

Bu sorunun cevabını kesinlikle kabul etmelisiniz. Aynı sorunu vardı ve çözüm hiç de açık değildi. –

cevap

4

PostGIS Heroku Ücretsiz Dyno ile çalışır ve:
- Raylar 4.2
- activerecord-PostGIS adaptörü 3.1.4

Yapmalisin:

  1. senin config/database.yml set böyle:

default: &default 
    adapter: postgis 
    encoding: unicode 
    # For details on connection pooling, see rails configuration guide 
    # http://guides.rubyonrails.org/configuring.html#database-pooling 
    pool: 5 

development: 
    <<: *default 
    database: adopt_your_geek_development 
    username: postgres 
    host: mydb.com 
    port: 9999 
    postgis_extension: postgis 
    schema_search_path: public,postgis 

... 

production: 
    <<: *default 
    database: appname_production 
    username: appname 
    password: <%= ENV['ADOPT_YOUR_GEEK_DATABASE_PASSWORD'] %> 
    postgis_extension: postgis 
    schema_search_path: public,postgis 

  1. buildpacks ekleyin: Aşağıdaki .buildpacks dosyası ile

$ heroku buildpacks:add https://github.com/ddollar/heroku-buildpack-multi.git 

:

$ cat .buildpacks 
https://github.com/cyberdelia/heroku-geo-buildpack.git 
https://github.com/heroku/heroku-buildpack-ruby.git 

  1. Ardından küçük bir monkey yama ekleyiniz config/ortamlar/production.rb

module ActiveRecord 
    module ConnectionHandling 
    class MergeAndResolveDefaultUrlConfig 
     private 
     def config 
     @raw_config.dup.tap do |cfg| 
      if url = ENV['DATABASE_URL'] 
      cfg[@env] ||= {} 
      cfg[@env]["url"] ||= url.try(:gsub, "postgres", "postgis") 
      end 
     end 
     end 
    end 
    end 
end 

Ben özgür Postgres'e ile Heroku serbest Dyno şu anda benim için çalışıyor.

+0

Heroku'daki adamlarla konuştum ve bu çözüm önerileri. "PostGIS, herkese açık beta sürümünde kullanılabilir ve bunu Hobby katmanıyla da deneyebilirsiniz. Ayrıntıyı PostGIS: Rails ve Django Apps ile Geospatial Data Kullanarak (https://devcenter.heroku.com/articles/postgis) bulabilirsiniz." Harika çalışıyor :) - ayda 50 dolar tasarruf – evanjmg

0

Hobby katman veritabanlarının PostGIS'i desteklemediği gerçeğini kaçırdım.

+1

Şimdi destekliyorlar. – Pak

İlgili konular