Manual:SQLite/pl

From MediaWiki.org
Jump to: navigation, search
Logo SQLite

Wsparcie oprogramowania MediaWiki dla baz danych SQLite zyskała pełną funkcjonalność w wersji MediaWiki 1.16, lecz nadal jest w fazie rozwoju. Od wersji MediaWiki 1.13 wsparcie dla baz danych SQLite stanowi część głównej części kodu systemu. Poniżej znajdują się informacje na temat instalacji biblioteki SQLite w środowisku PHP.

Contents

O SQLite [edit]

SQLite to opensource'owa (o otwartym kodzie) biblioteka baz danych dostępna w domenie publicznej. Odwrotnie, niż ma to miejsce w systemach baz danych klient-serwer, biblioteka SQLite jest skonsolidowana z językiem skryptowym PHP, stanowiąc integralną część procesu serwera. Oprogramowanie MediaWiki wykorzystuje cechy SQLite poprzez proste wywołania funkcji, co redukuje opóźnienia w dostępnie do bazy danych, gdyż wywołania funkcji są efektywniejsze niż komunikacja międzyprocesowa.

Korzystanie z SQLite jako systemu baz danych dla instalacji MediaWiki ma swoje zalety i wady.

Zalety
  • Nie zachodzi konieczność instalowania i zarządzania odrębnym systemem baz danych, takim, jak MySQL, co znacznie zmniejsza obciążenie administracyjne i eliminuje część punktów, gdzie mogą wystąpić awarie.
  • Powyższe oznacza również, ze SQLite o wiele lepiej nadaje się do przenośnych instalacji silnika MediaWiki, uruchamianych np. z pamięci USB.
  • Nie występują sztucznie narzucone ograniczenia baz danych na współdzielonych maszynach.
  • Cała baza danych zapisana jest jako jeden wieloplatformowy plik, co upraszcza tworzenie kopii zapasowych i migrację.
Wady
  • Bazy danych SQlite są w mniejszym stopniu skalowalne, więc w przypadku dużych i popularnych wiki lepszym rozwiązaniem jest skorzystanie z baz danych MySQL lub PostgreSQL.
  • Mimo, ze bazy danych SQLite są wyposażone we własną wyszukiwarkę, nie udostępnia ona bardziej skomplikowanych mechanizmów, obecnych w np. Lucene.
  • Niektóre kompilacje PHP (RHEL, starsze wersje XAMPP) dostarczane są ze starszymi wersjami SQLite, o o ograniczonej funkcjonalności zawierających niezałatane luki.

Instalacja SQLite [edit]

Mimo, że oprogramowanie MediaWiki obsługuje wszystkie wersje SQLite nowsze od 3.1.2 (wymagana obsługa polecenia ADD COLUMN), zaleca się korzystanie z silnika SQLite w wersji 3.6, gdyż naprawiono w nim błędy związane z integralnością danych. Dodatkowo, w celu korzystania z opcji pełnego wyszukiwania tekstu, silnik SQLite musi zostać skompilowany z włączonym modułem FTS3 – większość współczesnych kompilacji zawiera ten moduł w ustawieniach domyślnych. SQLite3 działa poprzez funkcje PDO języka skryptowego PHP.

  • W celu zainstalowania silnika SQLite3 w systemie Linux opartym na dystrybucji Debian, należy wykonać polecenie apt-get install php5-sqlite3.
    • W nowszych dystrybucjach Ubuntu (i zapewne w innych) pakiet nosi nazwę php5-sqlite, bez cyfry 3 na końcu.
    • Pliki binarne ze strony php.net przeznaczone dla systemów Windows nie powodują problemów.
  • Od wersji PHP 5.1.0 zachodzi zależność SQLite od PDO. W pliku php.ini należy usunąc komentarz z następujących dwóch linii (uwaga: czasami niemożliwe jest wydanie polecenia phpinfo() w celu sprawdzenia obecności poniższych linii, gdyż język PHP z włączoną obsługą SQLite często powoduje zawieszenie aplikacji lub nieprawidłowe działanie, jeśli obsługa PDO nie jest włączona, szczególnie w systemach Windows):
    • extension=php_pdo_sqlite.so (lub extension=php_pdo_sqlite.dll dla Windows)
    • extension=php_pdo.so (lub extension=php_pdo.dll dla Windows)

