Я использую PostgreSQL v9.0.1
с Rails
(и это DEPS) @v2.3.8
, благодаря использованию полнотекстового способности Postgres, у меня есть таблица, которая определяется как:ОШИБКА: должен быть владельцем языка plpgsql
CREATE TABLE affiliate_products ( id integer NOT NULL, name character varying(255), model character varying(255), description text, price numeric(9,2), created_at timestamp without time zone, updated_at timestamp without time zone, textsearch_vector tsvector, );
Обратите внимание на последнюю строку, это гарантирует, что активная запись не сможет обработать ее со стандартным самозагрузчиком схемы, поэтому я должен установить config.active_record.schema_format = :sql
в ./config/environment.rb
; и использовать rake db:test:clone_structure
вместо rake db:test:clone
.
Все это не слишком замечательно, только неудобно - однако rake db:test:clone_structure
завершается с ошибкой:
ERROR: must be owner of language plpgsql
Из-за линии #16
в моей результате ./db/development_schema.sql
:
CREATE OR REPLACE PROCEDURAL LANGUAGE plpgsql;
Под PostgreSQL v9.0+
язык plpsql
установлен суперпользователем, первоначальный шаблон, который затем доступен для вновь созданной схемы.
Я не могу запустить тесты по этому проекту без разрешения на это, и даже редактирование ./db/development_schema.sql
вручную бесполезно, как он регенерируется каждый раз, когда я бегу rake db:test:clone_structure
(и игнорируется rake db:test:clone
).
Я надеюсь, что кто-то может пролить свет на это?
Примечание: я использовал как pg 0.9.0
адаптер драгоценный камень, и камень postgres
в версии 0.7.9.2008.01.28
- как отображать идентичное поведение.
Мои товарищи по команде запускают PostgreSQL v8.4
, где языковая установка представляет собой ручной шаг.
Я считаю, что я должен отказаться от языка `pl/pgsql` и установить его вручную каждый раз. – 2010-12-06 19:56:58