Popis
Spuštění WordPressu na SQLite.
Plugin SQLite je komunitní plugin s rozšířenými funkcemi. Jeho účelem je umožnit testování integrace SQLite s WordPressem a shromáždit zpětnou vazbu, s cílem jej nakonec začlenit do jádra WordPressu.
Tento plugin nahrazuje výchozí databázovou vrstvu MySQL implementací založenou na SQLite. WordPress i nadále využívá své standardní rozhraní wpdb, zatímco plugin překládá a emuluje dotazy MySQL pro SQLite.
Co plugin nabízí
- Žádný databázový server. Data vašeho webu jsou uložena v lokální databázi SQLite.
- Nastavení s průvodcem. Instalační obrazovka před povolením SQLite zkontroluje přítomnost požadovaného rozšíření PHP, přístup pro zápis a případné konfliktní databázové moduly.
- Kompatibilita navržená přímo pro tento účel. Parser MySQL a emulační vrstva přizpůsobují syntaxi a chování MySQL pro SQLite.
- Užitečné diagnostické nástroje. Podrobnosti o SQLite se zobrazují v části „Site Health“ a je podporován nástroj Query Monitor.
Důležité: Povolení SQLite vytvoří samostatnou prázdnou databázi; nedojde k migraci stávajícího webu. Pokud tuto funkci povolíte na webu, který používá MySQL nebo MariaDB, WordPress vás vyzve k novému nastavení webu. Zakázání pluginu znovu připojí WordPress k původní databázi, přičemž její data zůstanou beze změny. Změny provedené během používání SQLite se nepřenesou.
Plugin vyžaduje rozšíření PDO SQLite pro PHP a SQLite verze 3.37.0 nebo novější.
Nejčastější dotazy
-
K čemu tento plugin slouží?
-
Hlavním účelem tohoto pluginu je otestovat WordPress s SQLite a shromáždit zpětnou vazbu, přičemž cílem je tuto integraci nakonec začlenit do jádra WordPressu.
Přečtěte si původní návrh na blogu blogu Make WordPress Core a výzvu k testování pro více informací.
-
Mohu tento plugin použít na svém produkčním webu?
-
Ano, ale nezapomeňte si pořizovat spolehlivé zálohy a ujistěte se, že je SQLite vhodný pro návštěvnost vašeho webu. SQLite podporuje souběžné čtení, ale umožňuje pouze jednoho zapisujícího uživatele najednou, takže pro weby s intenzivním souběžným zápisem může být vhodnější MySQL nebo MariaDB. Před přechodem si otestujte pracovní zátěž, šablony a pluginy.
-
Přenese tento plugin můj stávající web do SQLite?
-
Ne. Povolení SQLite spustí novou instalaci WordPressu v samostatné databázi. Vaše stávající databáze MySQL nebo MariaDB zůstane beze změny, její obsah se však do SQLite nezkopíruje.
Deaktivací pluginu se WordPress znovu připojí k původní databázi. Obsah vytvořený během používání SQLite se zpět nepřevede.
-
Where is the SQLite database stored?
-
By default, the SQLite database is stored in a randomized path under
WP_CONTENT_DIR . '/database'. The full path is recorded indb-path.phpand exposed by theDB_PATHconstant at runtime.For example:
- Database path:
WP_CONTENT_DIR . '/database/.ht.020a33c5d9e5407e8e93b43e55abf62e/.ht.sqlite' - Recorded in:
WP_CONTENT_DIR . '/database/db-path.php'asreturn __DIR__ . '/...'; - Exposed by:
DB_PATH
The random path makes the database location difficult to guess when it is not otherwise protected. We recommend setting
DB_PATHto an explicit, protected path outside the web root that your web server does not expose.Integrations should always read
DB_PATHafter WordPress loads instead of assuming a fixed database path. - Database path:
-
How can I configure the database location?
-
To properly secure the SQLite database, define the
DB_PATHconstant to an explicit path that is protected from public web access. An explicitDB_PATHvalue is used as-is without randomization. Define it inwp-config.php:// Use protected DB path that is not exposed by the web server. define( 'DB_PATH', '/private/wordpress/database.sqlite' );Caution: An explicit
DB_PATHmust point to a protected location that your web server does not expose. Store the database outside the web root and make sure it’s protected.The value of
DB_PATHmust be an absolute path to the SQLite database file, or:memory:for an in-memory SQLite database. The database directory must be writable by PHP. ChangingDB_PATHselects a different database without moving an existing one. -
Jaké jsou požadavky na tento plugin?
-
Kromě výše uvedených verzí WordPressu a PHP vyžaduje tento plugin rozšíření PDO SQLite pro PHP a SQLite 3.37.0 nebo novější. Nastavovací obrazovka také potřebuje přístup s právem zápisu do adresáře
wp-contenta detekuje konfliktní databázové pluginy typu „drop-in“. -
Kam mohu zaslat zpětnou vazbu k pluginu?
-
Zpětná vazba pomáhá vylepšovat integraci. V případě potíží, dotazů, návrhů nebo požadavků na nové funkce založte ticket v repozitáři SQLite na GitHubu.
-
Jak mohu přispět k vývoji tohoto pluginu?
-
Příspěvky můžete zasílat prostřednictvím repozitáře SQLite Database Integration na GitHubu.
-
Mění tento plugin způsob provádění dotazů ve WordPressu?
-
Ano. Tento plugin nahrazuje výchozí databázovou vrstvu založenou na MySQL implementací využívající SQLite. WordPress i nadále používá rozhraní
wpdb, přičemž dotazy jsou interně přizpůsobeny syntaxi a chování SQLite.
Recenze
Autoři
SQLite Database Integration je otevřený software. Následující lidé přispěli k vývoji tohoto pluginu.
SpolupracovníciPlugin „SQLite Database Integration“ byl přeložen do 13 jazyků. Děkujeme všem překladatelům za jejich pomoc.
Přeložte “SQLite Database Integration” do svého jazyka.
Zajímá vás vývoj?
Prohledejte kód, podívejte se do SVN repozitáře, nebo se přihlaste k odběru protokolu vývoje pomocí RSS.
Přehled změn
3.1.0
SQLite Database Integration 3.1 is here! 🎉
This release improves database storage and configuration and fixes several MySQL compatibility issues.
What’s new
Version 3.1 improves how WordPress sites store, locate, and protect their SQLite databases. It also fixes SQL behavior and export compatibility:
- Randomized database paths: The default database location is now a randomized directory under
wp-content/database/, recorded inwp-content/database/db-path.php. (#502) DB_PATH: Configure the database with one full-path constant, also available at runtime for integrations. (#512)- SQL compatibility: Fix
IF()condition evaluation and makeTRADITIONALenable its component SQL modes. (#518, #509) - WordPress table collations: Default to
utf8mb4_unicode_520_cifor new tables created with WordPress’s charset settings, improving exports to MariaDB. Existing tables keep their recorded collation. (#514) - Documentation: A new plugin README and expanded FAQ explain database storage and secure configuration. (#520)
For more information about database paths and secure configuration, read the database storage guide.
Upgrading to 3.1
Aktualizace stávajícího webu využívajícího SQLite je velmi jednoduchá:
- Back up your SQLite database.
- Update the plugin to version 3.1.
Existing .ht.sqlite and .ht.sqlite.php databases move to the randomized layout automatically unless a database file path is explicitly configured.
To properly secure the database, set DB_PATH in wp-config.php to an absolute file path outside the web root that your web server does not expose. Its directory must be writable by PHP. Changing DB_PATH does not move an existing database.
Zásadní změny
Review these changes if you use custom database settings or integrations:
- Database paths: Default database files now move to randomized paths under
wp-content/database/. Explicitly configured file paths stay unchanged. Integrations, including backup and migration tools, must readDB_PATHafter WordPress loads instead of assuming a fixed filename. - Legacy constants:
DB_DIRandDB_FILEare now deprecated. They and the previously deprecatedFQDBandFQDBDIRremain supported, butDB_PATHtakes precedence. Conflicting values trigger warnings. - Absolute paths: Relative database file and directory paths are now rejected.
:memory:remains available for in-memory databases.
Děkuji
Thank you to everyone who contributed, tested, and helped update integrations.
Changes since 3.0.2: v3.0.2...v3.1.0
3.0.2
- Fix schema reconstruction with native numeric results (#506)
- Fix lexer edge cases and string handling (#505)
- Preserve index prefix lengths and order in
SHOW CREATE TABLEprimary keys (#500) - Align savepoint handling with MySQL semantics (#496)
3.0.1
3.0.0
SQLite Database Integration 3 is here! 🎉
This release introduces an all-new SQLite database driver for WordPress, rebuilt from the ground up. Its purpose-built MySQL lexer, parser, and emulation layer deliver broader compatibility, more accurate behavior, and a stronger foundation for future improvements.
The 3.0 release spans nearly two years of work, featuring 160 pull requests and 1,075 commits from 15 contributors.
What’s new
Nový ovladač rozšiřuje podporu SQLite pro WordPress, pluginy, nástroje pro práci s databázemi a další aplikace založené na MySQL. Mezi tato vylepšení patří:
- New SQL engine: The pure-PHP lexer and parser provide extensive coverage of the official MySQL grammar.
- Broad query support: Complex joins, subqueries, CTEs, unions, and other advanced queries are now supported.
- Schema emulation: WordPress and database tools can query emulated MySQL
INFORMATION_SCHEMAtables. - Schema introspection:
SHOWandDESCRIBEstatements provide accurate MySQL-like metadata. - Improved data handling: Types, casts, defaults, auto-increment, values, and escaping better match MySQL.
- Refined MySQL semantics: Better emulation of SQL modes, variables, functions, transactions, and errors.
- Better concurrency: Write-ahead logging and fewer locks reduce blocking between readers and writers.
- PDO API: The new driver implements the PDO MySQL API, supporting many MySQL-based tools and applications.
- Extensive testing: Test suites cover parsing, translation, metadata, concurrency, PDO, and end-to-end workflows.
Další informace o novém ovladači a jeho architektuře najdete v oznámení o ovladači.
Modulární konstrukce
Projekt byl přepracován do podoby souboru specializovaných balíčků, přičemž došlo k oddělení hlavního ovladače od jeho integrace s WordPressem:
- SQLite Database Integration: The WordPress plugin powered by MySQL on SQLite.
- MySQL on SQLite: A standalone PDO MySQL drop-in for running MySQL-based PHP applications on SQLite.
- MySQL proxy (experimental): A MySQL wire protocol bridge to PDO-compatible drivers for clients outside PHP.
Tato architektura otevírá ovladači možnosti nových integrací, aplikací a vývojových nástrojů nad rámec WordPressu.
Aktualizace na verzi 3.0
Aktualizace stávajícího webu využívajícího SQLite je velmi jednoduchá:
- Back up your SQLite database.
- Update the plugin to version 3.0.
Při prvním připojení nový ovladač automaticky inicializuje svá metadata, aniž by došlo ke změnám ve vašich tabulkách nebo obsahu.
Pokud jste používali novou předběžnou verzi ovladače, můžete nyní odstranit příznak WP_SQLITE_AST_DRIVER.
Zásadní změny
Většina webů na platformě WordPress nevyžaduje žádné změny. Pokud používáte vlastní konfiguraci, zkontrolujte následující body:
- New driver:
- The new driver is always used. The legacy driver was removed.
- The
WP_SQLITE_AST_DRIVERfeature flag was removed.
- Updated SQLite version requirements:
- SQLite
3.37.0or newer is required. - The
WP_SQLITE_UNSAFE_ENABLE_UNSUPPORTED_VERSIONSopt-in enables limited SQLite3.27.0–3.36.xsupport.
- SQLite
DB_NAMEis required:- It must be defined and non-empty.
- It is used dynamically, independently of the SQLite file name and stored metadata.
- SQLite defaults have changed:
- Updated configuration constants:
DATABASE_ENGINEwas removed. UseDB_ENGINE.DATABASE_TYPEis deprecated. UseDB_ENGINE.FQDBDIRis deprecated. UseDB_DIR.FQDBis deprecated. UseDB_DIRandDB_FILE.
- Updated driver classes:
WP_SQLite_Driveris deprecated. UseWP_MySQL_On_SQLite.WP_PDO_MySQL_On_SQLitewas replaced byWP_MySQL_On_SQLite.WP_SQLite_Driver_Exceptionwas replaced byWP_MySQL_On_SQLite_Exception.WP_PDO_Proxy_Statementwas replaced byWP_MySQL_On_SQLite_Statement.
- Sunsetting
$GLOBALS['@pdo']:- Injecting a PDO connection through
$GLOBALS['@pdo']is no longer supported. - Reading
$GLOBALS['@pdo']is deprecated. Use$wpdb->get_driver()->get_sqlite_pdo().
- Injecting a PDO connection through
- Renamed driver constructor options:
pdosqlite_pdo.journal_modesqlite_journal_mode.synchronoussqlite_synchronous.
Děkuji
Děkujeme všem, kteří se podíleli na vývoji, testování, kontrole a vylepšování nového ovladače. Díky vaší práci se to podařilo.
Milník 3.0: 160 žádostí o začlenění změn
Změny od verze 2.2.23: v2.2.23...v3.0.0
2.2.23
2.2.22
- Support INSERT without INTO keyword (#354)
- Add tests for MySQL row-level locking clauses (#342)
- Improve automated deploy setup.