<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -23,7 +23,11 @@ module Desert #:nodoc:
           ActiveRecord::Base.connection.update(&quot;UPDATE #{self.class.schema_info_table_name} SET version = #{version} WHERE plugin_name = '#{current_plugin.name}'&quot;)
         end
       end
-      alias_method :record_version_state_after_migrating, :set_schema_version
+
+      def migrated
+        current_plugin_version = self.class.current_version
+        (1..current_plugin_version).to_a
+      end
     end
   end
 end</diff>
      <filename>lib/desert/plugin_migrations/1.2/migrator.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@ module Desert #:nodoc:
     class Migrator &lt; ActiveRecord::Migrator
       class &lt;&lt; self
         def current_version #:nodoc:
-          result = ActiveRecord::Base.connection.select_one(&quot;SELECT version FROM #{schema_migrations_table_name} WHERE plugin_name = '#{current_plugin.name}'&quot;)
+          result = ActiveRecord::Base.connection.select_one(&quot;SELECT version FROM #{schema_migrations_table_name} WHERE plugin_name = '#{current_plugin.name}' order by version desc&quot;)
           if result
             result['version'].to_i
           else
@@ -11,19 +11,25 @@ module Desert #:nodoc:
             0
           end
         end
+
+        def get_all_versions
+          ActiveRecord::Base.connection.select_values(&quot;SELECT version FROM #{schema_migrations_table_name} where plugin_name='#{current_plugin.name}'&quot;).map(&amp;:to_i).sort
+        end
       end
 
-      def set_schema_version(version)
-        version = down? ? version.to_i - 1 : version.to_i
+      def record_version_state_after_migrating(version)
+        sm_table = self.class.schema_migrations_table_name
 
-        if ActiveRecord::Base.connection.select_one(&quot;SELECT version FROM #{self.class.schema_migrations_table_name} WHERE plugin_name = '#{current_plugin.name}'&quot;).nil?
-          # We need to create the entry since it doesn't exist
-          ActiveRecord::Base.connection.execute(&quot;INSERT INTO #{self.class.schema_migrations_table_name} (version, plugin_name) VALUES (#{version},'#{current_plugin.name}')&quot;)
+        if down?
+          ActiveRecord::Base.connection.update(&quot;DELETE FROM #{sm_table} WHERE version = '#{version}' WHERE plugin_name = '#{current_plugin.name}'&quot;)
         else
-          ActiveRecord::Base.connection.update(&quot;UPDATE #{self.class.schema_migrations_table_name} SET version = #{version} WHERE plugin_name = '#{current_plugin.name}'&quot;)
+          ActiveRecord::Base.connection.insert(&quot;INSERT INTO #{sm_table} (plugin_name, version) VALUES ('#{current_plugin.name}', '#{version}')&quot;)
         end
       end
-      alias_method :record_version_state_after_migrating, :set_schema_version
+
+      def migrated
+        self.class.get_all_versions
+      end
     end
   end
 end</diff>
      <filename>lib/desert/plugin_migrations/2.1/migrator.rb</filename>
    </modified>
    <modified>
      <diff>@@ -24,11 +24,6 @@ module Desert #:nodoc:
           ActiveRecord::Base.table_name_prefix + 'plugin_schema_migrations' + ActiveRecord::Base.table_name_suffix
         end
       end
-
-      def migrated
-        current_plugin_version = self.class.current_version
-        (1..current_plugin_version).to_a
-      end
     end
   end
 end
\ No newline at end of file</diff>
      <filename>lib/desert/plugin_migrations/migrator.rb</filename>
    </modified>
    <modified>
      <diff>@@ -19,6 +19,10 @@ module ActiveRecord
             results.should == [
               {
                 'plugin_name' =&gt; 'acts_as_spiffy',
+                'version' =&gt; '1'
+              },
+              {
+                'plugin_name' =&gt; 'acts_as_spiffy',
                 'version' =&gt; '2'
               },
             ]</diff>
      <filename>spec/rails_root/spec/desert/migration_integration_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>cf87e5d8e3e9a40a369893c1835dc01bcf068ddb</id>
    </parent>
  </parents>
  <author>
    <name>Brian Takita</name>
    <email>btakita@btakita-laptop.(none)</email>
  </author>
  <url>http://github.com/tog/desert/commit/32c5991ef58b2d5dfabbb8238268637f17315c7a</url>
  <id>32c5991ef58b2d5dfabbb8238268637f17315c7a</id>
  <committed-date>2009-04-22T03:12:22-07:00</committed-date>
  <authored-date>2008-12-27T03:14:11-08:00</authored-date>
  <message>Migrater#migrated is not properly implemented for plugin_schema_migrations for Rails &gt;= 2.1.0

Signed-off-by: Aitor Garc&#237;a Rey &lt;aitor@linkingpaths.com&gt;</message>
  <tree>da7ffd9262814dc48c97c83025e99ee5866d501a</tree>
  <committer>
    <name>Aitor Garc&#237;a Rey</name>
    <email>aitor@linkingpaths.com</email>
  </committer>
</commit>
