Ошибки переезда

Ошибка подключения к MySQL

ERROR mysql: Failed to connect to mysql at "host" (port 3306) as user "user": Condition QMYND:MYSQL-UNSUPPORTED-AUTHENTICATION was signalled.

Решение: переключиться на mysql_native_password:

ALTER USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY '*********';
FLUSH PRIVILEGES;

Виртуальные столбцы

В MySQL был вручную добавлен виртуальный столбец:

`utm_utm_source` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci GENERATED ALWAYS AS (json_unquote(json_extract(`utm`,_utf8mb4'$.utm_source'))) VIRTUAL

В миграциях он отсутствует. При переносе pgloader пытается записать в этот столбец значение, но так как в конечной БД его нет, возникает ошибка.

Решение - удалить столбец:

ALTER TABLE sessions DROP utm_utm_source;

Ошибка unsupported Unicode escape sequence

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..."

Проблема в символе \u0000. Решение:

  1. исправить код, который записывает такой не валидный JSON (нужно было сделать свойства private => public в crif)
  2. поправить/удалить уже записанные значения

Ошибка связанная с uuid

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: ""

Решение для разных таблиц:

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 = '';

500 ошибка админка Telescope и Horizon

При открытии страницы админки Telescope и Horizon показывается ошибка 500 Server Error. В логах Кибаны ошибка выглядит так:

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

Решение: удалить все записи из таблицы jwt_public_keys

Ошибка при artisan migrate

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))

Такое происходит, когда запуск pgloader прошел неудачно, а затем выполняется artisan migrate. В первом скрипте BEFORE LOAD DO схема переименовывается, поэтому Laravel не может найти схему public.

Решение - переименовать обратно:

ALTER SCHEMA "us-template-develop" RENAME TO "public";
Печать/экспорт