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.