В настоящее время я работаю над проектом эликсира, который анализирует XML из API и вставки данных в Postgres, используя postgrexElixir - Postgres: неверная последовательность байт для кодирования "UTF8
Большинство вставок работают хорошо, однако для. нечетные вставки я получаю эту ошибку. Я видел много других людей, сталкивающихся эту ошибку, но я не уверен, как решить эту проблему в эликсира.
23:52:32.402 [error] Process #PID<0.224.0> raised an exception
** (KeyError) key :constraint not found in: %{code: :character_not_in_repertoire, file: "wchar.c", line: "2011", message: "invalid byte sequence for encoding \"UTF8\": 0xe3 0x83 0x22", pg_code: "22021", routine: "report_invalid_encoding", severity: "ERROR"}
(pipeline_processor) lib/worker.ex:133: PipelineProcessor.Worker.recursive_db_insert/1
(pipeline_processor) lib/worker.ex:47: PipelineProcessor.Worker.process_article/1
(pipeline_processor) lib/worker.ex:17: PipelineProcessor.Worker.request_article/0
Я знаю, что ошибка на самом деле из-за доступа к недопустимому свойству карты. Однако я пытаюсь решить проблему, которую предоставляет postgrex.
Мой postgrex Код вставки:
sql_string = "INSERT INTO articles (title, source, content) VALUES ($1, $2, $3) RETURNING id"
{:ok, pid} = Postgrex.Connection.start_link(Application.get_env(:pipeline_processor, :db_details))
response = Postgrex.Connection.query(
pid,
sql_string,
[article.title, article.source, article.content]
)
Postgrex.Connection.stop(pid)
Есть в любом случае в эликсира, чтобы вычистить недействительные байты так, что эти вставки могут быть успешными? Или каким-то образом иметь postgres справиться с этим?
Благодаря
Спасибо. Я сделаю это. – Reizar