Advertisement
Guest User

Untitled

a guest
Aug 2nd, 2015
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.70 KB | None | 0 0
  1. module ActiveRecord
  2.  
  3. class Migration
  4.  
  5.  
  6. def self.rename_table_if_needed(old_name, new_name)
  7. rename_table(old_name, new_name)
  8. rescue => ex
  9. puts "rename_table(#{old_name},#{new_name}) failed #{ex.message}"
  10. end
  11.  
  12. def self.reset_sequence(model)
  13. if Biorails::Check.oracle?
  14. num = model.maximum(:id)+1
  15. name = "#{model.table_name}_seq"
  16. current_num = model.connection.select_one("select #{name}.nextval from dual")["nextval"].to_i
  17. diff = (num-current_num)
  18. if diff > 0
  19. puts "Update #{name} from #{current_num} to greater than #{num}"
  20. execute "alter sequence #{name} increment by #{diff} nocache"
  21. execute "select #{name}.nextval from dual"
  22. execute "alter sequence #{name} increment by 1 cache 20"
  23. execute "select #{name}.nextval from dual"
  24. end
  25. end
  26. rescue Exception => ex
  27. puts "Failed to update sequence on #{model} #{ex.message}"
  28. end
  29.  
  30. def self.add_column_if_missing(table_name, column_name, type, options = {})
  31. unless table_exists?(table_name.to_s) && columns(table_name.to_s).any? { |i| i.name == column_name.to_s }
  32. add_column table_name, column_name, type, options
  33. end
  34. rescue => ex
  35. puts ex.message
  36. end
  37.  
  38. def self.add_index_unless_exists(table_name, columns, options = {})
  39. add_index(table_name, columns, options)
  40. rescue => ex
  41. puts "skipped index #{ex.message}"
  42. end
  43.  
  44. def self.run_sql(sql)
  45. execute sql
  46. rescue => ex
  47. puts sql
  48. puts "Error: #{ex.message}"
  49. end
  50.  
  51. def self.remove_column_if_found(table_name, column_name, type=nil, options = {})
  52. if table_exists?(table_name.to_s) && columns(table_name.to_s).any? { |i| i.name == column_name.to_s }
  53. remove_column table_name, column_name
  54. end
  55. rescue => ex
  56. puts ex.message
  57. end
  58.  
  59. def self.rename_column_if_found(table_name, old_name, new_name)
  60. if table_exists?(table_name.to_s) && columns(table_name.to_s).any? { |i| i.name == old_name.to_s }
  61. rename_column table_name, old_name, new_name
  62. end
  63. rescue Exception => ex
  64. puts ex.message
  65. end
  66.  
  67. def self.rename_table_if_exists(old_name,new_name)
  68. if table_exists?(old_name.to_s)
  69. rename_table(old_name,new_name)
  70. end
  71. end
  72.  
  73. def self.create_table_if_missing(table_name, options = {}, &body)
  74. unless table_exists?(table_name.to_s)
  75. add_column table_name, options, &body
  76. end
  77. rescue => ex
  78. puts ex.message
  79. end
  80.  
  81. def self.drop_table_if_exists(table_name, options = {})
  82. if table_exists?(table_name.to_s)
  83. drop_table table_name, options
  84. end
  85. rescue => ex
  86. puts ex.message
  87. end
  88.  
  89.  
  90. end
  91.  
  92. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement