David M
2012-Oct-24  10:08 UTC
How to configure PostgreSQL''s test database before testing?
My website uses PostgreSQL and its full-text search. For that to work, I 
need to execute some configuration queries in order to configure some 
full-text search extensions.
This is what I have written in my seeds.rb file to configure the 
development database:
ActiveRecord::Base.connection.execute("CREATE EXTENSION unaccent;")
ActiveRecord::Base.connection.execute("ALTER TEXT SEARCH DICTIONARY
unaccent (RULES=''unaccent'');")
ActiveRecord::Base.connection.execute("CREATE TEXT SEARCH CONFIGURATION es
( COPY = spanish );")
ActiveRecord::Base.connection.execute("ALTER TEXT SEARCH CONFIGURATION es
  ALTER MAPPING FOR hword, hword_part, word
  WITH unaccent, spanish_stem;")
This works perfectly in develpment.
Now I want to run some search tests, but when I execute my functional 
tests, I get an error saying that the extension is not configured:
ActiveRecord::StatementInvalid: PG::Error: ERROR:  function unaccent(text) does
not exist
So I assume I have to do the same that I did for development, but for the 
test environment.
How can I do it in a clean way?
-- 
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To view this discussion on the web visit
https://groups.google.com/d/msg/rubyonrails-talk/-/pVLjZCgazGcJ.
For more options, visit https://groups.google.com/groups/opt_out.
Rob Biedenharn
2012-Oct-24  12:23 UTC
Re: How to configure PostgreSQL''s test database before testing?
RAILS_ENV=test rake db:migrate
Or you might have to specify:
RAILS_ENV=test rake db:migrate:up VERSION={put your migration number here}
It''s likely that the normal db:test:prepare task doesn''t
support these extensions.
-Rob
On Oct 24, 2012, at 6:08 AM, David M wrote:
> My website uses PostgreSQL and its full-text search. For that to work, I
need to execute some configuration queries in order to configure some full-text
search extensions.
> 
> This is what I have written in my seeds.rb file to configure the
development database:
> 
> ActiveRecord::Base.connection.execute("CREATE EXTENSION
unaccent;")
> ActiveRecord::Base.connection.execute("ALTER TEXT SEARCH DICTIONARY
unaccent (RULES=''unaccent'');")
> ActiveRecord::Base.connection.execute("CREATE TEXT SEARCH
CONFIGURATION es ( COPY = spanish );")
> ActiveRecord::Base.connection.execute("ALTER TEXT SEARCH CONFIGURATION
es
>   ALTER MAPPING FOR hword, hword_part, word
>   WITH unaccent, spanish_stem;")
> This works perfectly in develpment.
> 
> Now I want to run some search tests, but when I execute my functional
tests, I get an error saying that the extension is not configured:
> 
> ActiveRecord::StatementInvalid: PG::Error: ERROR:  function unaccent(text)
does not exist
> So I assume I have to do the same that I did for development, but for the
test environment.
> 
> How can I do it in a clean way?
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
> To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
> To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
> To view this discussion on the web visit
https://groups.google.com/d/msg/rubyonrails-talk/-/pVLjZCgazGcJ.
> For more options, visit https://groups.google.com/groups/opt_out.
>  
>  
-- 
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit https://groups.google.com/groups/opt_out.