Skip to content

enhancement(connections): align MySQL and SQLite workspaces with PostgreSQL UI standard (tx controls, DDL view, stats tab) #325

Description

@ZhuchkaTriplesix

Part of Epic #322

Описание задачи

Встроенные драйверы MySQL (lib/features/mysql) и SQLite (lib/features/sqlite) отстают по функционалу от эталонного PostgreSQL (lib/features/postgresql). Для соблюдения Единого UI-стандарта (Universal UI Standard) необходимо подтянуть рабочие пространства MySQL и SQLite до паритета с Postgres.

Зачем

  • Единообразие пользовательского опыта: независимо от того, работает пользователь с PostgreSQL, MySQL или SQLite, интерфейс вкладок, транзакций и инспекций метаданных должен вести себя предсказуемо.
  • Устранение риска случайной потери данных в MySQL из-за отсутствия явных кнопок транзакций.

Предлагаемые изменения

  1. Для MySQL (lib/features/mysql):
    • Вынести в тулбар сессии (MysqlSqlWorkspace) явные кнопки Begin, Commit, Rollback (сейчас управление транзакциями доступно только через ручной ввод SQL или переключатель Autocommit).
    • Добавить инспектор процедур и функций MysqlRoutineView (на базе SHOW CREATE FUNCTION / PROCEDURE) с отображением DDL при клике на хранимую процедуру в боковом дереве.
  2. Для SQLite (lib/features/sqlite):
    • Добавить на домашний экран SqliteWorkspaceHome вкладку Overview / Database Info (отображающую размер файла .db на диске, количество страниц page_count / page_size, версию SQLite, режим journal_mode / WAL и список таблиц).
    • Добавить кнопку DDL / Structure на панель SqliteTableView для быстрого просмотра sql из sqlite_master.

Технические требования

  • Обновить тулбар MysqlSqlWorkspace (lib/features/mysql/mysql_sql_workspace.dart) кнопочными действиями транзакций (START TRANSACTION;, COMMIT;, ROLLBACK;).
  • Создать MysqlRoutineView и подключить его в роутер рабочего пространства (WorkspacePanel).
  • Создать SqliteOverviewTab для SqliteWorkspaceHome и подключить переключатель вкладок (Overview vs SQL).
  • Добавить извлечение DDL для SqliteTableView.
  • Обновить тесты виджетов для mysql и sqlite.

Место в коде (ориентир)

  • lib/features/mysql/mysql_sql_workspace.dart
  • lib/features/mysql/mysql_routine_view.dart (новый)
  • lib/features/sqlite/sqlite_workspace_home.dart
  • lib/features/sqlite/sqlite_table_view.dart
  • Эталон: lib/features/postgresql/postgres_workspace_home.dart и postgres_sql_workspace.dart

Acceptance Criteria

  • В MysqlSqlWorkspace доступны кнопки Begin, Commit, Rollback с корректной отправкой команд в сессию.
  • При выборе процедуры в MySQL открывается вьюер с DDL (SHOW CREATE PROCEDURE/FUNCTION).
  • На домашнем экране SQLite отображается вкладка с метаданными о файле .db.
  • Из таблицы SQLite можно в 1 клик посмотреть DDL создания таблицы.

Scope

  • Scope: desktop
  • Component: MySQL / SQLite / Workspace
  • Kind: enhancement

Metadata

Metadata

Labels

connectionsDatabase connections, URI parsing, poolsenhancementNew feature or requestmysqlMySQL database driver and workspacesqliteSQLite database driver and workspaceuiUser interface components and widgets

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions