首页 > 解决方案 > 无法使用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 执行此操作

任何帮助表示赞赏。

谢谢,

安德鲁

标签: mysqlherokustrapi

解决方案


Heroku 本身不支持 MySql。一些第三方会在他们的 MySql dynos 上租给你空间。

而且 Heroku 根本不支持在localhost. 这意味着它与您的应用程序在同一个 Web dyno 上运行,而 Heroku 不是这样工作的。

您可以将 postgreSQL 服务添加到您的 Heroku 应用程序。他们提供该服务的适度规模的免费层,足以进行概念验证 CMS 部署。

Strapi 提供了 Heroku 部署指南。https://strapi.io/documentation/developer-docs/latest/deployment/heroku.html


推荐阅读