レール2.3.8の問題を引き起こす膨大な移動2.3.8
-
28-10-2019 - |
質問
私はハイパーレコードのフロントエンドで誇張可能なDBを使用しています。私がそれに修正したいくつかのバグがありました。しかし今、移住は私を行き詰まっています。私が移行するとき、それはエラーを示します:
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'
Rails Actice_RecordでコードまたはRubyを調べるとき。それが示している。
# 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
初期化に修正を追加することにより、これらの関数を削除しようとしました。
module ActiveRecord
module ConnectionAdapters
class HypertableAdapter
def select_rows(sql, name = nil)
end
end
end
end
その後、エラーが付属しています Nil value occurred while accepting array or hash
. 。それを修正するために、修正コードに新しい方法を追加しました。
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
その後、エラーが付属しています。
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'
誰かがアイデアを持っていますか、それは何が起こっているのですか?
解決
このコードはすべてのエラーを削除します。しかし、今では移行はうまく機能しますが、ロールバックしないでください。
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
スキーマファイルにチェックインすると、次のエラーが表示されます。
# Could not dump table "teams" because of following StandardError
# Unknown type '' for column 'ROW'
所属していません StackOverflow