在本地开发和部署 Strapi 到生产服务器

4
我正在使用Strapi作为我的网站的无头CMS。一开始我只在生产环境上启动了一个版本,没有其他环境,如开发或暂存环境。因此,当我想要更改模型(集合和单个类型等)时,我必须将服务器切换到开发模式才能进行更改。在进行这些更改时,生产环境也无法提供服务。几天后,应用程序在尝试更新数据库时崩溃了,再也无法启动。
因此,现在我非常需要将开发环境与生产环境分开。但我有一些关于如何做到这一点的问题,而且找不到解决方案:
  1. 如果我在本地或独立的开发环境中开发应用程序,我应该如何将新的模型传输到服务器?
  2. 生产环境数据是否会在迁移过程中保留?
  3. 我每次进行部署(迁移)过程时都应该创建生产环境数据备份吗?
返回结果应保留HTML标签。
3个回答

3

当谈到项目开发生命周期中的迁移时,有两件事情需要考虑:

  • 模式迁移
  • 内容迁移

Strapi会自动处理模式迁移。您可以在本地更新模式文件,然后将其移动到生产环境(就像Shekhar建议的那样)。

另一件事是内容迁移。 Strapi建议使用一个长期存在的migrateCLI。我等不及了,所以我通过名为config-sync的插件自己构建了此功能。 该插件可与Strapi v4一起使用,通过CLI或GUI导出/导入数据并在各个环境之间迁移数据。

希望这能帮助您构建可靠的Strapi开发工作流程。


3
阅读文档并查看之前的问题后,我发现这个问题已经在这里被问过了:Running Strapi in production and version control sync issues,没有得到接受的答案,并且还在https://github.com/strapi/strapi/issues/1986上进行了讨论。最终每个人都在等待strapi migrate功能,但这甚至没有计划在未来实现。还有另一种方法,就是在https://strapi.io/documentation/developer-docs/latest/developer-resources/cli/CLI.html#strapi-configuration-dump中转储和恢复devprod环境中的配置,虽然我还没有测试过。我继续阅读有关无头CMS的信息,发现像Keystonejs和Payloadjs这样的解决方案可以让开发人员在代码中定义模型,更加稳定、可维护和可扩展,因此我现在已经切换到Keystonejs。

0
我们一直以来将从暂存环境到生产环境的迁移作为在 Strapi 项目文件之间查找差异(如模型等)并将修改后的文件移动和替换到生产服务器的过程来完成。
我们没有迁移数据。
这种方法不是完美无缺的,但对我们来说是有效的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接