Rails не полностью совместимы с типом данных postgresql + postgis geometry - PullRequest
4 голосов
/ 04 января 2012

Я использую Rails 3.1, и у меня есть таблицы с типом данных PostGIS geometry.Они не совместимы с rake db:schema:dump или rake db:test:clone и rake test:* задачами.Таблицы, содержащие этот тип данных, просто не обрабатываются и не создаются этими задачами с граблями.

Есть ли для этого патч или решение?

1 Ответ

4 голосов
/ 23 января 2012

Есть решение:

Прежде всего, вам нужен 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

И - вуаля! Добро пожаловать на борт!

...