Есть решение:
Прежде всего, вам нужен PostgreSQL template
с поддержкой функций PostGIS.
Создать базу данных шаблонов:
$ psql -U postgres
> CREATE DATABASE template_postgis WITH TEMPLATE=template1 ENCODING='UTF8';
> \c template_postgis;
> CREATE LANGUAGE plpgsql;
Загрузка необходимых функций PostGIS в шаблон (я использую Homebrew, поэтому найдите пути к вашим файлам 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_postgis
к вашему config/database.yml
следующим образом:
development:
adapter: postgresql
template: template_postgis
database: postgis_db
И - вуаля! Добро пожаловать на борт!