Skip to content

Commit ee415cc

Browse files
author
Lukas Geiger
committed
feat: add SQLite export and store tooling
1 parent c55f5bd commit ee415cc

17 files changed

Lines changed: 1268 additions & 84 deletions

.github/workflows/stale.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
stale:
1414
runs-on: ubuntu-latest
1515
steps:
16-
- uses: actions/stale@v9
16+
- uses: actions/stale@v10
1717
with:
1818
stale-issue-message: >
1919
This issue has been automatically marked as stale because it has not had

.github/workflows/welcome.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,19 @@ jobs:
1414
welcome:
1515
runs-on: ubuntu-latest
1616
steps:
17-
- uses: actions/first-interaction@v1
17+
- uses: actions/first-interaction@v3
1818
with:
19-
repo-token: ${{ secrets.GITHUB_TOKEN }}
20-
issue-message: |
21-
Welcome! 👋 Thanks for opening your first issue in this repository.
19+
repo_token: ${{ secrets.GITHUB_TOKEN }}
20+
issue_message: |
21+
Welcome! Thanks for opening your first issue in this repository.
2222
2323
We'll review it as soon as possible. In the meantime:
2424
- Check if there's a similar issue already open
2525
- Add as much detail as possible (steps to reproduce, expected behavior, environment)
2626
2727
If you'd like to contribute a fix, PRs are always welcome!
28-
pr-message: |
29-
Welcome! 👋 Thanks for your first pull request in this repository.
28+
pr_message: |
29+
Welcome! Thanks for your first pull request in this repository.
3030
3131
A maintainer will review it soon. Please make sure:
3232
- [ ] Your changes are tested

CHANGELOG.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,33 @@
33
## [Unreleased]
44

55
### 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.
77
- Application icon support in the Tk window.
88
- Optional startup argument for opening a database file directly.
99
- `RELEASES.md` documents the local release bundle layout.
1010
- `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.
1115

1216
### Changed
1317
- README now embeds the existing GUI screenshot from `README/screenshots/main.png`.
1418
- Repository URLs and community health files now point to `file-bricks/SQLiteViewer`.
1519
- `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.
1633

1734
## [2.0.0] - 2026-02-01
1835

EXPORTFORMAT.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# Exportformat – `sqliteviewer-export-v1.json`
2+
3+
Stand: 2026-05-25
4+
5+
## Zweck
6+
7+
`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.

PORTIERUNGSPLAN.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# Portierungsplan - SQLite Viewer Pro
2+
3+
Stand: 2026-05-27
4+
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.
48+
- Unterstützte Startfälle: Demo-DB öffnen, kleine `.sqlite` öffnen, CSV/JSON-Export anzeigen, Query-Ergebnis filtern.
49+
50+
### Export von Desktop zu Web/Mobile
51+
52+
- Kurzfristig CSV als vorhandener Exportpfad.
53+
- `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.
73+
- Browser-seitiges Öffnen kleiner SQLite-Dateien evaluieren.
74+
- Android/iOS über PWA-Installierbarkeit und Touch-Tabellenansicht testen.
75+
76+
### P3 - Desktop-Smoke-Tests
77+
78+
- Linux-Start aus Source mit Tkinter prüfen.
79+
- macOS-Start aus Source mit Tkinter prüfen.
80+
- Packaging für Linux/macOS nur nach belastbarer Nachfrage planen.
81+
82+
## Nicht-Ziele
83+
84+
- Kein nativer Android-/iOS-Clone in der ersten Portierungsphase.
85+
- Kein Cloud-Datenbankservice.
86+
- Kein automatischer Upload lokaler Datenbanken.
87+
- Keine gemeinsame Desktop-/Mobile-Codebasis, wenn sie die einfache Tkinter-Desktop-App unnötig verkompliziert.

README.md

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# SQLite Viewer Pro
22

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.
44

