Эта ошибка выдается, когда в той же транзакции произошла более ранняя ошибка. Найдите и устраните эту ошибку. Вы можете использовать точки сохранения, если ожидаете определенной ошибки и не хотите откатить всю транзакцию.
Редактировать, некоторые уточнения
Чтобы уточнить, в случаях, когда я видел ошибку, поток был примерно следующим:
BEGIN; -- start of transaction
SOME QUERY; -- Causes error but error is ignored
SECOND QUERY; -- Causes the error you get because it is still in the same transaction
После ошибки транзакция должна быть откатана и запущена новая, прежде чем вы сможете продолжить, или вы должны откатиться до точки сохранения.
Возможно, вы столкнулись с каким-то другим условием, которое вызывает эту ошибку, но, возможно, вам следует проверить журналы в PGDATA / pg_log, чтобы убедиться, что ваш движок регистрирует, что некоторые ошибки игнорируются.
Если это не поможет, вы можете попытаться создать журнал всех реальных запросов (вместо кода rails), выполненных во время миграции.