Я использую db/structure.sql
для сохранения нашего состояния БД, поскольку у нас есть расширения PostGIS
и встроенные функции, которые делают использование schema.rb
нецелесообразным.
При запуске db:structure:dump
рельсы имеют нечетное поведение установки путей поиска в верхней части И в нижней части файла. Проблема здесь в том, что путь поиска вверху неверен, в результате чего db:schema:load
терпит неудачу.
Я редактирую его вручную в данный момент (т.е. добавляя PostGIS
к верхнему пути поиска), но было бы неплохо, если бы я мог как-то правильно установить путь поиска с помощью задачи дампа.
database.yml
development: &dev
adapter: postgis
database: myapp_dev
host: localhost
encoding: utf8
template: template0 # Required for UTF8 encoding
postgis_extension: true
schema_search_path: "public,postgis"
дб /structure.sql
--
-- PostgreSQL database dump
--
SET statement_timeout = 0;
SET lock_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET search_path = public, pg_catalog;
... Table / Sequence / Index creation happens here ...
--
-- PostgreSQL database dump complete
--
SET search_path TO public,postgis;
... Migrations inserted here ...
Проблема здесь в том, что таблицы нуждаются в PostGIS
в создаваемом пути поиска (они все-таки используют типы данных PostGIS
)
Я предполагаю, что второй набор путей поиска добавляется в результате путей поиска, установленных в database.yml
.
Возможно ли, чтобы рельсы установили правильный путь поиска в верхней части файла?