【问题标题】:Committing changes from Heroku to Github / BitBucket提交从 Heroku 到 Github / BitBucket 的更改
【发布时间】:2020-12-04 16:34:36
【问题描述】:

我正在使用Strapi 我的内容管理系统,托管在 Heroku 上。但是,我希望能够直接在 Heroku 服务器上编辑内容,并在以后需要更广泛的 CMS 开发时将这些更改拉到我的本地环境中。

如何从本地 -> Heroku 部署更改已有详细记录,但反之则不然。 有人能指出我正确的方向吗?

【问题讨论】:

  • 下面我的回答对您有帮助吗?

标签: heroku strapi heroku-cli


【解决方案1】:

不完全确定您的要求,但我会尝试...

让我们首先了解 Strapi 中的两个主要移动部分。

  1. content-type-builder(使用内容类型构建器创建内容类型,例如书籍)
  • 1.1) 您应该始终使用您的内容类型构建器创建您的内容类型 本地环境,然后将其推送到您的主机(Heroku) Strapi 也建议这样做,为了强制执行,他们禁用了内容- 将 NODE_ENV 设置为生产时的类型生成器插件。
  1. content-type-data(使用上面创建的 books-content-type 来创建一本书)
  • 2.1) 在撰写此 Strapi v3.1.4 时,Strapi 无法为您在环境之间移动您的内容类型数据。 IE。如果您创建书籍内容类型并使用它在 localhost 环境中创建书籍,那么该书籍将仅存在于您的本地环境中。

如果您确实需要/想要在环境之间移动内容类型数据,则需要开发一种迁移机制,将数据从一个数据库播种到下一个数据库。

作为一个粗略的例子: 在您的 ./config/functions/bootstrap.js 文件中,您可以创建一个模块,该模块通过公共 api 从您的 heroku 实例获取内容类型数据,并将其播种到您的本地数据库中。 为此,您需要在 heroku 应用中设置内容类型的读取权限。

示例 bootstrap.js

const productionSeed= require('./seeds');
module.exports = async () => {
    if (process.env.NODE_ENV == "development") {
    await productionSeed.seedData();
    }
};

示例种子.js

module.exports.seedData= async () => {
    try {
        //Sudo code:
        var books = GET http://{heroku-app-name}/books
    
        foreach(book in books){
            await strapi.services.books.create({
            name: book.name;
        });
    } catch (error) {
        console.error(error);
    }
};

当用例很简单时,这是很长的路要走。 应使用迁移脚本迁移生产数据库,您可以以相同的方式调用和使用该脚本。

如果你想移动实际的内容类型,那么你必须克隆你的 heroku git 存储库,你可以使用heroku git:clone -a {app name} 这样做

注意 Heroku 应用的 Git 存储库仅用于部署目的。官方不支持从该存储库克隆作为一项功能,只能作为最后的手段尝试。

您可以在这里找到更多信息:https://devcenter.heroku.com/articles/git-clone-heroku-app

【讨论】:

  • 感谢您的意见。我希望 heroku 允许使用heroku git:commit -am "commit message" 类型命令,该命令允许平台将更改提交回存储库。当然,那里有很多信息可以开始。谢谢
  • 如果您觉得我的回答确实为您解决了问题或对您有所帮助,请投票并将其标记为正确答案,谢谢
  • 我也认为你 Aubrey 理解该命令。 Heroku 的版本控制仓库和你的 github 版本控制仓库不一样...
猜你喜欢
  • 2012-09-26
  • 2011-10-21
  • 1970-01-01
  • 2011-08-20
  • 1970-01-01
  • 2011-06-02
  • 1970-01-01
  • 2018-08-11
  • 2012-09-14
相关资源
最近更新 更多