我创建了一个Strapi应用程序,使用最新版本,新的4.0,我想把它部署到Heroku。我确实按照Strapi文档来做,就像在this page中解释的那样。现在我得到了一个错误,我不明白,我猜它与postgres有关。这是错误
2021-12-18T15:26:26.658380+00:00 app[web.1]: [2021-12-18 15:26:26.656] debug: ⛔️ Server wasn't able to start properly.
2021-12-18T15:26:26.659122+00:00 app[web.1]: [2021-12-18 15:26:26.658] error: Unknow dialect undefined
2021-12-18T15:26:26.659123+00:00 app[web.1]: Error: Unknow dialect undefined
2021-12-18T15:26:26.659123+00:00 app[web.1]: at getDialectClass (/app/node_modules/@strapi/database/lib/dialects/index.js:12:13)
2021-12-18T15:26:26.659123+00:00 app[web.1]: at getDialect (/app/node_modules/@strapi/database/lib/dialects/index.js:19:23)
2021-12-18T15:26:26.659124+00:00 app[web.1]: at new Database (/app/node_modules/@strapi/database/lib/index.js:38:20)
2021-12-18T15:26:26.659124+00:00 app[web.1]: at Function.Database.init (/app/node_modules/@strapi/database/lib/index.js:84:33)
2021-12-18T15:26:26.659125+00:00 app[web.1]: at Strapi.bootstrap (/app/node_modules/@strapi/strapi/lib/Strapi.js:347:30)
2021-12-18T15:26:26.659125+00:00 app[web.1]: at Strapi.load (/app/node_modules/@strapi/strapi/lib/Strapi.js:410:16)
2021-12-18T15:26:26.659125+00:00 app[web.1]: at async Strapi.start (/app/node_modules/@strapi/strapi/lib/Strapi.js:161:9)
除了在我链接的文档中解释的操作之外,我只是在开发模式下使用UI添加了一些集合。我如何修复这个错误并将这个新的4.0版本的Strapi部署到Heroku?
9条答案
按热度按时间rsaldnfx1#
当我在本地连接pg时,我也遇到了类似的问题,然后意识到我的连接配置不正确。当我用v4模板替换它时,它工作了。
路径:
config/database.js
对于Heorku,正如文章所建议的:
路径:
config/env/production/database.js
:PS:确保在推送到heroku之前将
pg-connection-string
添加到依赖项中jgwigjjp2#
其中客户端是- db.config.连接
因此,如果您一直遵循以前的解决方案-其中谈到了连接对象等(如下图)
db.config.connection将返回undefined. &,因此它将失败
使用- www.example.com配置数据库https://docs.strapi.io/developer-docs/latest/setup-deployment-guides/configurations/required/databases.html#configuration-structure正常工作
toe950273#
如果您在Strapi中使用打字稿,我们也可能会遇到此问题,因为存在影响Strapi打字稿功能的issue。
当我将Strapi从4.3.8降级到4.3.2时,我可以解决该问题
bz4sfanl4#
您可以使用strapi docs here中的heroku/cli来检查此方法,但情况是一样的,我使用的是版本4.0.2,此方法适用于旧版本V3,我认为文档需要更新,大部分内容已过时,例如“仅获取数据(示例:posts/project etc..)与创建它的已验证用户相关”,文档和论坛中与此主题相关的大多数资源都是在V4中不起作用的弃用解决方案。
对于部署,我遇到了同样的问题,我尝试了很多解决方案,但都不起作用,但我还是设法让服务器像这样运行:
但是我在访问“/admin”页面时遇到了这个问题:
Strapi真的很有趣,让我们希望他们很快更新文档,有人在这里回应一个解决方案。
jmo0nnb35#
我通过直接使用数据库URL修复了这个问题。不确定为什么旧的方法在Strapi V4中不起作用。
gpnt7bae6#
以防有人遇到和我一样的问题。
在我的情况下,我在Windows中使用Vim作为我的文本编辑器。在编辑“config/database.js”文件后,它在该目录中留下了“database.js~”文件。然后,这个文件名会导致同样的问题:“错误:未定义未知方言”。
我猜这是strapi的一个bug。删除那个文件后,一切都正常了!
我在我的vim配置文件中添加了这一行:
然后在“C:/User/[me]/”中创建名为.“vimbackup”的目录。
tgabmvqs7#
Strapi再次更改了数据库配置结构,甚至他们的部署文档也使用了旧的不正确的示例。
下面是最新的示例:Strapi数据库配置
dm7nw8vv8#
在strapi v4中,您需要使用like:
5m1hhzi49#
它看起来像是有一个问题在新的strapi版本,当我试图创建项目与typescript支持我面临同样的错误,我不知道如果你是使用typescript在您的项目,但这两个解决方案解决了我的问题;
解决方案(1):-使用tsc
$ tsc .\config\database.ts .\config\server.ts ./ .\config\admin.ts
创建编译器配置文件解决方案(2):-在
package.json
文件中将您的strapi降级到4.3.2
版本。解决方案(3):-在使用4.3.2 npx创建strapi应用程序@4.3.2 test-strapi-verion-with-ts --ts的状态下创建strapi应用程序时,不要使用@latest
您可以使用其中一个主题