Typeorm + Firebase 功能:部署后“在任何 orm 配置文件中都找不到连接选项”

Posted

技术标签:

【中文标题】Typeorm + Firebase 功能:部署后“在任何 orm 配置文件中都找不到连接选项”【英文标题】:Typeorm + Firebase functions: "No connection options were found in any orm configuration files" after deployed 【发布时间】:2021-06-02 17:21:22 【问题描述】:

环境:nodejs12

文件夹结构:

#root
/functions
  /src
    ...
    /models
    /resolvers
    index.ts
  ormconfig.json
  package.json
  tsconfig.json
  ...
.firebaserc
firebase.json

在本地环境中开发时一切正常。部署到 firebase 函数后,No connection options were found in any orm configuration files 会出现。

可能是什么原因?

如果需要,我会更新更多信息。

==========================================

更新

以下是已部署代码的文件夹结构。 (云函数不能显示超过50个文件,所以我从GCP下载了源代码)

正如您所见,ormconfig.json 确实存在于根目录中,但不知何故无法找到它。我必须使用typeorm.createConnection(type: "postgres",...) 手动创建连接才能使代码正常工作。

【问题讨论】:

我认为部署找不到 ormconfig。可能有很多原因。我想知道你如何在本地测试它? @vitooh 和Firebase Local Emulator。部署时,firebase 将源代码构建到dist/ 并将根文件夹上传到云函数,因此本地代码应与部署代码相同。 【参考方案1】:

当与 Google Cloud Functions 结合使用时,这可能是由带有 app-root-path(TypeORM uses for config file resolution)的 known bug 引起的。

对我有用的解决方法/修复是在我部署我的 Google Cloud Function 时将环境变量 APP_ROOT_PATH 设置为 /workspace(app-root-path 在看到该变量时将 short-circuit)。

【讨论】:

我必须在云控制台的环境变量下添加它。我试图在我的本地系统上设置变量,然后部署它实际上是有意义的。

以上是关于Typeorm + Firebase 功能:部署后“在任何 orm 配置文件中都找不到连接选项”的主要内容,如果未能解决你的问题,请参考以下文章

NodeJS Firebase 功能在部署后失败

为啥重新部署应用后 Firebase 需要永远完成相同的功能?

部署到 Firebase 云功能时出错 - ?缺少配置详细信息

在 heroku 上部署 typeorm/typescript 应用程序

Firebase 项目在本地工作,但部署的版本输出 CORS 错误

为啥 Firebase 功能部署非常缓慢?