Merge pull request #2162 from Pistos/cucumber-postgresql-non-root

Allow Cucumber tests to run with PostgreSQL with a non-root user.
This commit is contained in:
Daniel Grippi 2011-10-12 19:15:01 -07:00
commit cfe1506847

View file

@ -2,6 +2,26 @@
# licensed under the Affero General Public License version 3 or later. See
# the COPYRIGHT file.
# disable_referential_integrity doesn't work when using PostgreSQL
# with a non-root user.
# See http://kopongo.com/2008/7/25/postgres-ri_constrainttrigger-error
module ActiveRecord
module ConnectionAdapters
class PostgreSQLAdapter < AbstractAdapter
def disable_referential_integrity(&block)
transaction {
begin
execute "SET CONSTRAINTS ALL DEFERRED"
yield
ensure
execute "SET CONSTRAINTS ALL IMMEDIATE"
end
}
end
end
end
end
DatabaseCleaner::ActiveRecord::Truncation.class_eval do
# You could argue that this technically isn't truncation. You'd be right.
# But something in the MySQL adapter segfaults (!) on actual truncation, and we
@ -13,4 +33,4 @@ DatabaseCleaner::ActiveRecord::Truncation.class_eval do
end
end
end
end
end