Skip to content

Compared with the classic phpPgAdmin ​

This application shares its name with the classic phpPgAdmin, the PHP administration tool for PostgreSQL first released in 2002. It is a separate application, written from scratch, and shares no code or configuration with it. This page compares the two so you can choose between them, and lists what to expect if you move from one to the other.

At a glance ​

Classic phpPgAdminThis phpPgAdmin
Latest release7.13.0, November 2020See Releases
PostgreSQL7.4 to 13, provisional 1413 and newer
PHP7.1 and newer; 7.13.0 was announced as the last release for PHP 7.28.3 and newer
LicenseGPL 2.0 or laterMIT
InterfaceIts own, with a frame-style object browser on the leftphpMyAdmin 5.2's layout, pmahomme theme and tabs
PagesRendered on the server; most work without JavaScriptA single-page application; JavaScript is required
Configurationconf/config.inc.phpconfig/*.php and PGADMIN_* environment variables (Configuration)
ServersListed in conf/config.inc.phpAny host entered at sign-in, remembered as a saved server
Own storageNone; history is kept in the PHP sessionSQLite file in storage/ for saved servers, settings, history and bookmarks
Translations30+ languagesEnglish and Arabic (Translations)
Extending itPlugins (Report, GuiControl)Modules

Both sign in with a PostgreSQL role and run every statement as that role, so PostgreSQL's privileges decide what you can do in either one.

PostgreSQL features ​

The classic phpPgAdmin's last release supports PostgreSQL up to 13, but most of its forms date from earlier versions. Objects added to PostgreSQL in the last decade are not in its interface; you reach them through its SQL page.

FeatureClassicThis one
Tables, columns, indexes, constraints, triggers, rulesYesYes
Table info: inheritance, referencing foreign keysYesYes
Per-table autovacuum settings, CLUSTER on an indexYesYes
Database-wide list of tables with their own autovacuum settingsYesYes
ViewsYesYes
Materialized viewsNoYes
Declarative partitioningNoYes
Identity columnsNoYes
FunctionsYesYes
ProceduresNoYes
AggregatesCreate, dropCreate, edit, drop
OperatorsCreate, dropCreate, edit, drop
Operator classes and families, conversionsListCreate, DDL, drop
Sequences, domains, enum and composite typesYesYes, with sequence Restart and Next value
Range types, collationsNoYes
Full text search configurations and dictionariesYesYes, with parsers and templates
ExtensionsNoYes
Casts, languagesListCreate, edit, drop
Event triggersNoYes
Foreign data wrappers, servers, user mappings, foreign tablesNoYes
Row-level security policiesNoYes
Publications and subscriptions, replication slots, standbysNoYes
Roles, tablespacesYesYes
Changing your own passwordAccount pageChange password on the home page
Per-database settings (ALTER DATABASE … SET)Variables page (read)Parameters (read and edit)
Default privileges, column privileges, grant wizardNoYes
SQL preview before create and alterNoYes, on most forms

Tools ​

ToolClassicThis one
SQL editorText area with a query history, Explain and Explain AnalyzeEditor with autocomplete, formatting, bind parameters, history, bookmarks and macros; Explain and Explain analyze
Browsing dataPaged table with edit and delete linksGrid with sorting, filters and inline editing
SearchFind objects by nameFind objects by name, or text in every table of a database
Server activityProcesses with cancel and kill, and locks, refreshed every few seconds, per server and per databaseStatus: live charts, sessions with cancel and terminate, locks, prepared transactions; a database's Processes tab
Server logsNoYes
Configuration parametersNoVariables
Exportpg_dump / pg_dumpall as SQL; table data as SQL, COPY, CSV, tab-separated, HTML or XMLpg_dump / pg_dumpall as SQL, custom or tar archives; table, view and query rows as SQL (INSERT or COPY), CSV, tab-separated, HTML or XML
ImportTable data from CSV, tab-separated or XMLSQL scripts, pg_restore archives run in the background; CSV, tab-separated, COPY binary and XML into a table
MaintenanceVACUUM, ANALYZE, REINDEX, CLUSTERThe same, run through the client programs
ER diagramNoDesigner
Schema comparisonNoSchema diff with a migration script
PL/pgSQL debuggerNoYes
Saved reportsReport pluginBookmarks

When the classic phpPgAdmin fits better ​

  • PostgreSQL older than 13. This application's SQL is written for 13 and newer; the classic one has query variants back to 7.4.
  • PHP older than 8.3. The classic phpPgAdmin targets PHP 7.
  • No JavaScript. The classic pages are plain HTML forms.
  • A language other than English or Arabic.

The classic release predates PostgreSQL 15 and PHP 8.3, so try it with your own versions before relying on it.

Moving from the classic phpPgAdmin ​

  • Install this application next to the classic one, not over it. Nothing in conf/config.inc.php is read; see Installation and Configuration.
  • Servers are not configured in a file. Enter the host on the login page once and it becomes a saved server; config/db.php sets the default server.
  • The classic extra_login_security setting is PGADMIN_EXTRA_LOGIN_SECURITY=1 (Configuration): it refuses postgres, pgsql, root, administrator and empty passwords.
  • The classic owned_only setting is PGADMIN_OWNED_ONLY=1: a role that is not a superuser sees only the databases it owns. It only hides names; PostgreSQL's privileges still decide what a role can open.
  • The classic show_system setting is the Show system objects preference under Settings » Navigation panel, per role.
  • Server groups are not needed: every server signed in to is a saved server offered at sign-in.
  • Only the pmahomme theme is offered; the classic app's themes do not carry over.
  • The layout follows phpMyAdmin: server, database, schema and table each have a tab bar, and each page has its own address. Finding your way around describes it.
  • Some forms are not complete yet. Known limitations lists what to do in the SQL editor instead.

Released under the MIT License.