# File lib/rails-installer/databases.rb, line 57
    def self.restore(installer, filename)
      connect(installer)
      data = YAML.load(File.read(filename))
      
      installer.message "Restoring data"
      data.each_key do |table|
        if table == 'schema_info'
          ActiveRecord::Base.connection.execute("delete from schema_info")
          ActiveRecord::Base.connection.execute("insert into schema_info (version) values (#{data[table].first['version']})")
        else
          installer.message " Restoring table #{table} (#{data[table].size})"

          # Create a temporary model to talk to the DB
          eval %Q{
          class TempClass < ActiveRecord::Base
            set_table_name '#{table}'
            reset_column_information
          end
          }
          
          TempClass.delete_all
                
          data[table].each do |record|
            r = TempClass.new(record)
            r.id = record['id'] if record.has_key?('id')
            r.save
          end
          
          if ActiveRecord::Base.connection.respond_to?(:reset_pk_sequence!)
            ActiveRecord::Base.connection.reset_pk_sequence!(table)
          end
        end
      end
    end