Содержание
Ошибки переезда
Ошибка подключения к 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
. Решение:
- исправить код, который записывает такой не валидный JSON (нужно было сделать свойства private => public в crif)
- поправить/удалить уже записанные значения
Ошибка связанная с 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";