You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+18-1Lines changed: 18 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,16 +3,33 @@
3
3
## [Unreleased]
4
4
5
5
### Added
6
-
- Local release bundle in `releases/v2.0.0/` refreshed from the current `dist/SQLiteViewer.exe` build.
6
+
- Local release bundle workflow documented for the ignored `releases/` workspace; public source files stay lightweight.
7
7
- Application icon support in the Tk window.
8
8
- Optional startup argument for opening a database file directly.
9
9
-`RELEASES.md` documents the local release bundle layout.
10
10
-`SQLiteViewer.spec` is tracked for reproducible PyInstaller builds.
11
+
- Optional JSON companion export `sqliteviewer-export-v1.json` with source metadata, row limits, visible columns, and serialized result rows.
12
+
-`EXPORTFORMAT.md` documents the JSON export contract for desktop-to-web/mobile companion workflows.
13
+
- Reproducible Windows Store screenshot generation under `_WARTUNG/generate_store_screenshots.py`; generated screenshots stay in the ignored local `releases/windowsstore/screenshots/` workspace while `README/screenshots/main.png` is refreshed for GitHub.
14
+
- Local WACK notes remain in the ignored `releases/windowsstore/` workspace; public root docs now describe only the source-controlled workflow.
11
15
12
16
### Changed
13
17
- README now embeds the existing GUI screenshot from `README/screenshots/main.png`.
14
18
- Repository URLs and community health files now point to `file-bricks/SQLiteViewer`.
15
19
-`START.bat` now forwards command-line arguments and reports missing Python cleanly.
20
+
- Store listings and Store metadata now reflect the current CSV/JSON export feature set and the active `file-bricks/SQLiteViewer` privacy/support links.
21
+
-`PORTIERUNGSPLAN.md` marks the Store listing and screenshot workflow refresh as completed without requiring ignored release artifacts in the public repo.
22
+
- Community workflows now use `actions/stale@v10` and `actions/first-interaction@v3` with current input names.
23
+
24
+
### Fixed
25
+
- SQL Editor now detects result-returning statements via `cursor.description`, so
26
+
queries with leading comments are rendered correctly instead of being treated as DML.
27
+
- SQL Editor now refreshes the currently selected table after data-changing
28
+
statements instead of jumping back to the first table in the database.
29
+
- Search now escapes `%`, `_`, and `\` correctly so literal LIKE searches do not
30
+
fail on wildcard-containing terms.
31
+
- Opening a database now only closes the current session after the new read-only
32
+
connection succeeds, so failed open attempts keep the existing database in place.
`sqliteviewer-export-v1.json` ist ein optionaler Companion-Export für Web/PWA-, Review- und Austausch-Workflows. CSV bleibt der Standardexport für einfache Tabellenweitergabe. JSON ergänzt diesen Pfad um Metadaten zur Herkunft und zur aktuell sichtbaren Ansicht.
8
+
9
+
## Grundsätze
10
+
11
+
- Der Export ist additiv: CSV bleibt unverändert verfügbar.
12
+
- Es werden nur aktuell sichtbare Ergebniszeilen exportiert.
13
+
- Der Export ist offline-first und enthält keine Cloud-Synchronisation.
14
+
- BLOB-Werte werden JSON-kompatibel als Base64-Struktur serialisiert.
15
+
16
+
## Struktur
17
+
18
+
```json
19
+
{
20
+
"schema_version": "sqliteviewer-export-v1",
21
+
"app_name": "SQLite Viewer Pro",
22
+
"app_version": "2.0.0",
23
+
"exported_at": "2026-05-25T11:34:56+02:00",
24
+
"source": {
25
+
"database_path": "C:/path/demo.sqlite",
26
+
"database_name": "demo.sqlite",
27
+
"view": "table",
28
+
"table": "items",
29
+
"query": null,
30
+
"row_limit": 1000,
31
+
"search_term": null,
32
+
"sort_column": "id",
33
+
"sort_descending": false
34
+
},
35
+
"columns": ["id", "name"],
36
+
"row_count": 2,
37
+
"result_rows": [
38
+
{"id": 1, "name": "Alpha"},
39
+
{"id": 2, "name": "Beta"}
40
+
]
41
+
}
42
+
```
43
+
44
+
## Feldbedeutung
45
+
46
+
-`schema_version`: Stabile Kennung des Exportvertrags.
47
+
-`app_name` / `app_version`: Herkunft des Exports.
48
+
-`exported_at`: ISO-8601-Zeitstempel mit Zeitzone.
49
+
-`source.database_path`: Ursprünglicher Datenbankpfad auf dem exportierenden System.
50
+
-`source.database_name`: Dateiname der Datenbank.
51
+
-`source.view`: Herkunft der sichtbaren Daten, aktuell `table`, `table_search` oder `query`.
52
+
-`source.table`: Aktive Tabelle, falls vorhanden.
53
+
-`source.query`: Ausgeführte SQL-Abfrage bei Query-Exporten.
54
+
-`source.row_limit`: Aktives Zeilenlimit der Ansicht.
55
+
-`source.search_term`: Aktiver Suchbegriff in der Tabellenansicht.
56
+
-`source.sort_column` / `source.sort_descending`: Sortierzustand der Tabellenansicht.
57
+
-`columns`: Sichtbare Spaltenreihenfolge.
58
+
-`row_count`: Anzahl exportierter Ergebniszeilen.
59
+
-`result_rows`: Ergebniszeilen als Objekte mit Spaltennamen.
60
+
61
+
## Wertkodierung
62
+
63
+
-`null`, `string`, `number` und `boolean` bleiben direkt erhalten.
64
+
-`bytes` werden als Objekt exportiert:
65
+
66
+
```json
67
+
{
68
+
"type": "blob",
69
+
"encoding": "base64",
70
+
"size_bytes": 12,
71
+
"data": "AAEC"
72
+
}
73
+
```
74
+
75
+
- Nicht direkt JSON-kompatible Sonderfälle werden als String serialisiert.
76
+
77
+
## Nicht-Ziele
78
+
79
+
- Kein vollständiger Dump interner SQLite-Metadaten.
80
+
- Kein bidirektionaler Importvertrag in v1.
81
+
- Keine Synchronisation kompletter Datenbanken zwischen Geräten.
Scope: Windows Store, plattformübergreifende Desktop-Nutzung, Web-/Mobile-Companion
5
+
6
+
## Ausgangslage
7
+
8
+
SQLite Viewer Pro ist ein leichtgewichtiger SQLite-Datenbank-Browser auf Basis von Python, Tkinter und `sqlite3` aus der Standardbibliothek. Die Anwendung ist bereits als Windows-Desktop-App mit Store-Artefakten vorbereitet und laut README grundsätzlich für Windows, Linux und macOS geeignet.
9
+
10
+
Der Kernnutzen liegt im schnellen lokalen Öffnen, Durchsuchen, Abfragen und Exportieren von SQLite-Datenbanken. Die App verarbeitet lokale Datenbankdateien, oft mit potenziell sensiblen Inhalten. Deshalb bleibt ein offline-first Desktop-Modell wichtig; mobile und Web-Nutzung sollen primär kleine, bewusst importierte Datenausschnitte statt kompletter lokaler Datenbanken adressieren.
11
+
12
+
## Entscheidung
13
+
14
+
Windows Store bleibt der primäre Release-Kanal. macOS und Linux werden als Source-/Build-Smoke-Ziele aus derselben Tkinter-Codebasis geführt. Android, iOS und Web werden nicht als vollständige native Desktop-Clones geplant, sondern als Web/PWA-Companion für kleine SQLite-Dateien, Demo-Datenbanken und CSV-/JSON-Exporte.
15
+
16
+
Begründung:
17
+
18
+
- Nachfrage: SQLite ist ein Entwickler- und Power-User-Format; der größte Bedarf liegt weiter auf Desktop-Systemen mit lokalem Dateizugriff.
19
+
- Mobilität: Auf Mobilgeräten ist vollständiger Dateisystemzugriff eingeschränkt, aber das schnelle Prüfen kleiner Datenbankauszüge oder Exporte ist sinnvoll.
20
+
- Datenschutz: Lokale Datenbanken sollen ohne Cloud-Zwang geöffnet werden. Eine Web/PWA-Linie darf nur explizit ausgewählte Dateien oder Exporte verarbeiten.
21
+
- Aufwand: Die bestehende Tkinter-App ist für Desktop pragmatisch. Ein nativer Mobile-Clone würde viel UI- und Datei-Handling neu bauen, ohne den Kernnutzen stark zu erhöhen.
22
+
23
+
## Plattformbewertung
24
+
25
+
| Option | Bewertung | Entscheidung |
26
+
| --- | --- | --- |
27
+
| Windows Store | Sehr sinnvoll: Zielgruppe, bestehende MSIX-/Store-Artefakte und MIT-Lizenz passen. | P0 für Listing/Screenshots abgeschlossen; WACK-Protokoll bleibt im lokalen, ignorierten `releases/`-Workspace. |
28
+
| Android-Version oder Android-Clone | Native Vollversion nicht sinnvoll, weil SQLite-Dateizugriff und große Tabellen auf Mobilgeräten sperrig sind. | Nur PWA-Testziel für kleine Dateien/Exports. |
29
+
| Webapp | Sinnvoll als Companion: kleine `.sqlite`-Dateien im Browser öffnen, CSV/JSON ansehen, Demo-DBs prüfen. | P2: Web/PWA-Prototyp mit lokalem Browser-Speicher. |
30
+
| iOS-Version | Native App aktuell zu hoher Aufwand wegen Sandbox und App-Store-Review. | Nur PWA-Testziel nach Web-Prototyp. |
31
+
| Mac App | Sinnvoll als Source-/Build-Ziel, da Python/Tkinter portabel ist. | P3: macOS-Smoke-Test dokumentieren. |
32
+
| Linux-Version | Sinnvoll als Source-/Build-Ziel; optional später AppImage/Flathub prüfen. | P3: Linux-Smoke-Test dokumentieren. |
33
+
34
+
## Zielarchitektur
35
+
36
+
### Desktop-Kern
37
+
38
+
- Python/Tkinter bleibt die Desktop-Codebasis.
39
+
- SQLite-Dateien werden lokal und read-only geöffnet.
40
+
- CSV-Export bleibt das kleinste stabile Austauschformat.
41
+
- Optionales zusätzliches JSON-Exportformat `sqliteviewer-export-v1.json` ist für sichtbare Ergebnisse umgesetzt und transportiert Tabellenmetadaten, aktive Query, Spalten, Zeilenlimit und Ergebniszeilen.
42
+
43
+
### Web/PWA-Companion
44
+
45
+
- Separater Web-Prototyp, keine direkte Kopplung an Tkinter.
46
+
- Browser-seitige Verarbeitung kleiner Dateien über `sql.js` oder eine vergleichbare WebAssembly-SQLite-Engine.
47
+
- Keine Server-Uploads als Standard; der Datenschutz-Hinweis "lokal im Browser" soll sichtbar dokumentiert werden.
-`sqliteviewer-export-v1.json` ist als optionaler, stabiler Companion-Vertrag eingeführt.
54
+
- Keine Synchronisation vollständiger Datenbanken ohne separate Datenschutz- und Größenstrategie.
55
+
56
+
## Roadmap
57
+
58
+
### P0 - Store-Readiness
59
+
60
+
- Store-Screenshots sind jetzt reproduzierbar über `_WARTUNG/generate_store_screenshots.py` erzeugbar. Die generierten Store-Dateien bleiben lokal im ignorierten `releases/windowsstore/screenshots/`-Workspace; `README/screenshots/main.png` ist der source-kontrollierte GitHub-Screenshot.
61
+
- Store-Listing DE/EN ist gegen echte Umlaute, JSON-Export und aktuelle Support-/Privacy-Links synchronisiert.
62
+
- MSIX-/WACK-Testnotizen werden lokal im ignorierten `releases/windowsstore/`-Workspace gepflegt; der öffentliche Repo-Stand verweist nur auf source-kontrollierte Store- und Build-Helfer.
63
+
64
+
### P1 - Companion-Vertrag
65
+
66
+
-`sqliteviewer-export-v1.json` ist spezifiziert: App-Version, Quelle, Tabelle/Query, Spalten, Zeilen, Limit und Exportzeit sind dokumentiert.
67
+
- Desktop-Export ist optional neben CSV im Menü verfügbar.
68
+
- Datenschutzgrenzen für Companion-Dateien dokumentieren.
69
+
70
+
### P2 - Web/PWA-Prototyp
71
+
72
+
- Separaten `webapp/`-Prototyp erst bei Umsetzungsstart anlegen.
Copy file name to clipboardExpand all lines: README.md
+30-24Lines changed: 30 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# SQLite Viewer Pro
2
2
3
-
Ein leichtgewichtiger, schneller SQLite-Datenbank-Browser mit Python und Tkinter. Oeffne, durchsuche und analysiere jede SQLite-Datenbank -- ohne SQL-Kenntnisse.
3
+
Ein leichtgewichtiger, schneller SQLite-Datenbank-Browser mit Python und Tkinter. Öffne, durchsuche und analysiere jede SQLite-Datenbank -- ohne SQL-Kenntnisse.
-**Direktstart mit Datei** - Optional eine Datenbankdatei beim Start übergeben
19
20
20
21
## Screenshots
21
22
22
23

23
24
24
-
Die aktuelle Aufnahme zeigt den Daten-Browser mit den integrierten Tabs fuer Schema-Ansicht und SQL-Editor.
25
+
Die aktuelle Aufnahme zeigt den Daten-Browser mit den integrierten Tabs für Schema-Ansicht und SQL-Editor.
25
26
26
27
### Daten-Browser
27
-
Oeffne beliebige `.db`-, `.sqlite`- oder `.sqlite3`-Dateien und durchsuche Tabellen sofort.
28
+
Öffne beliebige `.db`-, `.sqlite`- oder `.sqlite3`-Dateien und durchsuche Tabellen sofort.
28
29
29
30
### Schema-Ansicht
30
31
Tabellenstrukturen mit syntaxhervorgehobenen CREATE TABLE Statements anzeigen.
31
32
32
33
### SQL-Editor
33
-
SQL-Abfragen mit Echtzeit-Syntax-Highlighting schreiben und ausfuehren.
34
+
SQL-Abfragen mit Echtzeit-Syntax-Highlighting schreiben und ausführen.
34
35
35
36
## Installation
36
37
37
38
### Voraussetzungen
38
39
39
-
- Python 3.10 oder hoeher
40
+
- Python 3.10 oder höher
40
41
- Tkinter (bei den meisten Python-Installationen enthalten)
41
42
42
-
Keine zusaetzlichen Abhaengigkeiten -- nutzt ausschliesslich die Python-Standardbibliothek.
43
+
Keine zusätzlichen Abhängigkeiten -- nutzt ausschließlich die Python-Standardbibliothek.
43
44
44
45
### Aus dem Quellcode starten
45
46
@@ -57,32 +58,34 @@ Doppelklick auf `START.bat` oder:
57
58
python SQLiteViewer.py
58
59
```
59
60
60
-
Eine Datenbank kann direkt beim Start geoeffnet werden:
61
+
Eine Datenbank kann direkt beim Start geöffnet werden:
61
62
62
63
```cmd
63
64
python SQLiteViewer.py pfad\zur\datenbank.sqlite
64
65
```
65
66
66
67
## Verwendung
67
68
68
-
1.**Datenbank oeffnen**: `File > Open Database`, `Ctrl+O` oder per Startargument
69
-
2.**Tabellen durchsuchen**: Tabelle aus dem Dropdown waehlen
69
+
1.**Datenbank öffnen**: `File > Open Database`, `Ctrl+O` oder per Startargument
70
+
2.**Tabellen durchsuchen**: Tabelle aus dem Dropdown wählen
70
71
3.**Suchen**: Im Suchfeld tippen, um Zeilen zu filtern
71
72
4.**Schema ansehen**: Zum Schema-Tab wechseln
72
-
5.**SQL ausfuehren**: Zum SQL-Editor-Tab wechseln, Abfrage schreiben, `F9`druecken
73
-
6.**Exportieren**: `File > Export as CSV` oder `Ctrl+E`
73
+
5.**SQL ausführen**: Zum SQL-Editor-Tab wechseln, Abfrage schreiben, `F9`drücken
74
+
6.**Exportieren**: `File > Export as CSV`, `Ctrl+E` oder `File > Export as JSON`
74
75
75
-
## Tastenkuerzel
76
+
## Tastenkürzel
76
77
77
-
|Kuerzel| Aktion |
78
+
|Kürzel| Aktion |
78
79
|---------|--------|
79
-
|`Ctrl+O`| Datenbank oeffnen|
80
+
|`Ctrl+O`| Datenbank öffnen|
80
81
|`Ctrl+Q`| Beenden |
81
82
|`Ctrl+E`| CSV exportieren |
82
83
|`Ctrl+F`| Suchfeld fokussieren |
83
84
|`Ctrl+A`| Alle Zeilen markieren |
84
85
|`F5`| Tabelle aktualisieren |
85
-
|`F9`| SQL-Abfrage ausfuehren |
86
+
|`F9`| SQL-Abfrage ausführen |
87
+
88
+
Der JSON-Export ist bewusst additiv gehalten: CSV bleibt der schnellste Standardpfad, während `sqliteviewer-export-v1.json` die aktuelle Ansicht inklusive Metadaten für Companion-Workflows festhält. Details stehen in `EXPORTFORMAT.md`.
The JSON export stays intentionally additive: CSV remains the default fast path, while `sqliteviewer-export-v1.json` captures the current visible result plus metadata for companion workflows. See `EXPORTFORMAT.md` for details.
197
+
192
198
### Comparison
193
199
194
200
| Feature | SQLite Viewer Pro | DB Browser | DBeaver |
Dieses Projekt ist eine **unentgeltliche Open-Source-Schenkung** im Sinne der §§ 516 ff. BGB. Die Haftung des Urhebers ist gemäß **§ 521 BGB** auf **Vorsatz und grobe Fahrlässigkeit** beschränkt. Ergänzend gelten die Haftungsausschlüsse aus GPL-3.0 / MIT / Apache-2.0 §§ 15–16 (je nach gewählter Lizenz).
227
+
Dieses Projekt ist eine **unentgeltliche Open-Source-Schenkung** im Sinne der §§ 516 ff. BGB. Die Haftung des Urhebers ist gemäß **§ 521 BGB** auf **Vorsatz und grobe Fahrlässigkeit** beschränkt. Ergänzend gilt der Haftungsausschluss der MIT-Lizenz.
222
228
223
229
Nutzung auf eigenes Risiko. Keine Wartungszusage, keine Verfügbarkeitsgarantie, keine Gewähr für Fehlerfreiheit oder Eignung für einen bestimmten Zweck.
0 commit comments