Firebird – cyfrowe rozdwojenie jaźni

Głupia sprawa.

Firebird wydaje się być całkiem sprawnie rozwijanym projektem, na dodatek o całkiem niezłej opinii, ale jak do tej pory nie miałem konieczności, czy to woli, korzystania z niego. Konieczność nadeszła wraz z dniem, gdy zapukali do mnie uśmiechnięci ludzie z ofertą nie do odrzucenia – ‘Pan nam zrobi serwer, co?’.

Serwer oprócz kilku standardowych funkcji ma posłużyć jako centralna przechowalnia baz danych dla pewnego programu. Dotychczas każdy z użytkowników uruchamiał na swoim komputerze serwer Firebirda i program się z nim łączył, tworzył bazę, itp. ‘Ich’ Windowsy posiadały serwer baz danych w wersji 2.0.4, nowo postawiony Debian Lenny w repozytoriach również posiada wersję 2.0.4, zatem niemal wymarzona sytuacja dla wyemigrowania baz z Windowsa (ze wszystkich komputerów) do Linuksa.

O naiwny amatorze. Zawiodły niemal wszystkiego metody. Skopiowanie plików *.fdb z Windowsa i wrzucenie ich na Linuksa, próba rozpoznania ich przez linuksowy serwer Firebirda? Nic z tego. Zrzucenie zawartości bazy do pliku, ‘wciągnięcie’ ich do bazy na centralce? Brak oprogramowania (niewiedza?). Światełko w tunelu pojawiło się po zainstalowaniu programu FlameRobin. Odczyt baz lokalnie, skopiowanie jej na serwer zdalny? Nie ma takiej możliwości. Przeciąganie, upuszczanie – to bez sensu.

Krok po kroku udało się rzeczonemu amatorowi dojść do tego, że należy na Windowsie wykonać backup wybranej bazy danych, następnie przy wykorzystaniu tej kopii na Linuksie stworzyć nową bazę i wczytać zawartość. Nie będę może rozpisywał się nad technikalami (te można odczytać na tej stronie). Jednak okazało się, że nieźle wyglądający program FlameRobin nie potrafi, bądź też nie może obejść wymagań bazy i nie da się takiej migracji kopii bezpieczeństwa na serwer wykonać z pliku zapisanego na lokalnym komputerze. Backup musi zostać przeniesiony na Linuksa i dopiero stamtąd przywracany do użytku.

Celem stało się stworzenie prostego narzędzia/procedury przenoszenia lokalnych baz na serwer. Prostego w sensie stopnia skomplikowania przystępnego dla zwykłej pani Uli, dla której wpisywanie ścieżek dostępu dla baz danych (specyfika Firebirda) to przeszkoda nie do pokonania. Gdyby nie ergonomia Windowsa XP, sprawa mogłaby być banalnie prosta – zgodnie z przyzwyczajeniami z Thunara, tworzę nową akcję ‘wyślij na serwer’ pod prawym przyciskiem myszy. Po wybraniu pliku z rozszerzeniem .fdb, akcja odpala skrypt który robi z lokalnej bazy kopię bezpieczeństwa, wysyła ją na linuksowy serwer, a ten zajmuje się resztą.

Z tego tego sprytnie uknutego planu mogłem wykorzystać tylko ostatnią jego część – ‘linuksowy serwer, a ten zajmuje się resztą’. Nie posiadam w słowniku kulturalnych obelg potrafiących opisać frustrację i niemoc przy próbie wykorzystania Windowsa XP do stworzenia akcji konwersji/wysłania. Zabrakło mi do tego sił, czasu i najpewniej wiedzy. Ale w końcu to stary system.

Koniec końców panie musiały się nauczyć odczytywać ściągę, w której opisałem sposób otworzenia bazy w FlameRobinie, zrobienia kopii bezpieczeństwa, wrzucenia jej przez otoczenie sieciowe do katalogu w Linuksie, który cyklicznie sprawdza ten katalog i pojawiające się tam bazy wdraża do Firebirda w wersji linuksowej.

Właśnie to tytułowe rozdwojenie jaźni najbardziej mnie zadziwiło. Serwer Firebirda w wersji windowsowej i linuksowej generuje dwa różne pliki bazy. Dlaczego, jaki w tym cel, zamysł, przesłanie? Chyba nigdy się nie dowiem.