diff options
Diffstat (limited to 'activerecord/lib/active_record/schema_migration.rb')
-rw-r--r-- | activerecord/lib/active_record/schema_migration.rb | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/schema_migration.rb b/activerecord/lib/active_record/schema_migration.rb new file mode 100644 index 0000000000..236ec563d2 --- /dev/null +++ b/activerecord/lib/active_record/schema_migration.rb @@ -0,0 +1,34 @@ +require 'active_record/scoping/default' +require 'active_record/scoping/named' +require 'active_record/base' + +module ActiveRecord + class SchemaMigration < ActiveRecord::Base + attr_accessible :version + + def self.table_name + Base.table_name_prefix + 'schema_migrations' + Base.table_name_suffix + end + + def self.create_table + unless connection.table_exists?(table_name) + connection.create_table(table_name, :id => false) do |t| + t.column :version, :string, :null => false + end + connection.add_index table_name, :version, :unique => true, + :name => "#{Base.table_name_prefix}unique_schema_migrations#{Base.table_name_suffix}" + end + end + + def self.drop_table + if connection.table_exists?(table_name) + connection.remove_index table_name, :name => "#{Base.table_name_prefix}unique_schema_migrations#{Base.table_name_suffix}" + connection.drop_table(table_name) + end + end + + def version + super.to_i + end + end +end |