aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorMike Gunderloy <MikeG1@larkfarm.com>2008-12-29 20:46:20 -0600
committerYehuda Katz <wycats@gmail.com>2009-01-01 00:13:11 -0800
commitabfa46e3a6ba0e91f377a073d208f31f99a7a008 (patch)
tree1e5ac0c1dacd36d880e089ac1963a0c93ca7f432 /activerecord
parentab7c25d51174779547ab74bcd23e40204891e370 (diff)
downloadrails-abfa46e3a6ba0e91f377a073d208f31f99a7a008.tar.gz
rails-abfa46e3a6ba0e91f377a073d208f31f99a7a008.tar.bz2
rails-abfa46e3a6ba0e91f377a073d208f31f99a7a008.zip
Add transaction check to SQLite2 adapter to fix test_sqlite_add_column_in_transaction_raises_statement_invalid [#1669 state:resolved]
Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb4
1 files changed, 4 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb b/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb
index 84f8c0284e..9387cf8827 100644
--- a/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb
@@ -402,6 +402,10 @@ module ActiveRecord
end
def add_column(table_name, column_name, type, options = {}) #:nodoc:
+ if @connection.respond_to?(:transaction_active?) && @connection.transaction_active?
+ raise StatementInvalid, 'Cannot add columns to a SQLite database while inside a transaction'
+ end
+
alter_table(table_name) do |definition|
definition.column(column_name, type, options)
end