Прежде всего, мне нужно запустить "rake RAILS_ENV = test ...", чтобы наборы тестов попали в мою тестовую БД. Раздражает, но жить хорошо.
Однако, когда я делаю это, я получаю длинный поток ошибок, таких как:
> rake RAILS_ENV=test -I test test:units
psql:/path/to/project/db/test_structure.sql:33: ERROR: function "armor" already exists with same argument types
[and many more]
Похоже, что некоторые определения БД загружаются без необходимости. Я не могу найти упоминания об этом в Google, поэтому мне было интересно, видели ли это другие?
Я использую базу данных PostgreSQL со следующим в моей среде.rb:
config.active_record.schema_format = :sql
и использование Rails 2.3.5 с рейком 0.8.7.
На данный момент я исправил это, но забыл как! Я думаю, что я мог загрузить pgcrypt в схему шаблона, поэтому база данных создала «пустую» базу данных с уже загруженной, а затем rails переопределил функции из сохраненной схемы. Выгрузка функций из базы данных шаблонов исправила бы это.