有没有办法备份/导出和导入Strapi数据



因此,在从本地主机移动到远程主机并通过herokuapp.com 部署Strapi后,我丢失了所有Strapi数据

我在我的个人NEXT.JS项目中使用Strapi。

幸运的是,我的Strapi数据库并没有那么大,所有的内容类型都被保留了下来,所以我能够很快地重新创建数据库。此外,这只是一个个人项目。

不过,我想知道,如果我决定推动Strapi在更专业的环境和实际项目中使用——我如何在不丢失所有数据的情况下从本地开发转移到部署?

有没有一种方法可以在部署前导出所有内容,然后将其导入到部署的CMS中,或者这是如何工作的?

还有——如果我想换一种方式呢?我会继续使用Heroku上的Strapi开发我的应用程序,但在某个时候我会想在本地复制CMS。数据存储在哪里,如何访问?

您现在可以通过CLI完成,这是4.6版的新增功能。Strapi支持导出、导入和转移。

要创建数据的tar:

npm run strapi export --file my-strapi-export

将数据导入项目:

npm run strapi import -f export_file.tar.gz

文档中还有更多选项:https://docs.strapi.io/developer-docs/latest/developer-resources/data-management.html#export-使用cli工具的数据

使用新的数据导出&导入系统,您可以备份&恢复您的Strapi项目数据,而无需手动操作并直接进入数据库

更多信息:https://strapi.io/blog/announcing-strapi-v4.6

来自文档:"Strapi目前没有提供任何工具来在不同环境之间迁移或部署数据更改(即从开发到生产(。除了内容管理器设置";

目前还没有导出/导入内容。

要将数据从本地环境导出到生产环境,您必须处理:

  • 内容类型-Strapi将这些内容存储在文件中,因此版本控制将有所帮助
  • 数据库数据-您必须手动备份数据库,然后在生产服务器上导入数据
  • 静态文件-如果使用Srapi处理静态文件,则可能需要手动复制这些文件并将其导入生产服务器,或者使用版本控制(错误选项(。它们存储在app/public/uploads

我自己没有尝试过,但这看起来是一项相当艰巨的任务。

结论:如果只迁移您的内容类型是可以的,只需在您的Strapi文件夹上放一个git

请记住,Heroku正在关闭其免费层,因此使用railway.app或render.com等其他提供商可能是个好主意。

总之:正如Eugene在回答中提到的,可能需要传输3种类型的数据(内容类型、实际数据库和文件(。

在第一次部署到Heroku之后,您应该会看到所有的内容类型都在那里,但只有一个空数据库,没有文件。

根据本指南,您将在设置项目时创建一个自己的数据库,现在您可以从本地开发环境中导出和导入数据库(您必须手动执行(,也可以手动输入新数据。有时这甚至更好,因为开发环境往往包括许多";Lorem Ipsum";用于测试目的的内容。

不过,未来的部署不应该重置数据库,而应该保留该环境中的数据。

最后,我建议将这些文件存储在Cloudinary上,因为它是免费的,Strapi为它提供了一个易于使用的插件。只需在Cloudinaly上创建一个免费帐户,在Strapi项目中安装插件,并在Heroku中为您的生产环境设置ENV变量。

我发现了这个

显然,他们最近做了一个插件教程,与这个问题有关。git hub上有一个名为strapi插件导入导出内容的插件,它可能会帮助您解决问题。

git集线器链接

最新更新