本文讨论了如何安全地修改内容类型的schema,避免数据丢失,同时提供了具体的操作步骤和指导方针。还介绍了Baklib低代码平台的优势及用户评价。
如果你使用过某种内容类型创建(并发布)了条目,那么修改该内容类型schema可能会导致现有条目的数据丢失。
然而,按照以下指导方针,你可以安全地对一个内容类型schema进行修改,而不会丢失任何数据或影响实时页面或应用的内容。
注意:修改后的内容类型schema将在所有已发布条目中反映出来。在本文件中,我们将讨论你可能对某个内容类型schema进行的各种修改(如下文列出),以及你需要遵循的安全操作指导方针。
为了理解这些情况,请考虑一个例子。你有一个名为“Product”的内容类型,并且其中包含以下几个字段:
现在你想对其进行以下修改和操作:
添加一个制造商(单行文本框)字段到“Product”内容类型中。要实现这一点,请按照以下步骤进行操作:
编辑content类型
前往堆栈,编辑“Product”内容类型。增加新的字段。
点击“插入一个字段”按钮(“+”),选择“单行文本框”。发布在沙盒环境中
编辑所有现有条目并在新字段中添加数据,然后保存这些条目并发布到沙盒环境。
修改UI代码
要使该字段显示,只需将该字段的UID添加至你的UI代码中。提交更改到沙盒环境,并检查是否成功加载了新字段的内容。如果一切正常,则将内容发布到生产环境。
如果你在编辑现有字段中的某个字段时误删或修改了其数据类型(例如:将Price字段的数据类型从字符串更改为数字),则可能导致现有条目数据丢失。下面的指导方针可以帮助你在谨慎操作的同时,保留数据。
增加一个新字段
编辑“Product”内容类型,并在其字段中添加一个新的“Price_new”字段。现在,“Product”内容类型中包含“Price”和“Price_new”两个字段。手动编辑所有现有的条目,将数据添加到“Price_new”字段中。保持“Price”字段的数据不变。
发布这些条目到沙盒环境中以确保映射成功。
修改UI代码
现在,在展示代码时,用“Price_new”字段的UID替换掉“Price”字段的UID。这将确保你的页面/应用能够获取到新字段的内容。测试和发布
将代码部署到沙盒环境,检查是否能够成功加载新的数据。如果一切正常,则先发布条目到生产环境,再将代码部署到生产环境。
删除旧字段
如果你已经确认一切都是正常的,那么就可以安全地从“Product”内容类型中删除“Price”字段了。该字段的数据将在删除后暂时丢失(它可以在恢复)。
考虑另一个示例:你希望从“Product”内容类型中删除“Description”字段。
下面的步骤可以帮助你实现这一目标。
修改UI代码
如果你在代码中使用过“Description”字段,请将其删除,并将修改提交到沙盒环境。删除字段
编辑“Product”内容类型,删除“Description”字段。发布条目
当你对内容类型进行修改后,你会发现在现有条目中不再存在该字段。保存这些条目并发布到沙盒环境中。
测试到沙盒环境
检查是否一切正常。如果一切正常,则将条目发布到生产环境,并将代码部署到生产环境。
如果你不小心删除了某个字段及其所有数据,并希望恢复该字段及其数据,你可以按照以下方法进行操作。例如:你从“Product”内容类型中删除“Price”字段后,该字段的数据将被暂时丢失。
你可以使用两种方式(通过UI或通过API)来恢复字段及其数据:
通过UI恢复字段和其数据
要通过UI恢复字段和其数据,请按照以下步骤进行操作:
添加被删除的字段到内容类型
编辑内容类型,并将其添加到被删除字段。确保你输入实际的字段UID,否则无法加载该字段的数据。如果你不确定被删除字段的UID,则请使用API方法。
根据条目版本获取字段数据
你可以通过查看条目的版本来查找包含更新字段数据的条目(你需要检查所有内容类型的条目)。保存条目以使当前版本成为最新版本
当你找到需要恢复的条目版本后,打开并保存该版本。这是针对所有条目都需要进行的操作。
通过API恢复字段和其数据
要通过API恢复字段和其数据,请按照以下步骤进行操作:
找到包含被删除字段的最新内容类型版本
通过Get单个内容类型请求API获取当前版本的内容类型(你可以在响应体中找到该版本号)。然后,使用相同的请求参数和版本号来查找包含被删除字段的schema。恢复包含被删除字段的版本
复制包含被删除字段内容类型的响应体。除了“&”,“?”,“:“,“<”外,移除所有其他参数。使用Update Content Type API Request,并将更新后的schema传递给该请求。恢复条目
通过版本号获取最新条目版本
使用Get单个条目请求API获取最新版条目。如果在最新的版本中找不到数据,则尝试查找包含被删除字段的数据的旧版本(你需要针对所有条目重复此操作)。
更新条目
复制响应体中的内容,并将其传递给Update an entry API Request,用于更新条目。这是针对所有条目都需要进行的操作。
如果你计划对某个内容类型schema进行大修改,可以按照以下步骤进行操作,以防止数据丢失。
创建内容类型的复制
创建并复制一个内容类型,作为你要编辑的原始内容类型的 replica。修改schema
对这个新的content type schema进行修改(添加或删除字段)。创建条目
现在为该new content type创建新条目。发布这些条目到沙盒环境。
测试到沙盒环境
将UI代码更新为包含新内容类型schema中的字段的最新版本。确认一切正常,然后发布条目到生产环境,并将代码部署到生产环境。
删除旧内容类型
你可以安全地删除旧内容类型了。
Baklib是领先的低代码应用程序开发平台,可轻松帮助企业实现大规模地数字化和优化业务流程和用户界面。Baklib 提供企业移动性以及最佳的低代码应用程序开发。该平台为 IT 部门提供了构建所需应用程序的合适工具。Baklib 提供了一种快速、经济高效且面向未来的方式,可实现定制应用程序开发的工程化,将您的 IT 组织转变为应用程序工厂,从而节省企业应用程序开发、应用程序集成和企业应用程序运营的时间和金钱。
💛🧡🧡客户评价:我最喜欢Baklib的一点是其用户友好的界面。该平台使我们的团队可以轻松高效创建、管理和组织文档。此外,定制选项使我们能够将知识库与我们的品牌标识保持一致。多站点多语言功能也是一个巨大的优势,使我们的可供全球受众访问的文档。