aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2010-12-01 17:08:01 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2010-12-01 17:08:01 -0800
commit3ec212e3c9c815e9993cbea409c60774ea75cd30 (patch)
tree56f77db136192f65eb4e3a1417d8b989e56cfe37 /activerecord/lib
parentc15c14563e6604aab232336b16e14f1f235cc19d (diff)
downloadrails-3ec212e3c9c815e9993cbea409c60774ea75cd30.tar.gz
rails-3ec212e3c9c815e9993cbea409c60774ea75cd30.tar.bz2
rails-3ec212e3c9c815e9993cbea409c60774ea75cd30.zip
rolling out migrated_at until I can fix the build
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb18
-rw-r--r--activerecord/lib/active_record/migration.rb18
-rw-r--r--activerecord/lib/active_record/schema.rb19
-rw-r--r--activerecord/lib/active_record/schema_dumper.rb16
4 files changed, 18 insertions, 53 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
index de7d358df9..4e770c37da 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
@@ -422,21 +422,9 @@ module ActiveRecord
def initialize_schema_migrations_table
sm_table = ActiveRecord::Migrator.schema_migrations_table_name
- if table_exists?(sm_table)
- cols = columns(sm_table).collect { |col| col.name }
- unless cols.include?("migrated_at")
- add_column sm_table, :migrated_at, :datetime
- update "UPDATE #{quote_table_name(sm_table)} SET migrated_at = '#{quoted_date(Time.now)}' WHERE migrated_at IS NULL"
- change_column sm_table, :migrated_at, :datetime, :null => false
- end
- unless cols.include?("name")
- add_column sm_table, :name, :string, :null => false, :default => ""
- end
- else
+ unless table_exists?(sm_table)
create_table(sm_table, :id => false) do |schema_migrations_table|
schema_migrations_table.column :version, :string, :null => false
- schema_migrations_table.column :name, :string, :null => false, :default => ""
- schema_migrations_table.column :migrated_at, :datetime, :null => false
end
add_index sm_table, :version, :unique => true,
:name => "#{Base.table_name_prefix}unique_schema_migrations#{Base.table_name_suffix}"
@@ -464,7 +452,7 @@ module ActiveRecord
end
unless migrated.include?(version)
- execute "INSERT INTO #{sm_table} (version,migrated_at) VALUES ('#{version}','#{Time.now.to_s(:db)}')"
+ execute "INSERT INTO #{sm_table} (version) VALUES ('#{version}')"
end
inserted = Set.new
@@ -472,7 +460,7 @@ module ActiveRecord
if inserted.include?(v)
raise "Duplicate migration #{v}. Please renumber your migrations to resolve the conflict."
elsif v < version
- execute "INSERT INTO #{sm_table} (version,migrated_at) VALUES ('#{v}','#{Time.now.to_s(:db)}')"
+ execute "INSERT INTO #{sm_table} (version) VALUES ('#{v}')"
inserted << v
end
end
diff --git a/activerecord/lib/active_record/migration.rb b/activerecord/lib/active_record/migration.rb
index d2ebf656cb..f6321f1499 100644
--- a/activerecord/lib/active_record/migration.rb
+++ b/activerecord/lib/active_record/migration.rb
@@ -628,7 +628,7 @@ module ActiveRecord
raise UnknownMigrationVersionError.new(@target_version) if target.nil?
unless (up? && migrated.include?(target.version.to_i)) || (down? && !migrated.include?(target.version.to_i))
target.migrate(@direction)
- record_version_state_after_migrating(target)
+ record_version_state_after_migrating(target.version)
end
end
@@ -664,7 +664,7 @@ module ActiveRecord
begin
ddl_transaction do
migration.migrate(@direction)
- record_version_state_after_migrating(migration)
+ record_version_state_after_migrating(migration.version)
end
rescue => e
canceled_msg = Base.connection.supports_ddl_transactions? ? "this and " : ""
@@ -690,20 +690,16 @@ module ActiveRecord
end
private
- def record_version_state_after_migrating(target)
+ def record_version_state_after_migrating(version)
table = Arel::Table.new(self.class.schema_migrations_table_name)
@migrated_versions ||= []
if down?
- @migrated_versions.delete(target.version)
- table.where(table["version"].eq(target.version.to_s)).delete
+ @migrated_versions.delete(version)
+ table.where(table["version"].eq(version.to_s)).delete
else
- @migrated_versions.push(target.version).sort!
- table.insert(
- table["version"] => target.version.to_s,
- table["name"] => File.basename(target.filename,'.rb').gsub(/^\d+_/,''),
- table["migrated_at"] => Time.now
- )
+ @migrated_versions.push(version).sort!
+ table.insert table["version"] => version.to_s
end
end
diff --git a/activerecord/lib/active_record/schema.rb b/activerecord/lib/active_record/schema.rb
index 9a47fd3b84..c6bb5c1961 100644
--- a/activerecord/lib/active_record/schema.rb
+++ b/activerecord/lib/active_record/schema.rb
@@ -46,24 +46,13 @@ module ActiveRecord
# ...
# end
def self.define(info={}, &block)
- Base.connection.drop_table(ActiveRecord::Migrator.schema_migrations_table_name)
- initialize_schema_migrations_table
-
schema = new
schema.instance_eval(&block)
- assume_migrated_upto_version(info[:version], schema.migrations_path) unless info[:version].blank?
- end
-
- def migration(version, name="", options={})
- name, options = "", name if name.is_a?(Hash)
-
- table = Arel::Table.new(ActiveRecord::Migrator.schema_migrations_table_name)
- table.insert(
- table["version"] => version,
- table["name"] => name,
- table["migrated_at"] => Time.now
- )
+ unless info[:version].blank?
+ initialize_schema_migrations_table
+ assume_migrated_upto_version(info[:version], schema.migrations_path)
+ end
end
end
end
diff --git a/activerecord/lib/active_record/schema_dumper.rb b/activerecord/lib/active_record/schema_dumper.rb
index 794a354917..e30b481fe1 100644
--- a/activerecord/lib/active_record/schema_dumper.rb
+++ b/activerecord/lib/active_record/schema_dumper.rb
@@ -24,7 +24,6 @@ module ActiveRecord
def dump(stream)
header(stream)
- migrations(stream)
tables(stream)
trailer(stream)
stream
@@ -35,9 +34,12 @@ module ActiveRecord
def initialize(connection)
@connection = connection
@types = @connection.native_database_types
+ @version = Migrator::current_version rescue nil
end
def header(stream)
+ define_params = @version ? ":version => #{@version}" : ""
+
stream.puts <<HEADER
# This file is auto-generated from the current state of the database. Instead
# of editing this file, please use the migrations feature of Active Record to
@@ -51,7 +53,7 @@ module ActiveRecord
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define do
+ActiveRecord::Schema.define(#{define_params}) do
HEADER
end
@@ -60,16 +62,6 @@ HEADER
stream.puts "end"
end
- def migrations(stream)
- rows = @connection.select_all("SELECT * FROM #{@connection.quote_table_name(ActiveRecord::Migrator.schema_migrations_table_name)}")
- rows.each do |migration|
- line = %Q( migration "#{migration['version']}")
- line << %Q(, "#{migration['name']}") unless migration['name'].blank?
- stream.puts line
- end
- stream.puts ""
- end
-
def tables(stream)
@connection.tables.sort.each do |tbl|
next if ['schema_migrations', ignore_tables].flatten.any? do |ignored|