首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从Cloud连接到Cloud来运行knex数据库迁移?

如何从Cloud连接到Cloud来运行knex数据库迁移?
EN

Stack Overflow用户
提问于 2021-06-10 14:01:52
回答 1查看 369关注 0票数 0

我在上调查了StackOverflow的问题,但不幸的是,对我来说没有任何帮助。

我有cloudbuild.yaml文件

代码语言:javascript
运行
复制
steps:
  - name: 'node:14.16.0'
    entrypoint: 'yarn'
    id: yarn-install
    args: ['install']
    waitFor: ["-"]

  - name: gcr.io/cloud-builders/yarn
    id: proxy-install
    entrypoint: sh
    args:
      - "-c"
      - "wget https://storage.googleapis.com/cloudsql-proxy/v1.23.0/cloud_sql_proxy.linux.amd64 -O /workspace/cloud_sql_proxy && chmod +x /workspace/cloud_sql_proxy"
    waitFor: ["-"]

  - id: migrate
    name: gcr.io/cloud-builders/yarn
    env:
      - NODE_ENV=$_NODE_ENV
      - DB_NAME=$_DB_NAME
      - DB_USER=$_DB_USER
      - DB_PASSWORD=MY_FAKE_PASSWORD
      - CLOUD_SQL_CONNECTION_NAME=$_CLOUD_SQL_CONNECTION_NAME
    entrypoint: sh
    args:
      - "-c"
      - "(./workspace/cloud_sql_proxy -dir=/workspace -instances=$_CLOUD_SQL_CONNECTION_NAME & sleep 2) && yarn run knex migrate:latest"
    timeout: "1200s"
    waitFor: ["yarn-install", "proxy-install"]

我想连接到我的Cloud数据库,以便使用yarn run knex migrate:latest应用模式迁移。

但它在迁移步骤中失败。

来自云构建的日志

代码语言:javascript
运行
复制
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
    at PipeConnectWrap.afterConnect [as oncomplete] (net.js:1145:16)
Error: connect ENOENT /cloudsql/project:us-east1:project-posgresql1/.s.PGSQL.5432
Using environment: production
Working directory changed to /workspace/src/infrastructure/knex
Requiring external module ts-node/register
$ ./node_modules/knex/bin/cli.js --knexfile=./src/infrastructure/knex/knex.config.ts migrate:latest --env production migrate:latest
yarn run v1.22.5
sh: 1: ./workspace/cloud_sql_proxy: not found
Already have image (with digest): gcr.io/cloud-builders/yarn

我不知道如何正确地调试它..。你能帮我找出问题的根源吗?

附注:

...@cloudbuild.gserviceaccount.com具有以下角色

  • 云构建服务帐户
  • 云SQL客户端
  • 服务帐户用户
  • 云运行管理
  • 秘密管理员秘密访问器

P.S.S 肯奈是用于类SQL数据库的JavaScript查询生成器。

EN

Stack Overflow用户

发布于 2021-06-10 18:45:22

通过设计,您需要在与代理安装步骤相同的步骤中运行。然而,我从未用waitFor进行测试“-”,这可能是一个解决办法。但是这个解决方案应该对你有用。

代码语言:javascript
运行
复制
  - name: gcr.io/cloud-builders/yarn
    id: proxy-install
    entrypoint: sh
    env:
      - NODE_ENV=$_NODE_ENV
      - DB_NAME=$_DB_NAME
      - DB_USER=$_DB_USER
      - DB_PASSWORD=MY_FAKE_PASSWORD
      - CLOUD_SQL_CONNECTION_NAME=$_CLOUD_SQL_CONNECTION_NAME
    args:
      - "-c"
      - |
         wget https://storage.googleapis.com/cloudsql-proxy/v1.23.0/cloud_sql_proxy.linux.amd64 -O /workspace/cloud_sql_proxy && chmod +x /workspace/cloud_sql_proxy
         (./workspace/cloud_sql_proxy -dir=/workspace -instances=$_CLOUD_SQL_CONNECTION_NAME & sleep 2) && yarn run knex migrate:latest
    timeout: "1200s"

试一试让我知道

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67922716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档