If CREATE EXTENSION fails with a permission denied error, try the create_extension() function instead. For instance:
SELECT create_extension('postgis');
To remove an extension installed this way, use drop_extension().
I might propose a parameter that allows the user to define the create extension statement, or choose from a list of predefined options if that approach seems better. Currently, of course, the user can create the extension first and then use create_extension=False.
The SQL for enabling the
vector
extension is hardcoded at https://github.com/langchain-ai/langchain-postgres/blob/07053067c7013b4b57c035f6caa94b2b63bfe404/langchain_postgres/vectorstores.py#L344But when using Azure Cosmos DB for PostgreSQL, it's necessary to use
SELECT create_extension('vector');
From relevant docs:
The same applies to pgvector in the same context.
I might propose a parameter that allows the user to define the create extension statement, or choose from a list of predefined options if that approach seems better. Currently, of course, the user can create the extension first and then use
create_extension=False
.