Instalacja silnika MediaWiki z wykorzystaniem bazy danych SQLite [edit]

  • Jeśli moduł SQLite dla języka skryptowego PHP jest zainstalowany poprawnie, instalator (/config/index.php) powinien zaoferować możliwość wyboru bazy danych SQLite. W wersjach MediaWiki wcześniejszych niż 1.16 podczas instalacji należy wpisać jakieś wartości w polach „DB username” i „DB password” w celu kontynuowania instalacji, mimo, ze silnik SQLite ich nie wymaga.
  • Jeśli w polu „SQLite data directory” nie zostanie wprowadzona żadna wartość, wartość $wgSQLliteDataDir będzie pusta, co odpowiada katalogowi data w katalogu nadrzędnym do głównego katalogu (root) dokumentu. Możliwe jednak, że dla skryptów sieciowych i konserwacyjnych uruchamianych z wiersza poleceń katalog jest inny, więc zaleca się podanie katalogu podczas instalacji.

Wyszukiwarka [edit]

Wersja MediaWiki: 1.16

Przeszukiwanie bazy danych instalacji MediaWiki działającej przy wykorzystaniu silnika baz danych SQLite dostępne jest od wersji MediaWiki 1.16. Funkcja wymaga obecności SQLite ze skompilowanym modułem FTS3, który jest zwykle dostępny w większości nowych kompilacji. Jeśli baza danych SQLite została niedawno uaktualniona do wersji zawierającej moduł FTS3, należy uruchomić skrypt aktualizacyjny tak, jakbyśmy uaktualniani oprogramowanie MediaWiki. Po utworzeniu przez skrypt aktualizacyjny tabeli indeksów wyszukiwania, należy ja zapełnić za pomocą skryptu rebuildtextindex.php. Takie same działania należy podjąć przy przechodzeniu do środowiska pracy bez obsługi FTS3; ponowne uruchomienia aktualizatora spowoduje zdegradowanie tabeli do postaci, w której nie będą występowały błędy SQL związane z wyszukiwaniem.

Wykonywanie kopii zapasowej [edit]

Jeśli wiki aktualnie nie jest aktywna, można wykonać kopię bazy danych kopiując jej plik. W przypadku aktywnej wiki, należy skorzystać ze skryptu konserwacyjnego:php maintenance/sqlite.php --backup-to <backup file name>, co spowoduje sporządzenie prawidłowej kopii zapasowej. W przypadku niewielkich baz danych i niezbyt obciążonych serwerów, użytkownicy edytujący w danym czasie wiki odczują niewielkie opóźnienie. Użytkownicy tylko czytający zawartość wiki nie odczują żadnych niedogodności w pracy.

Kłopoty? [edit]

Błędy należy zgłaszać w systemie ich raportowania. Najpierw należy sprawdzić, czy ktoś inny zgłaszał już podobny błąd – sprawdzając zależności od błędu 20257 i korzystając z wyszukiwarki. Jeśli nie widać, by ktoś zgłosił już podobny błąd, należy napisać nowe zgłoszenie. Jeśli problem związany jest bezpośrednio z oprogramowaniem SQLite, należy go zgłosić w komponencie MediaWikiDatabase. W innych przypadkach (jeśli problem związany jest z jednym aspektem działania oprogramowania lub rozszerzenia), należy wybrać odpowiedni produkt i komponent. W każdym przypadku należy dołożyć starań, by odnalezienie i prześledzenie błędu było łatwe; przywołując w podsumowaniu słowo kluczowe SQLite i ustalając zależność od błędu 20257.

Zobacz również [edit]

Linki zewnętrzne [edit]

Bazy danych Silniki: MySQLOracle /enPostgreSQLSQLiteIBM DB2
Dokumentacja techniczna: Schematy (tabele) – Dostęp /en
Język: English  • 日本語 • polski • 中文