如何在helm中的posgresql中创建表

问题描述 投票:0回答:2

我已经使用helm在k8s中部署了postgresql实例并使用values.yaml创建了一个数据库。现在如何创建表。

global:
  postgresql:
    auth:
      # Added below credentials for testing
      postgresPassword: "postgresqladmin"
      username: "admin"
      password: "admin"
      database: "postgresqlDB"
containerPorts:
  postgresql: 5432
image:
  registry: docker.io
  repository: bitnami/postgresql
  tag: 15.4.0-debian-11-r10
  digest: ""
  pullPolicy: IfNotPresent
  debug: false

这是安装命令:

helm upgrade --install postgresql -f values.yaml bitnami/postgresql

这是访问数据库的命令(我在安装后使用建议的命令)

kubectl run postgresql-client --rm --tty -i --restart='Never' --image bitnami/postgresql --env="admin" --command -- psql --host postgresql -U admin -d postgresqlDB -p 5432
postgresql kubernetes kubernetes-helm
2个回答
0
投票

您有两个选择。

1。访问容器

像这样挂载后,您可以访问您的数据库,然后执行您的sql脚本。

kubectl run -it --rm --image=bitnami/postgresql:15.4.0-debian-11-r10 --restart=从不 postgresql-client -- psql -h postgresql -U admin -d postgresqlDB

2。在您的部署中包含一个脚本:

您创建一个 SQL 脚本来创建表 myscript.sql :

CREATE TABLE my_table (
    id serial PRIMARY KEY,
    field VARCHAR(255)
);

创建一个 ConfigMap,一个包含以下内容的 YAML 文件(例如 configmap-create-my-table.yaml):

apiVersion: v1
kind: ConfigMap
metadata:
  name: create-my-table-configmap
data:
  create_table.sql: |
    -- create_table.sql
    CREATE TABLE my_table (
       id serial PRIMARY KEY,
       field VARCHAR(255)
    );

将此应用到您的集群

 kubectl apply -f configmap-create-table.yaml

调整您的舵图:

postgresql:
  extraVolumeMounts:
    - name: create-my-table-configmap
      mountPath: /docker-entrypoint-initdb.d
      readOnly: true
  extraVolumes:
    - name: create-my-table-configmap
      configMap:
        name: create-my-table-configmap

然后升级它:

helm upgrade --install postgresql -f values.yaml bitnami/postgresql


0
投票

为了创建表,请尝试以下步骤;

首先你必须使用客户端连接到postgreSQL:

kubectl run -it --rm --image=bitnami/postgresql:15.4.0-debian-11-r10 --namespace=YOUR_NAMESPACE postgresql-client -- bash

现在连接到 postgreSQL 客户端 pod 内的数据库;

psql -h postgresql -U admin -d postgresqlDB

现在使用简单的 SQL 命令,您可以创建表;

CREATE TABLE my_table (
    id serial PRIMARY KEY,
    name VARCHAR (255),
    age INT
);

成功创建表后,您可以使用以下命令退出 PostgreSQL 客户端: ostgreSQL

\q

希望它有效:)

© www.soinside.com 2019 - 2024. All rights reserved.