我有一个flyway作业,旨在对postgres数据库执行迁移。该作业似乎没有运行命令并检查作业日志,仅输出flyway留档。
我希望日志检查是所发生迁移的概要。我还安装了pgweb以实现可观察性,在连接到我的postgres pod后,很明显根本没有创建任何表。
到目前为止,我一直在移动连接命令。
我已经注释掉了我尝试放置命令的位置。我已经在3个位置尝试过了。
这是我的文件和设置。
以下是用于设置我的集群的相关库伯内特斯文件。
这是飞行路线的工作:
kind: Job
metadata:
name: flyway-migration-job
spec:
template:
spec:
containers:
- name: flyway
image: flyway/flyway:6.3.1
command: ["flyway", "-url=jdbc:postgresql://postgres-master:5432/wallet", "-user=test_user", "-password=testuser1234", "-schemas=wallet", "-connectRetries=60 migrate"]
restartPolicy: OnFailure
kind: Deployment
metadata:
name: postgres-master
labels:
app: postgres-master
spec:
replicas: 1
selector:
matchLabels:
app: postgres-master
template:
metadata:
labels:
app: postgres-master
spec:
containers:
- name: postgres-master
image: postgres:13
imagePullPolicy: IfNotPresent
ports:
- containerPort: 5432
env:
- name: POSTGRES_DB
value: wallet
- name: POSTGRES_USER
value: test_user
- name: POSTGRES_PASSWORD
value: testuser1234
apiVersion: v1
kind: Service
metadata:
name: postgres-master
labels:
app: postgres-master
spec:
type: NodePort
ports:
- protocol: TCP
port: 5432
targetPort: 5432
selector:
app: postgres-master
当我在本地构建我的图像并使用kind将它们放入我的集群时,我将附上我的相关docker文件。
FROM flyway/flyway:7.7.3-alpine
COPY ./migrations/sql /flyway/sql/
#CMD ["flyway -url=jdbc:postgresql://postgres-master:5432/wallet -user=test_user -password=testuser1234 -connectRetries=60 -schemas=wallet migrate"]
此脚本存储在migrations/sql中
CREATE TABLE wallet.transaction_events (
transaction_version int,
transaction_type VARCHAR(200),
coins int,
transaction_id VARCHAR(500),
wallet_id VARCHAR(500)
)
这是我用来在拉入 kind/my 集群之前构建映像的 docker 撰写文件。
version: '3.5'
services:
web:
build:
dockerfile: ./Dockerfile
container_name: wallet-api-web
depends_on:
- flyway
ports:
- "8080:8080"
postgres-db:
build:
dockerfile: ./utils/db.Dockerfile
container_name: postgres-db
environment:
POSTGRES_PASSWORD: testuser1234
POSTGRES_USER: test_user
POSTGRES_DB: wallet
image: postgres:13
ports:
- "5432:5432"
restart: always
flyway:
build:
dockerfile: ./migrations/Dockerfile
#command: -url=jdbc:postgresql://postgres-master:5432/wallet -user=test_user -password=testuser1234 -schemas=wallet -connectRetries=60 migrate
container_name: flyway-migrations
depends_on:
- db
image: flyway/flyway:6.3.1
volumes:
- ${PWD}/migrations/sql:/flyway/sql
我想我已经涵盖了提供问题背景所需的一切,但如果需要任何澄清,请随时询问。
我真的很感激为这些迁移工作提供的任何帮助。非常感谢。
命令采用数组语法,这意味着每个参数都必须是一个单独的元素。最后一个元素中有两个参数,flyway无法理解。
要修复:
"-connectRetries=60 migrate"]
更改为
"-connectRetries=60", "migrate"]