55
![Python](https://img.shields.io/badge/Python-3.10+-blue)
66
![License](https://img.shields.io/badge/License-MIT-green)
@@ -10,36 +10,37 @@ Ein leichtgewichtiger, schneller SQLite-Datenbank-Browser mit Python und Tkinter
1010

1111
- **Tabellen-Browser** - Listet alle Tabellen mit sortierbarem Datenraster auf
1212
- **Schema-Ansicht** - CREATE TABLE Statements mit Syntax-Highlighting anzeigen
13-
- **SQL-Editor** - Eigene Abfragen mit Syntax-Highlighting und Ergebnisansicht ausfuehren
14-
- **Volltextsuche** - Echtzeit-Suche ueber alle Spalten
13+
- **SQL-Editor** - Eigene Abfragen mit Syntax-Highlighting und Ergebnisansicht ausführen
14+
- **Volltextsuche** - Echtzeit-Suche über alle Spalten
1515
- **CSV-Export** - Tabellen oder Abfrageergebnisse als CSV exportieren
16-
- **Sortierung** - Spaltenkoepfe anklicken fuer auf-/absteigende Sortierung
17-
- **Tastenkuerzel** - Ctrl+O (Oeffnen), Ctrl+F (Suche), Ctrl+E (Export), F5 (Aktualisieren), F9 (SQL ausfuehren)
18-
- **Direktstart mit Datei** - Optional eine Datenbankdatei beim Start uebergeben
16+
- **JSON-Export** - Sichtbare Ergebnisse optional als `sqliteviewer-export-v1.json` mit Metadaten exportieren
17+
- **Sortierung** - Spaltenköpfe anklicken für auf-/absteigende Sortierung
18+
- **Tastenkürzel** - Ctrl+O (Öffnen), Ctrl+F (Suche), Ctrl+E (Export), F5 (Aktualisieren), F9 (SQL ausführen)
19+
- **Direktstart mit Datei** - Optional eine Datenbankdatei beim Start übergeben
1920

2021
## Screenshots
2122

2223
![SQLite Viewer Pro - Hauptfenster](README/screenshots/main.png)
2324

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.
2526

2627
### 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.
2829

2930
### Schema-Ansicht
3031
Tabellenstrukturen mit syntaxhervorgehobenen CREATE TABLE Statements anzeigen.
3132

3233
### SQL-Editor
33-
SQL-Abfragen mit Echtzeit-Syntax-Highlighting schreiben und ausfuehren.
34+
SQL-Abfragen mit Echtzeit-Syntax-Highlighting schreiben und ausführen.
3435

3536
## Installation
3637

3738
### Voraussetzungen
3839

39-
- Python 3.10 oder hoeher
40+
- Python 3.10 oder höher
4041
- Tkinter (bei den meisten Python-Installationen enthalten)
4142

42-
Keine zusaetzlichen Abhaengigkeiten -- nutzt ausschliesslich die Python-Standardbibliothek.
43+
Keine zusätzlichen Abhängigkeiten -- nutzt ausschließlich die Python-Standardbibliothek.
4344

4445
### Aus dem Quellcode starten
4546

@@ -57,32 +58,34 @@ Doppelklick auf `START.bat` oder:
5758
python SQLiteViewer.py
5859
```
5960

60-
Eine Datenbank kann direkt beim Start geoeffnet werden:
61+
Eine Datenbank kann direkt beim Start geöffnet werden:
6162

6263
```cmd
6364
python SQLiteViewer.py pfad\zur\datenbank.sqlite
6465
```
6566

6667
## Verwendung
6768

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
7071
3. **Suchen**: Im Suchfeld tippen, um Zeilen zu filtern
7172
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`
7475

75-
## Tastenkuerzel
76+
## Tastenkürzel
7677

77-
| Kuerzel | Aktion |
78+
| Kürzel | Aktion |
7879
|---------|--------|
79-
| `Ctrl+O` | Datenbank oeffnen |
80+
| `Ctrl+O` | Datenbank öffnen |
8081
| `Ctrl+Q` | Beenden |
8182
| `Ctrl+E` | CSV exportieren |
8283
| `Ctrl+F` | Suchfeld fokussieren |
8384
| `Ctrl+A` | Alle Zeilen markieren |
8485
| `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`.
8689

8790
## Vergleich
8891

@@ -93,7 +96,7 @@ python SQLiteViewer.py pfad\zur\datenbank.sqlite
9396
| Tabellen durchsuchen | Ja | Ja | Ja |
9497
| Schema-Ansicht | Ja | Ja | Ja |
9598
| CSV-Export | Ja | Ja | Ja |
96-
| Volltextsuche | Ja | Eingeschraenkt | Ja |
99+
| Volltextsuche | Ja | Eingeschränkt | Ja |
97100
| Portabel | Ja | Teilweise | Nein |
98101
| Leichtgewichtig | Ja | Nein | Nein |
99102
| Keine Installation | Ja | Nein | Nein |
@@ -102,7 +105,7 @@ python SQLiteViewer.py pfad\zur\datenbank.sqlite
102105

103106
- **Framework**: Tkinter + ttk
104107
- **Datenbank**: sqlite3 (stdlib)
105-
- **Abhaengigkeiten**: Keine (reines Python stdlib)
108+
- **Abhängigkeiten**: Keine (reines Python stdlib)
106109
- **Einzelne Datei**: ~780 Zeilen Python
107110

108111
---
@@ -118,6 +121,7 @@ A lightweight, fast SQLite database browser built with Python and Tkinter. Open,
118121
- **SQL Editor** - Execute custom queries with syntax highlighting and result view
119122
- **Full-Text Search** - Search across all columns in real-time
120123
- **CSV Export** - Export any table or query result to CSV
124+
- **JSON Export** - Optionally export the visible result set as `sqliteviewer-export-v1.json` with metadata
121125
- **Sorting** - Click column headers to sort ascending/descending
122126
- **Keyboard Shortcuts** - Ctrl+O (open), Ctrl+F (search), Ctrl+E (export), F5 (refresh), F9 (execute SQL)
123127
- **Direct file launch** - Optionally pass a database file when starting the app
@@ -175,7 +179,7 @@ python SQLiteViewer.py path\to\database.sqlite
175179
3. **Search**: Type in the search field to filter rows
176180
4. **View schema**: Switch to the Schema tab
177181
5. **Run SQL**: Switch to the SQL Editor tab, write a query, press `F9`
178-
6. **Export**: `File > Export as CSV` or `Ctrl+E`
182+
6. **Export**: `File > Export as CSV`, `Ctrl+E`, or `File > Export as JSON`
179183

180184
### Keyboard Shortcuts
181185

@@ -189,6 +193,8 @@ python SQLiteViewer.py path\to\database.sqlite
189193
| `F5` | Refresh table |
190194
| `F9` | Execute SQL query |
191195

196+
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+
192198
### Comparison
193199

194200
| Feature | SQLite Viewer Pro | DB Browser | DBeaver |
@@ -218,7 +224,7 @@ python SQLiteViewer.py path\to\database.sqlite
218224

219225
## Haftung / Liability
220226

221-
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.
222228

223229
Nutzung auf eigenes Risiko. Keine Wartungszusage, keine Verfügbarkeitsgarantie, keine Gewähr für Fehlerfreiheit oder Eignung für einen bestimmten Zweck.
224230

README/screenshots/main.png

761 Bytes
Loading

0 commit comments

Comments
 (0)