taxmachine.pl

Baza danych — SQLite, MariaDB, kopie zapasowe i w chmurze

TaxMachine wspiera SQLite (lokalnie) i MariaDB/MySQL (sieć/chmura), oferuje kreatory kopii i przywracania, konwersję między silnikami oraz opcjonalne szyfrowane kopie w chmurze.

Opublikowano

Co potrafi (TL;DR)

TaxMachine obsługuje cztery silniki bazodanowe: SQLite (domyślny, lokalny), MySQL i MariaDB (jeden sterownik), Microsoft SQL Server oraz PostgreSQL. W produkcji używa się SQLite dla pojedynczego stanowiska i MariaDB dla pracy wielostanowiskowej oraz bazy na zdalnym serwerze (VPS, chmura). Program ma wbudowane kreatory tworzenia i przywracania kopii, narzędzie konwersji baz między silnikami oraz automatyczną aktualizację schematu po podniesieniu wersji. Opcjonalna, płatna usługa Kopie w chmurze wysyła zaszyfrowane (AES-256, hasło tylko po stronie klienta) archiwum kopii na serwery TaxMachine.

Wspierane silniki bazodanowe

  • SQLite — domyślny, lokalny plik .db. Tryb WAL domyślnie włączony.
  • MariaDB / MySQL — jeden sterownik, ten sam protokół. Port domyślny 3306.
  • Microsoft SQL Server.
  • PostgreSQL.

W oknach kopii i przywracania udostępniamy użytkownikowi SQLite oraz MariaDB/MySQL. SQL Server i PostgreSQL są dostępne w narzędziu konwersji do migracji „w jedną stronę" (np. z zewnętrznego SQL Server do bazy SQLite w TaxMachine).

Struktura bazy

Domyślny katalog danych: C:\Users\Public\Documents\TaxMachine\ (dla programu pity.exe katalog PITy\). Pliki:

  • LocalDB.db — główna baza: faktury, księgowania, ewidencje, dokumenty, ustawienia firmy. Format SQLite. Towarzyszący plik LocalDB.db-wal (write-ahead log) musi być kopiowany razem z głównym .db, w przeciwnym razie baza może zostać uszkodzona.
  • ldb.db — baza licencji i wbudowanych słowników. Występują warianty ldb.db-free i ldb.db-pro dla różnych poziomów licencji.
  • cfg.db — konfiguracja programu (lista baz, ustawienia stanowiska); otwierana jako pierwsza przy starcie programu.
  • ap.db — log operacji modułu Automat Płatnika.

W katalogu znajduje się też podkatalog kopie\ używany domyślnie do zapisu lokalnych kopii. Lokalizację można zmienić w opcjach programu.

Praca wielostanowiskowa (MariaDB)

Bazy SQLite nie wolno umieszczać na dysku sieciowym ani udostępniać kilku komputerom — równoczesne otwarcie z dwóch instancji programu grozi nieodwracalnym uszkodzeniem pliku. Do pracy 2+ użytkowników jednocześnie na tych samych danych służy serwer MariaDB (rekomendowany) lub MySQL.

Konfiguracja w oknie Konfiguracja → Bazy danych: adres serwera, port (domyślnie 3306), nazwa bazy, użytkownik i hasło. Połączenia testuje przycisk „Testuj połączenie" — program faktycznie otwiera połączenie i wykonuje zapytanie kontrolne.

TaxMachine pracuje z bazą MariaDB zarówno w sieci lokalnej, jak i na zdalnym hostingu czy VPS-ie (Hetzner, OVH, AWS RDS itp.) — opis scenariusza chmurowego w odpowiedzi FAQ o pracy z bazą na zdalnym serwerze.

Kopie zapasowe — strategie

Awaria dysku, błąd zapisu, ransomware, kradzież lub pożar nastąpi prędzej czy później. Branżowy standard, do którego należy dążyć:

  • 3 kopie danych łącznie (oryginał + 2 kopie),
  • 2 różne nośniki (np. SSD wewnętrzny + dysk USB),
  • 1 kopia off-site (poza pomieszczeniem biura — w chmurze albo na dysku w innym budynku).

