feat(database): Add database compression function (#1027)

* feat(database): Add database compression function

Add database compression functionality to the connection statistics page to reduce the size of the database file

Add multi-language support and related UI interactions

* fix(database): Update the description of database compression operations and fix the statistics cleanup logic

Update the description of database compression operations in the multilingual files to explicitly state that data will not be lost

Fix the connection statistics cleanup logic to ensure correct matching of server IDs

Add error handling for the compression operation to prevent the UI from freezing

* Update lib/l10n/app_en.arb

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
This commit is contained in:
GT610
2026-01-26 13:40:42 +08:00
committed by GitHub
parent 9ac866644c
commit a0a62acdbc
29 changed files with 253 additions and 1 deletions

View File

@@ -395,6 +395,24 @@ abstract class AppLocalizations {
/// **'Clear This Server Statistics'**
String get clearThisServerStats;
/// No description provided for @compactDatabase.
///
/// In en, this message translates to:
/// **'Compact Database'**
String get compactDatabase;
/// No description provided for @compactDatabaseContent.
///
/// In en, this message translates to:
/// **'Database size: {size}\n\nThis will reorganize the database to reduce file size. No data will be deleted.'**
String compactDatabaseContent(Object size);
/// No description provided for @confirm.
///
/// In en, this message translates to:
/// **'Confirm'**
String get confirm;
/// No description provided for @closeAfterSave.
///
/// In en, this message translates to:

View File

@@ -162,6 +162,17 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get clearThisServerStats => 'Statistiken dieses Servers löschen';
@override
String get compactDatabase => 'Datenbank komprimieren';
@override
String compactDatabaseContent(Object size) {
return 'Datenbankgröße: $size\n\nDies wird die Datenbank neu organisieren, um die Dateigröße zu reduzieren. Es werden keine Daten gelöscht.';
}
@override
String get confirm => 'Bestätigen';
@override
String get closeAfterSave => 'Speichern und schließen';

View File

@@ -161,6 +161,17 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get clearThisServerStats => 'Clear This Server Statistics';
@override
String get compactDatabase => 'Compact Database';
@override
String compactDatabaseContent(Object size) {
return 'Database size: $size\n\nThis will reorganize the database to reduce file size. No data will be deleted.';
}
@override
String get confirm => 'Confirm';
@override
String get closeAfterSave => 'Save and close';

View File

@@ -162,6 +162,17 @@ class AppLocalizationsEs extends AppLocalizations {
@override
String get clearThisServerStats => 'Limpiar estadísticas de este servidor';
@override
String get compactDatabase => 'Compactar base de datos';
@override
String compactDatabaseContent(Object size) {
return 'Tamaño de la base de datos: $size\n\nEsto reorganizará la base de datos para reducir el tamaño del archivo. No se eliminará ningún dato.';
}
@override
String get confirm => 'Confirm';
@override
String get closeAfterSave => 'Guardar y cerrar';

View File

@@ -162,6 +162,17 @@ class AppLocalizationsFr extends AppLocalizations {
@override
String get clearThisServerStats => 'Effacer les statistiques de ce serveur';
@override
String get compactDatabase => 'Compacter la base de données';
@override
String compactDatabaseContent(Object size) {
return 'Taille de la base de données : $size\n\nCela réorganisera la base de données pour réduire la taille du fichier. Aucune donnée ne sera supprimée.';
}
@override
String get confirm => 'Confirm';
@override
String get closeAfterSave => 'Enregistrer et fermer';

View File

@@ -160,6 +160,17 @@ class AppLocalizationsId extends AppLocalizations {
@override
String get clearThisServerStats => 'Hapus Statistik Server Ini';
@override
String get compactDatabase => 'Kompres Database';
@override
String compactDatabaseContent(Object size) {
return 'Ukuran database: $size\n\nIni akan mengatur ulang database untuk mengurangi ukuran file. Tidak ada data yang akan dihapus.';
}
@override
String get confirm => 'Confirm';
@override
String get closeAfterSave => 'Simpan dan tutup';

View File

@@ -155,6 +155,17 @@ class AppLocalizationsJa extends AppLocalizations {
@override
String get clearThisServerStats => 'このサーバーの統計をクリア';
@override
String get compactDatabase => 'データベースを圧縮';
@override
String compactDatabaseContent(Object size) {
return 'データベースサイズ: $size\n\nこれにより、ファイルサイズを小さくするためにデータベースが再編成されます。データは削除されません。';
}
@override
String get confirm => 'Confirm';
@override
String get closeAfterSave => '保存して閉じる';

View File

@@ -161,6 +161,17 @@ class AppLocalizationsNl extends AppLocalizations {
@override
String get clearThisServerStats => 'Statistieken van deze server wissen';
@override
String get compactDatabase => 'Database comprimeren';
@override
String compactDatabaseContent(Object size) {
return 'Databasgrootte: $size\n\nDit zal de database opnieuw organiseren om de bestandsgrootte te verkleinen. Geen gegevens worden verwijderd.';
}
@override
String get confirm => 'Confirm';
@override
String get closeAfterSave => 'Opslaan en sluiten';

View File

@@ -161,6 +161,17 @@ class AppLocalizationsPt extends AppLocalizations {
@override
String get clearThisServerStats => 'Limpar estatísticas deste servidor';
@override
String get compactDatabase => 'Compactar banco de dados';
@override
String compactDatabaseContent(Object size) {
return 'Tamanho do banco de dados: $size\n\nIsso reorganizará o banco de dados para reduzir o tamanho do arquivo. Nenhum dado será excluído.';
}
@override
String get confirm => 'Confirm';
@override
String get closeAfterSave => 'Salvar e fechar';

View File

@@ -162,6 +162,17 @@ class AppLocalizationsRu extends AppLocalizations {
@override
String get clearThisServerStats => 'Очистить статистику этого сервера';
@override
String get compactDatabase => 'Сжать базу данных';
@override
String compactDatabaseContent(Object size) {
return 'Размер базы данных: $size\n\nЭто перестроит базу данных для уменьшения размера файла. Данные не будут удалены.';
}
@override
String get confirm => 'Подтвердить';
@override
String get closeAfterSave => 'Сохранить и закрыть';

View File

@@ -160,6 +160,17 @@ class AppLocalizationsTr extends AppLocalizations {
@override
String get clearThisServerStats => 'Bu Sunucu İstatistiklerini Temizle';
@override
String get compactDatabase => 'Veritabanını Sıkıştır';
@override
String compactDatabaseContent(Object size) {
return 'Veritabanı boyutu: $size\n\nBu, dosya boyutunu küçültmek için veritabanını yeniden düzenleyecektir. Veriler silinmeyecek.';
}
@override
String get confirm => 'Confirm';
@override
String get closeAfterSave => 'Kaydet ve kapat';

View File

@@ -161,6 +161,17 @@ class AppLocalizationsUk extends AppLocalizations {
@override
String get clearThisServerStats => 'Очистити статистику цього сервера';
@override
String get compactDatabase => 'Стиснути базу даних';
@override
String compactDatabaseContent(Object size) {
return 'Розмір бази даних: $size\n\nЦе перебудує базу даних, щоб зменшити розмір файлу. Дані не будуть видалені.';
}
@override
String get confirm => 'Confirm';
@override
String get closeAfterSave => 'Зберегти та закрити';

View File

@@ -153,6 +153,17 @@ class AppLocalizationsZh extends AppLocalizations {
@override
String get clearThisServerStats => '清空此服务器统计';
@override
String get compactDatabase => '压缩数据库';
@override
String compactDatabaseContent(Object size) {
return '数据库大小:$size\n\n此操作将重新组织数据库以减少体积,数据不会丢失。';
}
@override
String get confirm => '确认';
@override
String get closeAfterSave => '保存后关闭';
@@ -1135,6 +1146,14 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
@override
String get clearThisServerStats => '清空此伺服器統計';
@override
String get compactDatabase => '壓縮資料庫';
@override
String compactDatabaseContent(Object size) {
return '資料庫大小:$size\n\n此操作將重新組織資料庫以減少體積,資料不會遺失。';
}
@override
String get closeAfterSave => '儲存後關閉';