Module: TableRenamable::ConnectionAdapters::Mysql2Adapter
- Defined in:
- lib/table_renamable/connection_adapters/mysql2_adapter.rb
Instance Method Summary collapse
-
#execute(sql, name = nil) ⇒ type
Override execute to reload database info.
Instance Method Details
#execute(sql, name = nil) ⇒ type
Override execute to reload database info
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/table_renamable/connection_adapters/mysql2_adapter.rb', line 10 def execute(sql, name = nil) # set up tries so we don't keep retrying tries = 0 begin tries += 1 # call the actual execut behavior super(sql, name) rescue ActiveRecord::StatementInvalid => e # only try once raise e if tries > 1 # re-raise if it's not an error we care about raise e unless e. =~ /Table.*doesn't exist/ # otherwise we reload and retry TableRenamable::Model.reload_tables sql = TableRenamable::Model.process_sql(sql) retry end end |