Question

J'utilise Hypertable db avec l'extrémité avant de HyperRecord. Il y avait quelques bugs que je fixe en elle. Mais maintenant, les migrations me restent bloqués. Chaque fois que je fais migrate il montre l'erreur:

rake aborted!
undefined method `select_rows' for #<ActiveRecord::ConnectionAdapters::HypertableAdapter:0xb6f791c4>
.rvm/gems/ruby-1.8.7-p352@r2.3.8/gems/activerecord-2.3.8/lib/active_record/connection_adapters/abstract/database_statements.rb:27:in `select_values'

Quand je regarde dans le code ou le rubis sur des rails actice_record. Elle montre.

  # Returns an array of arrays containing the field values.
  # Order is the same as that returned by +columns+.
  def select_rows(sql, name = nil)
  end
  undef_method :select_rows

J'ai essayé de supprimer ces fonctions en ajoutant une solution dans Initialise.

module ActiveRecord
  module ConnectionAdapters
    class HypertableAdapter

      def select_rows(sql, name = nil)
      end
    end
  end
end

Ensuite, il est venu avec le Nil value occurred while accepting array or hash d'erreur. Pour résoudre ce problème i a ajouté une nouvelle méthode pour le code fixe.

module ActiveRecord
  module ConnectionAdapters
    class HypertableAdapter

      def select_rows(sql, name = nil)
      end

      def select_values(sql, name = nil)
        result = select_rows(sql, name)
        result.map { |v| v[0] } unless result.nil?
      end
    end
  end
end

il est venu avec l'erreur:

rake aborted!
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.map
/.rvm/gems/ruby-1.8.7-p352@r2.3.8/gems/activerecord-2.3.8/lib/active_record/migration.rb:421:in `get_all_versions'

Est-ce que quelqu'un a une idée, ce qui se passe avec elle?

Était-ce utile?

La solution

Ce code supprime toutes les erreurs. Mais maintenant, les migrations fonctionne bien, mais ne roulent pas en arrière.

module ActiveRecord
  module ConnectionAdapters
    class HypertableAdapter

      def select_rows(sql, name = nil)
        result = execute(sql)
        rows = []
        result.cells.each { |row| rows << row }
        rows
      end

      def select_values(sql, name = nil)
        result = select_rows(sql, name)
        result.map { |v| v[0] } unless result.nil?
      end
    end
  end
end

Quand je suis arrivé dans le fichier de schéma, il montre l'erreur suivante:

# Could not dump table "teams" because of following StandardError
#   Unknown type '' for column 'ROW'
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top