J'utilise PostgreSQL v9.0.1
avec Rails
(et il est DEPS) @v2.3.8
, en raison de l'utilisation de la capacité texte intégral de postgres, j'ai une table qui est définie comme:ERREUR: Vous devez être propriétaire de la langue 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, );
Notez la dernière ligne, cela s'assure que l'enregistrement actif n'est pas capable de le traiter avec le dumper de schéma standard, donc je dois définir config.active_record.schema_format = :sql
dans ./config/environment.rb
; et utilisez rake db:test:clone_structure
au lieu de rake db:test:clone
.
Rien de tout cela est trop remarquable, seul inconvénient - mais rake db:test:clone_structure
échoue avec l'erreur:
ERROR: must be owner of language plpgsql
En raison de la ligne #16
dans mon résultat ./db/development_schema.sql
:
CREATE OR REPLACE PROCEDURAL LANGUAGE plpgsql;
Sous PostgreSQL v9.0+
le langage plpsql
est installé par le super-utilisateur, à modèle initial, qui est ensuite disponible pour le schéma nouvellement créé.
Je ne peux pas exécuter des tests sur ce projet sans résoudre cela, et même éditer ./db/development_schema.sql
est manuellement futile car il est régénéré à chaque fois que je lance rake db:test:clone_structure
(et ignoré par rake db:test:clone
).
J'espère que quelqu'un peut faire la lumière sur ce sujet?
Note: Je l'ai utilisé à la fois la pierre précieuse adaptateur pg 0.9.0
et la pierre précieuse postgres
à la version 0.7.9.2008.01.28
- à la fois afficher un comportement identique. Mes coéquipiers exécutent PostgreSQL v8.4
où l'installation de la langue est une étape manuelle.
J'ai considéré que je devais supprimer le langage 'pl/pgsql', et l'installer manuellement à chaque fois. –