Раньше ensureClientSchemaStateTable запускался на каждом цикле синка (каждые 5 минут) и пытался ALTER TABLE, даже если все колонки уже были. Для пользователей без DDL-прав это давало WARN-спам в каждом цикле. Два изменения: - schemaOnce (sync.Once) на Service: ensureClientSchemaStateTable вызывается не более одного раза за жизнь процесса - columnExists() проверяет information_schema.COLUMNS перед каждым ALTER — если колонка уже есть, ALTER пропускается без ошибки Если таблица уже мигрирована сервером, клиент молча пропускает все DDL. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
13 KiB
13 KiB