PrevPage's best kept secret: the meta() method
In ProcessWire, every page has a built-in key-value store that requires zero field configuration, zero template changes, and zero admin clutter. More
25 September 2026 by Ryan Cramer 0 Comments
This week on the dev branch (3.0.274) you can now install and run ProcessWire on SQLite or PostgreSQL, in addition to MySQL.
Support for SQLite and PostgreSQL are experimental, but they have come far enough that I'd love for you to try them and tell us how they work for you.
A big thank you to Adrian Jones (@adrian), who built the PostgreSQL support. It started from a feature request asking whether PostgreSQL could follow the SQLite work. A day later Adrian was sending pull requests, and he has kept them coming at an amazing pace ever since. In addition, Claude Opus 5, Opus 5.5 and GPT 5.6 Sol made this all possible, at least from my end.
ProcessWire and its modules keep writing the same MySQL SQL they always have. On SQLite and PostgreSQL, ProcessWire translates each query as it runs. So your existing API code, templates and most modules work without changes. Behind the scenes, each database gets what it needs to behave like MySQL:
title%=apfel finds "Äpfel".~=, *= and others), with relevance ordering.Grab the dev branch and run the installer. The database step now has a "Database Type" option: MySQL, SQLite (experimental) or PostgreSQL (experimental). The CLI installer takes dbType=sqlite or dbType=pgsql.
SQLite:
pdo_sqlite extension and SQLite 3.35 or newer.$config->dbOptions = ['sqlite' => ['unicodeSort' => true]];. It's off by default because it makes sorting slower.PostgreSQL:
pdo_pgsql extension and PostgreSQL 16 or newer.unaccent and pg_trgm extensions when it can. Without unaccent, searches ignore case but not accents. Without pg_trgm, there are no fulltext indexes. Either way, the installer tells you what's missing.You can move a site between MySQL, SQLite and PostgreSQL, in any direction:
If the profile includes users, the installer keeps them, and you log in with your existing account.
To make this possible, ProcessWire now keeps a log of every change to the database schema, in MySQL's terms. So a site exported from SQLite or PostgreSQL installs on MySQL with the same tables and indexes it would have had there.
When something fails, please open an issue with the error message, and the query if you have it.
The PostgreSQL section of /wire/core/WireDatabase/API.md lists these in detail. The main ones include:
Please don't move production sites to SQLite or PostgreSQL yet. But if you have a test site or a spare hour, we'd be grateful for anything you find.
Most Pro modules that we tested are working with both SQLite and PostgreSQL. However, ProCache is one that needs an update, which I’ve already made, and will likely release next week. The tests on Pro modules have not yet been exhaustive so your mileage may vary — please let me know if you come across anything that doesn’t work.
Thanks for reading, and have a great weekend!
26 June 2026 2
In ProcessWire, every page has a built-in key-value store that requires zero field configuration, zero template changes, and zero admin clutter. More
31 July 2026 6
How Maxim Semenov built more than 50 ProcessWire modules in a year, around a full-time job as a FedEx Ground driver. More