From: Tom Hughes Date: Sun, 24 Jun 2007 11:25:26 +0000 (+0000) Subject: Move common support code from the base migration to a library file where X-Git-Tag: live~8352 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/f042a797c65fc96e79c2618e8653fbfb6488b67d Move common support code from the base migration to a library file where it can be used by other migrations. --- diff --git a/db/migrate/001_create_osm_db.rb b/db/migrate/001_create_osm_db.rb index a9eeec814..e5840b380 100644 --- a/db/migrate/001_create_osm_db.rb +++ b/db/migrate/001_create_osm_db.rb @@ -1,38 +1,4 @@ -module ActiveRecord - module ConnectionAdapters - module SchemaStatements - def add_primary_key(table_name, column_name, options = {}) - index_name = options[:name] - column_names = Array(column_name) - quoted_column_names = column_names.map { |e| quote_column_name(e) }.join(", ") - execute "ALTER TABLE #{table_name} ADD PRIMARY KEY #{quote_column_name(index_name)} (#{quoted_column_names})" - end - - alias_method :old_add_column_options!, :add_column_options! - - def add_column_options!(sql, options) - old_add_column_options!(sql, options) - sql << " #{options[:options]}" - end - - alias_method :old_options_include_default?, :options_include_default? - - def options_include_default?(options) - old_options_include_default?(options) && !(options[:options] =~ /AUTO_INCREMENT/i) - end - end - - class MysqlAdapter - alias_method :old_native_database_types, :native_database_types - - def native_database_types - types = old_native_database_types - types[:bigint] = { :name => "bigint", :limit => 20 } - types - end - end - end -end +require 'lib/migrate' class CreateOsmDb < ActiveRecord::Migration def self.up diff --git a/lib/migrate.rb b/lib/migrate.rb new file mode 100644 index 000000000..737ff57ec --- /dev/null +++ b/lib/migrate.rb @@ -0,0 +1,38 @@ +module ActiveRecord + module ConnectionAdapters + module SchemaStatements + def add_primary_key(table_name, column_name, options = {}) + index_name = options[:name] + column_names = Array(column_name) + quoted_column_names = column_names.map { |e| quote_column_name(e) }.join(", ") + execute "ALTER TABLE #{table_name} ADD PRIMARY KEY #{quote_column_name(index_name)} (#{quoted_column_names})" + end + + alias_method :old_add_column_options!, :add_column_options! + + def add_column_options!(sql, options) + old_add_column_options!(sql, options) + sql << " #{options[:options]}" + end + + alias_method :old_options_include_default?, :options_include_default? + + def options_include_default?(options) + old_options_include_default?(options) && !(options[:options] =~ /AUTO_INCREMENT/i) + end + end + + class MysqlAdapter + alias_method :old_native_database_types, :native_database_types + + def native_database_types + types = old_native_database_types + types[:bigint] = { :name => "bigint", :limit => 20 } + types + end + end + end +end + +myisam_table = { :id => false, :force => true, :options => "ENGINE=MyIsam" } +innodb_table = { :id => false, :force => true, :options => "ENGINE=InnoDB" }