Update an extension of a managed PostgreSQL database
const url = 'https://opfield.example.com/api/databases/managed/550e8400-e29b-41d4-a716-446655440000/extensions/example/update';const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://opfield.example.com/api/databases/managed/550e8400-e29b-41d4-a716-446655440000/extensions/example/update \ --header 'Authorization: Bearer <token>'ALTER EXTENSION … UPDATE to the version the database image ships (availableVersion); at that version already, nothing changes. Only the curated extensions the list returns can change (400 EXTENSION_NOT_ALLOWED). DDL runs as the control superuser in the application database, on the primary when the database runs on several servers (copies follow). An extension that needs a preload library restarts the database (a rolling update copies-first on several servers); one that comes as a download is installed into the database volume on every server first (409 EXTENSION_NEEDS_STORAGE when the volume lacks room). The answer is the extension list; pending is set while a restart or a download runs, and the SQL step follows on its own. Refusals: 409 EXTENSION_NEEDS_IMAGE_UPDATE (update with imageUpdate: true first), EXTENSION_NOT_AVAILABLE (not in this version), MANAGED_DATABASE_DAEMON_UPDATE_REQUIRED (a node daemon predates extensions), MANAGED_DATABASE_EXTENSION_CHANGE_PENDING (another change runs). Needs databases:edit.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Example
550e8400-e29b-41d4-a716-446655440000Responses
Section titled “Responses”Successful response
object
Resource object. Exact fields depend on the endpoint.
object
Example
{ "data": { "id": "550e8400-e29b-41d4-a716-446655440000", "name": "Production Postgres", "type": "postgres", "healthStatus": "online" }}Bad request
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "VALIDATION_ERROR", "message": "Request validation failed", "details": [ { "path": [ "name" ], "message": "Required" } ]}Authentication required
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "UNAUTHORIZED", "message": "Authentication required"}Forbidden
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "FORBIDDEN", "message": "Insufficient permissions"}Not found
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "NOT_FOUND", "message": "Resource not found"}Conflict
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "CONFLICT", "message": "Resource already exists"}Unprocessable entity
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "UNPROCESSABLE_ENTITY", "message": "Request could not be processed"}Internal server error
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "INTERNAL_ERROR", "message": "Internal server error"}