Quiero modificar un parámetro postgresql.conf a través del shell. De la documentación puedo ver que puedo usar el comando postgres con el indicador -c .
Sin embargo, en mi intento, por ejemplo,
postgres -c autovacuum=off postgres devuelve:
No se permite la ejecución de PostgreSQL por parte de un usuario con permisos administrativos.
El servidor debe iniciarse con una identificación de usuario sin privilegios para evitar posibles compromisos de seguridad del sistema. Consulte la documentación para obtener más información sobre cómo iniciar correctamente el servidor.
¿Cómo puedo superar esto o cuál es el procedimiento correcto? Además, realmente no me importan los compromisos de seguridad.
Dadas las diferencias en el sistema operativo subyacente, generalmente prefiero hacer esto a través de PostgreSQL, lo cual es útil cuando se trata de un servicio administrado que no le brinda acceso al sistema de archivos, así:
sudo -u postgres psql -U postgres -d database_name -c "alter system set postgresql_parameter = 'new_value';"Como ejemplo, cuando tengo que instalar la extensión TimeScaleDB, puedo hacer:
sudo -u postgres psql -U postgres -d database_name -c "alter system set shared_preload_libraries = 'timescaledb';" sudo service postgresql restart sudo -u postgres psql -U postgres -d database_name -c "create extension if not exists timescaledb;"