Next DB
Joomla has no first-class way to inspect or edit its own database without dropping into phpMyAdmin, the MySQL CLI, or a third-party desktop client. Each of those means leaving Joomla's permission model behind: anyone with the credentials gets full DBA access to every table, every database, with no audit trail.
Next DB is a Joomla-native, phpMyAdmin-style database admin tool. Operators edit the Joomla database and attach external MySQL, MariaDB, PostgreSQL and SQLite databases through a React editor backed by Doctrine DBAL. Every operation flows through a service layer where Joomla-native profiles, fine-grained ACL and audit logging are enforced — so you get a full DB tool inside Joomla without giving every operator full DBA privileges.
Browse and edit any table, run arbitrary SQL with full syntax highlighting, edit structure with preview-then-apply DDL, export and import via SQL or CSV. Assign profiles to Joomla users or user-groups to scope who can touch which connections, databases, tables and operations. Every mutation is recorded with before/after row snapshots and configurable retention.
See it in action
Everything you need
Database Editor
Browse, edit and manage data across any connected database.
Object Tree
Connections, databases, tables and views in a single navigable tree.
Paginated Table Browse
Sort, filter and page through any table with bound-parameter safety.
Inline Row Editing
Insert, update and delete rows through type-aware drawer forms.
Multi-Engine Support
MySQL/MariaDB, SQLite and PostgreSQL — all verified end-to-end (PostgreSQL exercised against a real server in CI).
SQL Console
Write and run raw SQL with full editor comfort.
CodeMirror Editor
SQL syntax highlighting, autocomplete and bracket matching.
Query History
Last 50 statements kept per browser for one-click re-run.
Read-Only Mode
Flip the console to read-only to explore safely — write statements are rejected.
Inline Error Surfacing
DBAL errors reported next to the originating statement.
Structure Editor
Modify schema with confidence — preview before apply.
Columns, Indexes, Foreign Keys
Full DDL editor with type-aware widgets for each driver.
Preview Then Apply
DBAL `Comparator` shows the exact SQL diff before it runs.
Create, Drop, Rename, Truncate
Engine-correct DDL on every supported platform.
Atomic on Non-MySQL
Structure edits wrap in a transaction on SQLite and PG to survive table rebuilds.
Connections Manager
Attach and manage external databases alongside the Joomla DB.
Multiple Drivers
MySQL, MariaDB, PostgreSQL and SQLite descriptors.
Encrypted Passwords
libsodium secretbox storage keyed off the Joomla site secret.
Per-Driver Options
Charset, port, socket, SSL and platform-specific extras.
Test Before Save
Live connection check from the admin panel.
SQLite Allow-List
Stored SQLite files are confined to a configurable base directory, keeping database files out of the web root.
Access Control
Joomla-native ACL that goes beyond on/off.
Profiles
Permission sets covering connections, databases, tables and operations.
User & Group Assignments
Assign profiles to individual Joomla users or whole user-groups.
Layered Enforcement
Always-on PHP service-layer gating plus core-table protection; a per-connection MySQL-grant *hard enforce* mode is reserved for a future release.
SQL Console Gate
Per-profile switch hides the console and rejects the API endpoint.
Core-Table Protection
Joomla auth/access/extension tables and engine system objects are write-protected for everyone, Super Users included.
Audit Trail
Every mutation recorded — answer "who changed what, when".
Before/After Snapshots
`DataService` captures row state on every insert, update and delete.
Operation Coverage
CRUD, SQL, structure, import, export and config changes all logged.
Per-Profile Policy
Choose which operations to record, whether to log failures, and retention.
Filtered Viewer
Searchable DataGrid with facets and a before/after detail drawer.
Export & Import
Move data in and out without leaving the admin.
SQL Dump
Per-table or whole-database SQL exports with engine-correct quoting.
CSV Export
Honors the active browse filter.
SQL Script Import
Statement-aware splitter handles multi-statement files.
CSV Import
Header-mapped column import parsed client-side.
Data Views
Publish read-only database views on the Joomla front end.
Saved SELECT Views
Define a base SELECT once, reuse it as a named, browsable view.
Guided Builder
A step wizard takes you from connection to query to a published view.
Front-End Rendering
Surface query results on the public site — opt-in per connection.
Validated & Access-Scoped
Base queries are validated; visibility is gated per view.
Developer
Modern stack with no deprecated APIs.
React + MUI
Single-page admin built on React, MUI and TanStack Query.
Doctrine DBAL
Industry-standard PHP DB abstraction layer, bundled with the component.
Namespaced Joomla MVC
Joomla 4, 5 and 6 on PHP 8.1+.
Open Source
GPL v2 or later licensed and upgrade-safe.
Choose your growth plan
Start managing your inventory smarter today. Upgrade anytime as your business grows.
Developer - Next DB
Business - Next DB
Agency - Next DB
Built for the EU Cyber Resilience Act
Free security updates for at least 5 years from your purchase
Every customer — active or lapsed — can download security fixes from the Customer Portal throughout their support period, in line with the EU Cyber Resilience Act.
Frequently Asked Questions
Getting Started
Install the package, then go to Components > Next DB > Dashboard. The first time you open it, the editor connects to your Joomla database automatically — no setup required. From there you can attach additional databases under Connections.
No. Super Users see every connection and every operation out of the box. Restricting access happens on the Profiles page — create a profile, scope it, then assign it to a Joomla user or user-group.
No — and that is deliberate. Next DB write-protects Joomla's auth, access and extension tables (#__users, #__usergroups, #__assets, #__extensions and the like) on the Joomla database. You can browse and read them, but mutations are refused for everyone, Super Users included — corrupting those tables would break the whole site. Ordinary content and component tables stay fully editable. On an attached external connection this core-table protection is opt-in per connection, so you can turn it off where you genuinely need to edit such tables.
No. Next DB ships its own DB abstraction (Doctrine DBAL) and runs every read and write through Joomla's own PHP runtime. The only requirement is that your Joomla site is up and reachable.
Security & Access Control
Through an always-on PHP gate. The service layer evaluates the active user's profile permissions before running any operation — that gates every path, including the SQL console — and core-table protection (CoreTableGuard) blocks mutations of Joomla's own auth/access/extension tables. A per-connection hard enforce mode that would bind a profile's operation grants to MySQL user grants at the database level is stored on the profile but reserved for a future release — it is not applied yet.
In #__nextdb_connections as libsodium secretbox ciphertext, encrypted with a key derived from your Joomla site secret. The plain-text password is never written to disk.
Out of the box, only Super Users. But management is delegable: a profile carries a per-area, per-action management block — profiles, connections, views, settings, plus audit purge and policy — so you can let a non-Super-User create connections but not delete them, or manage views and nothing else. Granting management rights, and assigning a management-bearing profile, are themselves Super-User-only, so a delegated manager can never escalate their own privileges.
Yes. Every profile has a sql_console switch — turn it off and the SQL console is hidden in the UI, and the API endpoint refuses the request.
Multi-Database
MySQL and MariaDB are hardened end-to-end. SQLite is verified end-to-end (browse, edit, structure rebuild, console, export/import). PostgreSQL is verified by the CI integration suite against a real server (install schema, introspect, browse, CRUD, structure, truncate and console); a few niceties like COMMENT ON and the socket-directory host form remain best-effort. MS SQL, Oracle and DB2 are reachable through DBAL but not yet hardened.
Yes. Connections > New lets you set host, port, user, password, database and driver-specific options. The connection is tested before save and stored with an encrypted password.
No. Mongo, Elasticsearch and similar engines would need separate non-DBAL drivers — out of scope for now.
Audit
Every mutation by default — inserts, updates, deletes, structure changes, imports, exports and SQL-console runs. DataService captures before/after row snapshots; other services log one summary entry per operation. Configuration changes (connection/profile/assignment save and delete) are governed by a global policy.
In #__nextdb_audit in the Joomla database. Writes are best-effort — if the audit table is unreachable, the operation still succeeds. Retention is per-row: each entry carries its own purge_after timestamp computed from the active policy.
Yes, three ways. A bundled com_scheduler task (plg_task_nextdbaudit) prunes the trail automatically on whatever schedule you set; the Audit page has a manual purge action (Super Users, or any profile granted audit purge); and viewing the log opportunistically prunes expired entries. Retention is driven by each entry's own purge_after stamp.
Technical
Joomla 4, 5 and 6 on PHP 8.1 or higher. Earlier PHP is unsupported because Doctrine DBAL 4 — the editor's backing library — requires PHP 8.1+.
Yes. Doctrine DBAL 4 is bundled under the component's libraries/vendor/ and loaded lazily. The bundle is unscoped; if another extension on the site loads an incompatible DBAL first, you may need to update it.
English (en-GB) ships out of the box. Add any language by creating standard Joomla .ini files under administrator/language/<tag>/com_nextdb.ini and com_nextdb.sys.ini.
Yes. Licensed under GNU GPL v2 or later. Sold commercially on nextsoftware.dev with priority support; the source itself is open.