From 87f33e57ef0e79201f5d2aa9ad9d534b973ba403 Mon Sep 17 00:00:00 2001 From: Nick Sieger Date: Wed, 26 Nov 2008 10:12:01 -0600 Subject: [PATCH] JRUBY-3186: disable referential integrity for PG (Ryan Bell) --- History.txt | 1 + lib/jdbc_adapter/jdbc_postgre.rb | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/History.txt b/History.txt index 503e4d176..30a308335 100644 --- a/History.txt +++ b/History.txt @@ -13,6 +13,7 @@ from court3nay) - JRUBY-2715: Add create/drop database methods to Postgres (Peter Williams) - JRUBY-3183: Fix structure dump for Postgres (Ryan Bell) +- JRUBY-3186: disable referential integrity for PG (Ryan Bell) - Authoritative repository now hosted at git://github.com/nicksieger/activerecord-jdbc-adapter.git; rubyforge svn trunk cleaned out. diff --git a/lib/jdbc_adapter/jdbc_postgre.rb b/lib/jdbc_adapter/jdbc_postgre.rb index 7686b54e4..fce989396 100644 --- a/lib/jdbc_adapter/jdbc_postgre.rb +++ b/lib/jdbc_adapter/jdbc_postgre.rb @@ -336,6 +336,13 @@ def quoted_date(value) value.strftime("%Y-%m-%d %H:%M:%S") end + def disable_referential_integrity(&block) #:nodoc: + execute(tables.collect { |name| "ALTER TABLE #{quote_table_name(name)} DISABLE TRIGGER ALL" }.join(";")) + yield + ensure + execute(tables.collect { |name| "ALTER TABLE #{quote_table_name(name)} ENABLE TRIGGER ALL" }.join(";")) + end + def rename_table(name, new_name) execute "ALTER TABLE #{name} RENAME TO #{new_name}" end