migration Hypertable problème causant des rails 2.3.8
-
28-10-2019 - |
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?
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'