mysql - 无法使用mysql将strapi部署到Heroku
问题描述
我是 Heroku 的新手,但这看起来很简单/直截了当。
我有一个可以在我的本地机器上正常工作的strapi 应用程序。我已经将该应用程序推送到 github,然后在 Staging 部分将其连接到 Heroku。我已将 mysql 包添加到strapi。
我已将 ADMIN_JWT_SECRET、DATABASE_HOST、DATABASE_NAME、DATABASE_PASSWORD、DATABASE_USERNAME 和 NODE_ENV 的配置变量添加到 Heroku。
我的 config/server.js 是最小的:
module.exports = ({ env }) => ({
host: env('HOST', '0.0.0.0'),
port: env.int('PORT', 1337),
admin: {
auth: {
secret: env('ADMIN_JWT_SECRET'),
},
},
});
我的 config/database.js 也很简单:
module.exports = ({ env }) => ({
defaultConnection: 'default',
connections: {
default: {
connector: 'bookshelf',
settings: {
client: 'mysql',
host: env('DATABASE_HOST', '127.0.0.1'),
port: env.int('DATABASE_PORT', 3306),
database: env('DATABASE_NAME', 'strapi'),
username: env('DATABASE_USERNAME', 'user'),
password: env('DATABASE_PASSWORD', 'pass'),
ssl: env.bool('DATABASE_SSL', false),
},
options: {}
},
},
});
部署后,我无法访问该站点。我收到此错误:
应用程序错误 应用程序发生错误,无法提供您的页面。如果您是应用程序所有者,请查看您的日志以获取详细信息。您可以从 Heroku CLI 使用命令 heroku logs --tail 执行此操作
任何帮助表示赞赏。
谢谢,
安德鲁
解决方案
Heroku 本身不支持 MySql。一些第三方会在他们的 MySql dynos 上租给你空间。
而且 Heroku 根本不支持在localhost
. 这意味着它与您的应用程序在同一个 Web dyno 上运行,而 Heroku 不是这样工作的。
您可以将 postgreSQL 服务添加到您的 Heroku 应用程序。他们提供该服务的适度规模的免费层,足以进行概念验证 CMS 部署。
Strapi 提供了 Heroku 部署指南。https://strapi.io/documentation/developer-docs/latest/deployment/heroku.html
推荐阅读
- sql - 'Key' 是 SQL Server 中的保留关键字吗?
- firebase-realtime-database - 如何在android项目中使用firebase阻止和取消阻止用户
- reactjs - @firebase/firestore:Firestore (8.6.2):无法访问 Cloud Firestore 后端(React Js)
- laravel - laravel 解码分页链接
- time-series - 是否可以一次将多个列传递给 Croston 方法?
- highcharts - React Highcharts 不更新
- c# - OperationContext 使用情况 (Microsoft.WindowsAzure.Storage)
- node.js - 如何将先前安装的 sdk 和编译器链接到 Visual Studio
- python - 我在为我的不和谐机器人中的一个命令制作错误处理程序时收到一个文本错误“所需的位置参数:'coro'”
- javascript - 如何配置 VSCode 的 launch.json 进行调试?(Heroku + Node.js)