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 из-за отсутствия явных кнопок транзакций.
Предлагаемые изменения
- Для MySQL (
lib/features/mysql):
- Вынести в тулбар сессии (
MysqlSqlWorkspace) явные кнопки Begin, Commit, Rollback (сейчас управление транзакциями доступно только через ручной ввод SQL или переключатель Autocommit).
- Добавить инспектор процедур и функций
MysqlRoutineView (на базе SHOW CREATE FUNCTION / PROCEDURE) с отображением DDL при клике на хранимую процедуру в боковом дереве.
- Для SQLite (
lib/features/sqlite):
- Добавить на домашний экран
SqliteWorkspaceHome вкладку Overview / Database Info (отображающую размер файла .db на диске, количество страниц page_count / page_size, версию SQLite, режим journal_mode / WAL и список таблиц).
- Добавить кнопку DDL / Structure на панель
SqliteTableView для быстрого просмотра sql из sqlite_master.
Технические требования
Место в коде (ориентир)
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
Scope
- Scope:
desktop
- Component:
MySQL / SQLite / Workspace
- Kind:
enhancement
Описание задачи
Встроенные драйверы MySQL (
lib/features/mysql) и SQLite (lib/features/sqlite) отстают по функционалу от эталонного PostgreSQL (lib/features/postgresql). Для соблюдения Единого UI-стандарта (Universal UI Standard) необходимо подтянуть рабочие пространства MySQL и SQLite до паритета с Postgres.Зачем
Предлагаемые изменения
lib/features/mysql):MysqlSqlWorkspace) явные кнопки Begin, Commit, Rollback (сейчас управление транзакциями доступно только через ручной ввод SQL или переключатель Autocommit).MysqlRoutineView(на базеSHOW CREATE FUNCTION / PROCEDURE) с отображением DDL при клике на хранимую процедуру в боковом дереве.lib/features/sqlite):SqliteWorkspaceHomeвкладку Overview / Database Info (отображающую размер файла.dbна диске, количество страницpage_count/page_size, версию SQLite, режимjournal_mode / WALи список таблиц).SqliteTableViewдля быстрого просмотраsqlизsqlite_master.Технические требования
MysqlSqlWorkspace(lib/features/mysql/mysql_sql_workspace.dart) кнопочными действиями транзакций (START TRANSACTION;,COMMIT;,ROLLBACK;).MysqlRoutineViewи подключить его в роутер рабочего пространства (WorkspacePanel).SqliteOverviewTabдляSqliteWorkspaceHomeи подключить переключатель вкладок (OverviewvsSQL).SqliteTableView.mysqlиsqlite.Место в коде (ориентир)
lib/features/mysql/mysql_sql_workspace.dartlib/features/mysql/mysql_routine_view.dart(новый)lib/features/sqlite/sqlite_workspace_home.dartlib/features/sqlite/sqlite_table_view.dartlib/features/postgresql/postgres_workspace_home.dartиpostgres_sql_workspace.dartAcceptance Criteria
MysqlSqlWorkspaceдоступны кнопки Begin, Commit, Rollback с корректной отправкой команд в сессию.SHOW CREATE PROCEDURE/FUNCTION)..db.Scope
desktopMySQL / SQLite / Workspaceenhancement