Domyślna konfiguracja TaxMachine zapisuje kopie do podkatalogu kopie\ obok bazy — czyli na tym samym dysku, na którym znajduje się baza. To wystarcza wyłącznie do szybkiego odtworzenia po pomyłce operatora; awaria sprzętu unieszkodliwia jednocześnie bazę i kopie. Zalecana zmiana: w opcjach programu wybierz katalog na innym fizycznym dysku (zewnętrzny USB, dysk wewnętrzny inny niż systemowy, NAS) — szczegółowo opisane w przewodniku Kopie baz danych.

Kopie zapasowe — funkcje w programie

Kreator kopii jest uruchamiany ręcznie przyciskiem „Twórz kopię" w zakładce Konfiguracja albo automatycznie z harmonogramu. Przebieg:

  1. Kontrola integralności SQLite — wynik inny niż „ok" powoduje ostrzeżenie, ale tworzenie kopii kontynuuje.
  2. Wykonanie kopii pliku bazy — dla SQLite szybka ścieżka oparta na oficjalnym API SQLite Online Backup. Dla MariaDB/MySQL kopiowanie tabela po tabeli do tymczasowego pliku SQLite.
  3. Kompresja (opcja „Kompresuj kopie") — archiwum 7-Zip (.7z), poziom kompresji 4, wielowątkowo.
  4. Szyfrowanie (opcja „Szyfruj kompresowane kopie") — hasło ustawiane w archiwum 7-Zip, AES-256. Minimalna długość hasła 6 znaków; dwa pola hasła muszą być zgodne.
  5. Wysyłka do chmury (opcja „Przesyłaj dane do chmury") — wymaga kompresji i szyfrowania, opis w sekcji niżej.

Nazwa pliku ma format [NazwaBazy]_[data_godzina].db (np. LocalDB.db_2026-05-22 14-30-15.db); kompresowane archiwum dostaje rozszerzenie .7z. Każda kopia to pełny snapshot bazy, nie różnicowy.

Kopie w chmurze (płatna usługa)

Opcjonalna usługa abonamentowa, włączana w kreatorze kopii polem „Przesyłaj dane do chmury". Po wykonaniu i zaszyfrowaniu archiwum program liczy jego skrót kontrolny oraz rozmiar pliku, rejestruje metadane kopii w usłudze, loguje się do serwera FTPS i wysyła zaszyfrowane archiwum do katalogu przypisanego do licencji lub konta użytkownika, a po zakończeniu oznacza wysyłkę jako kompletną.

Cechy usługi: codzienna automatyczna kopia off-site bez konfigurowania własnej infrastruktury, szyfrowanie po stronie klienta (AES-256, na serwerach trzymane są wyłącznie zaszyfrowane archiwa), replikacja w kilku lokalizacjach geograficznych, brak limitu rozmiaru i ilości kopii, łatwe odtworzenie na nowym komputerze (zakładka „Kopie w chmurze" w kreatorze przywracania). Wysyłka działa wyłącznie dla zarejestrowanego programu; w trybie demo kreator pokazuje informację „Kopia w chmurze niedostępna".

Więcej oraz cennik: /sklep/kopie-w-chmurze.

Przywracanie kopii

Okno Konfiguracja → Przywróć kopię prowadzi przez:

  1. Wybór źródła — zakładka Kopia lokalna (plik .db lub .7z z dysku) albo Kopie w chmurze (lista pobrana z serwera dla licencji lub użytkownika).
  2. Wybór operacji: Odtworzenie kopii, Zapis kopii (.db) na dysku lokalnym lub Pobranie archiwum (.7z).
  3. Wybór bazy docelowej — SQLite (ścieżka pliku) lub MariaDB/MySQL (host, port, baza, użytkownik, hasło). Program testuje połączenie i wykrywa, czy baza docelowa nie jest aktualnie otwartą bazą roboczą; ostrzega przed nadpisaniem niepustej bazy.
  4. Hasło wymagane dla .7z (wpisywane ręcznie albo z opcji).
  5. Pobranie z chmury (FTPS) → dekompresja w katalogu tymczasowym → odtworzenie do bazy docelowej.

Odtworzenie SQLite do SQLite korzysta z natywnego API kopii SQLite; odtworzenie SQLite do MariaDB wykonuje migrację schematu i przepisanie danych. Po odtworzeniu można zaznaczyć „Dodaj do listy baz" i „Przełącz na tę bazę" — wpis zostanie dodany do listy baz programu w pliku ldb.db.

Konwersja baz

Narzędzie konwersji baz danych ma dwa panele (źródło i cel) oraz przycisk „Kopiuj dane". Każdy panel pozwala wybrać typ bazy (SQLite — plik .db; MariaDB/MySQL — adres serwera, port, baza, użytkownik, hasło; dodatkowo dostępne są też SQL Server i PostgreSQL).

Dostępne operacje: „Testuj połączenie" otwiera bazę i wykonuje zapytanie kontrolne; „Wykonaj kopię" eksportuje bazę jako .db lub .json; „Kopiuj dane" uruchamia migrację w osobnym wątku, przepisując każdą tabelę ze źródła do celu.

Najczęstsze użycie to migracja SQLite → MariaDB przy przechodzeniu na pracę wielostanowiskową. Migracja w drugą stronę (MariaDB → SQLite) też jest wspierana — przydatna przy serwisie bazy lub przenoszeniu danych na komputer bez serwera MariaDB.

Aktualizacja struktury bazy

Po podniesieniu wersji programu schemat bazy może wymagać zmian (nowe tabele, kolumny, indeksy). TaxMachine wykrywa to automatycznie przy starcie i pokazuje kreator aktualizacji bazy. Kreator informuje o numerze wersji, tworzy automatyczną kopię aktualnej bazy w katalogu kopie\ (z weryfikacją integralności), wykonuje migrację schematu w transakcji, a w razie błędu wycofuje zmiany i pokazuje treść błędu wraz z nazwą tabeli.

Anulowanie aktualizacji blokuje pracę z bazą. Przy pracy wielostanowiskowej po aktualizacji jednego stanowiska schemat zmienia się dla wszystkich — pozostałe stanowiska też muszą zostać zaktualizowane do tej samej wersji programu, zanim się ponownie podłączą.

Bezpieczeństwo

  • Szyfrowanie kopii — AES-256 w archiwum 7-Zip, klucz z hasła użytkownika.
  • Hasło zna tylko klient — TaxMachine nie przechowuje hasła ani nie ma mechanizmu odzyskiwania. Bez hasła kopii nie da się odtworzyć.
  • Transmisja do chmury — szyfrowana (FTPS) na już zaszyfrowanym archiwum.
  • MariaDB przez Internet — natywne SSL/TLS w serwerze i programie; przy publicznym wystawianiu portu 3306 zalecamy dodatkowo VPN (WireGuard, Tailscale, OpenVPN) lub SSH-tunnel — szczegóły w FAQ.

Ograniczenia

  • SQLite nie nadaje się do dysku sieciowego ani do pracy wielostanowiskowej — do pracy 2+ osób jednocześnie używaj MariaDB.
  • Pliki towarzyszące .db-wal muszą być kopiowane razem z głównym plikiem .db.
  • Hasło do kopii w chmurze musi mieć minimum 6 znaków (zalecane 12+, mieszane litery / cyfry / znaki specjalne).
  • Kopia w chmurze wymaga zarejestrowanego programu i włączonej kompresji oraz szyfrowania — niezaszyfrowanego pliku kreator nie wyśle.
  • Synchronizacja katalogu bazy przez OneDrive / Dropbox / Google Drive podczas pracy programu często prowadzi do uszkodzenia pliku — używaj wbudowanego mechanizmu kopii.

Powiązane

Inne moduły programu:

Pomoc i dokumentacja: