PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

PostgreSQL no Helm:parâmetro initdbScripts


De acordo com stable/postgresql gráfico do leme, initdbScripts é um dicionário de nomes de scripts de inicialização que são variáveis ​​de várias linhas:

Vamos supor que temos o seguinte init.sql roteiro:
CREATE USER helm;
CREATE DATABASE helm;
GRANT ALL PRIVILEGES ON DATABASE helm TO helm;

Quando vamos injetar um texto de várias linhas em valores, precisamos lidar com o recuo em YAML.

Para o caso particular acima é:
helm install stable/postgresql -n testpg \
--set global.postgresql.postgresqlDatabase=testpg \
--set global.postgresql.postgresqlUsername=testpg \
--set global.postgresql.postgresqlPassword=testpg \
--set global.postgresql.servicePort=5432 \
--set initdbScripts."init\.sql"="CREATE USER helm;
CREATE DATABASE helm;
GRANT ALL PRIVILEGES ON DATABASE helm TO helm;" \
--set service.type=LoadBalancer

Há alguma explicação para o exemplo acima:
  1. Se o nome do script tiver . deve ser escapado, como "init\.sql" .
  2. O conteúdo do script está entre aspas duplas, porque é uma variável de string de várias linhas.