Skip to main content
Due to an operational issue, we have temporarily disabled the following Postgres extensions: address_standardizer, address_standardizer_data_us, postgis, postgis_sfcgal, postgis_topology. We hope to have them available again in the coming days. We apologize for any inconvenience.
You can submit and vote for the extensions you want us to support next at ps-extensions.io.
Extensions work by packaging related database objects (functions, data types, operators, etc.) into a single installable unit. When you install an extension, PostgreSQL loads the necessary code and creates the required database objects in your database schema. This modular approach allows you to add only the functionality you need while keeping your database lightweight and maintainable.

Types of Extensions

PostgreSQL extensions generally fall into two main categories:

Native Extensions

These are extensions that ship with PostgreSQL itself and are maintained by the PostgreSQL core team. Examples include:
  • Data type extensions: citext, hstore, uuid-ossp for specialized data types
  • Index extensions: btree_gin, btree_gist for advanced indexing capabilities
  • Text search extensions: unaccent, pg_trgm for full-text search enhancements
  • Utility extensions: pgcrypto for cryptographic functions, tablefunc for table manipulation

Community Extensions

These are developed and maintained by the community or third-party organizations. Popular examples include:
  • Vector search: pgvector for AI/ML vector operations
  • Query optimization: pg_hint_plan for query plan hints
  • Partitioning: pg_partman for automated table partitioning
Extensions that modify shared memory settings, background worker processes, or core database functionality typically require a restart. You can only enable these extensions through the Dashboard.Most simple extensions like data types or functions can be installed without a restart.

Managing Extensions

Some extensions may require that you use a role with superuser privileges to enable them on your PlanetScale Postgres database. See supported extensions for more information.

Installing an Extension

To install an extension in your database, use the CREATE EXTENSION command:

Removing an Extension

To remove an extension from your database, use the DROP EXTENSION command:

Updating an Extension

To update an extension to a newer version, use the ALTER EXTENSION command:

Viewing Installed Extensions

To see all extensions currently installed in your database, use this query:
To view all available extensions (both installed and available for installation):

Installing Extensions in Specific Schemas

By default, extensions are installed in the public schema. To install an extension in a specific schema:
To move an existing extension to a different schema:
Not all extensions support being installed in non-public schemas. Most utility and data type extensions work fine, but some system-level extensions must remain in the public schema.

Configuring Extensions in the Dashboard

Configuring Extensions Some extensions require explicit configuration through the PlanetScale dashboard and may consume additional resources on your database instances. Configuring these extensions may require a database restart. The extensions that require a restart are marked with a ✅ in the “Restart required” column. For Production clusters, these reboots are applied in a rolling cadence through the cluster’s instances. For detailed configuration instructions and parameter descriptions for each extension, please refer to their individual documentation pages via the 📝 links in the “Additional Notes” column.

Troubleshooting

Common Extension Issues

Extension not found

This means the extension is not installed on the server or not supported. Check the supported extensions list below.

Permission denied

Extensions typically require database owner or superuser privileges. Contact support if you encounter permission issues.

Extension already exists

Use CREATE EXTENSION IF NOT EXISTS extension_name; to avoid this error, or check installed extensions first.

Dependency conflicts

Some extensions depend on others. Install the required dependency first, then retry installing your desired extension.

Supported Extensions

Table Column Legend

Newer Postgres versions ship with newer versions of extensions. When upgrading to a newer Postgres version, make sure to test your application for compatibility with those extension versions.*
  • Extension: Extension name with link to official documentation
  • Description: Brief description of extension functionality
  • Version: Version number available in PlanetScale (or TBD if placeholder)
  • Superuser required: ⭐ = Extension requires superuser privileges to use its functionality
  • Restart required: ✅ = Must be enabled through PlanetScale dashboard first because the extension requires shared libraries and a restart (blank = install directly with CREATE EXTENSION)
  • Additional Notes: 📝 = Link to detailed configuration documentation

Supported Native PostgreSQL Extensions

Postgres 18.4

Postgres 17.10

Supported Community Extensions

Postgres 18.4

Postgres 17.10

PlanetScale Extensions

These extensions are installed by PlanetScale and cannot be disabled.

Need Additional Extensions?

If you require an extension that is not currently supported, please reach out to support. We regularly evaluate and add new extensions based on customer needs and security considerations.