Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

sql:pg-migration-errors [2024/08/13 21:33] (текущий)
admin создано
Строка 1: Строка 1:
 +====== Ошибки переезда ======
  
 +===== Ошибка подключения к MySQL =====
 +
 +<code>
 +ERROR mysql: Failed to connect to mysql at "host" (port 3306) as user "user": Condition QMYND:MYSQL-UNSUPPORTED-AUTHENTICATION was signalled.
 +</code>
 +
 +Решение: переключиться на ''mysql_native_password'':
 +
 +<code sql>
 +ALTER USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY '*********';
 +FLUSH PRIVILEGES;
 +</code>
 +
 +===== Виртуальные столбцы =====
 +
 +
 +В MySQL был вручную добавлен виртуальный столбец:
 +
 +<code sql>
 +`utm_utm_source` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci GENERATED ALWAYS AS (json_unquote(json_extract(`utm`,_utf8mb4'$.utm_source'))) VIRTUAL
 +</code>
 +
 +В миграциях он отсутствует. При переносе pgloader пытается записать в этот столбец значение, но так как в конечной БД его нет, возникает ошибка.
 +
 +Решение - удалить столбец:
 +
 +<code sql>
 +ALTER TABLE sessions DROP utm_utm_source;
 +</code>
 +
 +===== Ошибка unsupported Unicode escape sequence =====
 +
 +
 +<code>
 +2023-11-14T00:32:48.020000+03:00 ERROR Database error 22P05: unsupported Unicode escape sequence
 +DETAIL: \u0000 cannot be converted to text.
 +CONTEXT: JSON data, line 1: {"message": {"\u0000...
 +COPY form_delivery, line 5, column last_response: "{"message": {"\u0000*\u0000Xml": null, "\u0000*\u0000Code": 0, "\u0000*\u0000Result": "Success", "\u..."
 +</code>
 +
 +Проблема в символе ''\u0000''. Решение:
 +
 +  - исправить код, который записывает такой не валидный JSON (нужно было сделать свойства private => public в crif)
 +  - поправить/удалить уже записанные значения
 +
 +===== Ошибка связанная с uuid =====
 +
 +<code>
 +2023-11-14T00:58:08.455000+03:00 ERROR Database error 22P02: invalid input syntax for type uuid: ""
 +CONTEXT: COPY sessions, line 51982, column source_id: ""
 +</code>
 +
 +Решение для разных таблиц:
 +
 +<code sql>
 +update sessions set source_id = null where source_id = '';
 +delete from search_requests where user_uuid = '';
 +update view_session_filters set source_id = null where source_id = '';
 +</code>
 +
 +===== 500 ошибка админка Telescope и Horizon =====
 +
 +
 +При открытии страницы админки Telescope и Horizon показывается ошибка 500 Server Error. В логах Кибаны ошибка выглядит так:
 +
 +<code>
 +It was not possible to parse your key, reason:
 +* error:0909006C:PEM routines:get_name:no start line
 +* error:0909006C:PEM routines:get_name:no start line
 +</code>
 +
 +Решение: удалить все записи из таблицы ''jwt_public_keys''
 +
 +===== Ошибка при artisan migrate =====
 +
 +<code>
 +SQLSTATE[3F000]: Invalid schema name: 7 ERROR:  no schema has been selected to create in at character 14 (Connection: pgsql, SQL: create table "migrations" ("id" serial not null primary key, "migration" varchar(255) not null, "batch" integer not null))
 +</code>
 +
 +Такое происходит, когда запуск pgloader прошел неудачно, а затем выполняется artisan migrate. В первом скрипте ''BEFORE LOAD DO'' схема переименовывается, поэтому Laravel не может найти схему public.
 +
 +Решение - переименовать обратно:
 +
 +<code sql>
 +ALTER SCHEMA "us-template-develop" RENAME TO "public";
 +</code>
Печать/экспорт