我正在使用带有Rails(及其依赖项)@v2.3.8的PostgreSQL v9.0.1。由于使用了postgres的全文本能力,我定义了一个表如下:
这些都不算太出奇,只是不方便 - 然而,rake db:test:clone_structure失败并显示错误:
ERROR: must be owner of language plpgsql
这是由于我在生成的./db/development_schema.sql文件中的第16行所致:
CREATE OR REPLACE PROCEDURAL LANGUAGE plpgsql;
在PostgreSQL v9.0+中,超级用户通过初始模板安装plpsql语言,然后该语言可用于新创建的模式。
如果不解决这个问题,我无法对此项目运行测试,即使手动编辑./db/development_schema.sql也是徒劳无功的,因为每次运行rake db:test:clone_structure时它都会被重新生成(并被rake db:test:clone忽略)。
希望有人能为我解决这个问题?注意: 我同时使用了
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, );请注意最后一行,这确保active record无法使用标准模式转储器处理它,因此我必须在./config/environment.rb中设置config.active_record.schema_format =:sql; 并且使用rake db:test:clone_structure而不是rake db:test:clone。
这些都不算太出奇,只是不方便 - 然而,rake db:test:clone_structure失败并显示错误:
ERROR: must be owner of language plpgsql
这是由于我在生成的./db/development_schema.sql文件中的第16行所致:
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
适配器gem 和 版本为0.7.9.2008.01.28
的postgres
gem - 它们都表现出相同的行为。
我的团队成员运行的是PostgreSQL v8.4
,其中语言安装是手动步骤。
pl/pgsql
语言,每次手动安装。 - Lee Hambley