Estou tentando definir uma variável postgis.gdal_enabled_drivers
de configuração/GUC global da PostGIS
extensão por um tempo. Sou um usuário não administrador, mas posso pedir ao administrador para alterar as configurações, se necessário. Mas tentei vários métodos diferentes seguindo as instruções, mas nenhum funcionou.
Eu tentei a maneira antiga de mudar as variáveis ambientais. Eu tinha o seguinte adicionado a
/etc/environment
:POSTGIS_ENABLE_OUTDB_RASTERS=1 POSTGIS_GDAL_ENABLED_DRIVERS=ENABLE_ALL
para que echo $POSTGIS_GDAL_ENABLED_DRIVERS
retorneENABLE_ALL
Agora, na minha conta PostreSQL não administrativa,
SELECT short_name, long_name FROM ST_GdalDrivers();
retorna 0 rows
, o que significa que nenhum driver GDAL está ativado.
Eu também tentei ter postgres para:
ALTER SYSTEM SET postgis.gdal_enabled_drivers TO 'ENABLE_ALL';
mas deu um erro:
ERROR: unrecognized configuration parameter "postgis.gdal_enabled_drivers"
Eu tentei:
ALTER DATABASE my_db SET postgis.gdal_enabled_drivers TO 'ENABLE_ALL';
mas consegui:
ERROR: permission denied to set parameter "postgis.gdal_enabled_drivers"
Em suma, posso pedir ao administrador para alterar algumas configurações uma vez como nos métodos 1 e 2, mas não sempre, por exemplo, quando faço uma restauração completa do banco de dados (método 3).
Minha pergunta é:
Como posso fazer os métodos acima funcionarem?
Para sua informação, minha versão do PostgreSQL é 9.5.1, o SO é Lubuntu 16.04 beta
postgis_version
---------------------------------------
2.2 USE_GEOS=1 USE_PROJ=1 USE_STATS=1
No método 3, posso usar postgres
to ALTER DATABASE
, mas não posso pedir ao amin para fazer isso toda vez que restauro o banco de dados, onde faço algo como:
dropdb my_db && createdb -T template my_db $$ psql < my_pg_dump_file
Edite o
/etc/postgresql/9.x/main/environment
arquivo e defina as seguintes variáveis de ambientePOSTGIS_GDAL_ENABLED_DRIVERS=ENABLE_ALL
POSTGIS_ENABLE_OUTDB_RASTERS=1
. Reinicie o servidor.Depurando primeiro, faça isso.
SET postgis.gdal_enabled_drivers = 'ENABLE_ALL';
SELECT * FROM ST_GdalDrivers();
Se isso não retornar nada, você terá problemas maiores. Você instalou a partir dos repositórios Ubuntu/LUbuntu? Ou você mesmo construiu?
ALTER SYSTEM
é o novo método para alterar o arquivo de configuração com um comando pseudo-sql. Se você está vendo issoIsso significa que você não tem essa opção em seu arquivo
postgresql.conf
. (talvez esteja comentado.) No entanto, você ainda pode adicioná-lo ao arquivo conf manualmente.ou para o que você quiser. Eu não definiria o ambiente . Em vez disso, basta colocar isso em seu
/etc/postgresql/9.5/main/postgresql.conf
Que é essencialmente o mesmo que os documentos dizem ,