MOSQL: тип данных: JSON ARRAY return SQL literal (Sequel:: Error

Я проводил тестирование с помощью этого инструмента для миграции данных из Mongo db, и это одна из проблем, которую мне еще предстоит найти решение… было интересно некоторое время в поисках решения… но до сих пор нет ясного решения. Пожалуйста, найдите трассировку стека ниже.

версия mosql неизвестна (но когда я пытаюсь удалить mosql, он упоминает версию mosql-0.4.3
ruby версия: ruby 2.2.4p230 (2015-12-16 редакция 53155) [x64-mingw32]

Я внес изменения в cli.rb в этой папке C:Ruby22-x64librubygems.2.0gemsmosql-0.4.3libmosql удалить «USR2» в строке 27 из списка, чтобы исправить проблему запуска mosql.

C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/dataset/sql.rb:1252:in `literal_other_append': can't express BSON::ObjectId('5656805534616f4c317b7bff') as a SQL literal (Sequel::Error)
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/dataset/sql.rb:108:in `literal_append'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/dataset/sql.rb:486:in `complex_expression_sql_append'

from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/adapters/shared/postgres.rb:1272:in `complex_expression_sql_append'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/sql.rb:109:in `to_s_append'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/dataset/sql.rb:1214:in `literal_expression_append'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/dataset/sql.rb:86:in `literal_append'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/dataset/sql.rb:494:in `block in complex_expression_sql_append'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/dataset/sql.rb:492:in `each'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/dataset/sql.rb:492:in `complex_expression_sql_append'

from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/adapters/shared/postgres.rb:1272:in `complex_expression_sql_append'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/sql.rb:109:in `to_s_append'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/dataset/sql.rb:1214:in `literal_expression_append'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/dataset/sql.rb:1229:in `literal_hash_append'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/dataset/sql.rb:84:in `literal_append'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/extensions/pg_array.rb:504:in `block in _literal_append'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/extensions/pg_array.rb:499:in `each'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/extensions/pg_array.rb:499:in `_literal_append'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/extensions/pg_array.rb:483:in `sql_literal_append'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/dataset/sql.rb:1248:in `literal_other_append'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/dataset/sql.rb:108:in `literal_append'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/dataset/sql.rb:1576:in `block in update_sql_values_hash'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/dataset/sql.rb:1568:in `each'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/dataset/sql.rb:1568:in `update_sql_values_hash'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/dataset/sql.rb:1559:in `update_set_sql'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/dataset/sql.rb:229:in `_update_sql'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/dataset/sql.rb:175:in `update_sql'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.34.0/lib/sequel/dataset/actions.rb:818:in `update'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mosql-0.4.3/lib/mosql/sql.rb:59:in `upsert!'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mosql-0.4.3/lib/mosql/streamer.rb:61:in `block (2 levels) in bulk_upsert'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mosql-0.4.3/lib/mosql/streamer.rb:39:in `unsafe_handle_exceptions'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mosql-0.4.3/lib/mosql/streamer.rb:60:in `block in bulk_upsert'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mosql-0.4.3/lib/mosql/streamer.rb:57:in `each'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mosql-0.4.3/lib/mosql/streamer.rb:57:in `rescue in bulk_upsert'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mosql-0.4.3/lib/mosql/streamer.rb:52:in `bulk_upsert'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mosql-0.4.3/lib/mosql/streamer.rb:164:in `import_collection'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mosql-0.4.3/lib/mosql/streamer.rb:122:in `block (2 levels) in initial_import'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mosql-0.4.3/lib/mosql/streamer.rb:120:in `each'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mosql-0.4.3/lib/mosql/streamer.rb:120:in `block in initial_import'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mosql-0.4.3/lib/mosql/streamer.rb:108:in `each'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mosql-0.4.3/lib/mosql/streamer.rb:108:in `initial_import'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mosql-0.4.3/lib/mosql/streamer.rb:28:in `import'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mosql-0.4.3/lib/mosql/cli.rb:167:in `run'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mosql-0.4.3/lib/mosql/cli.rb:16:in `run'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mosql-0.4.3/bin/mosql:5:in `<top (required)>'
from C:/Ruby22-x64/bin/mosql:22:in `load'
from C:/Ruby22-x64/bin/mosql:22:in `<main>'

1 ответ

  1. Вы, вероятно, хотите добавить #sql_literal или #sql_literal_append методBSON::ObjectId, чтобы сиквел знает, как его литерализовать.