如果您有在旧版 Cloud infrastructure 上运行的采用非计量订阅的 Oracle Content Management 实例,Oracle 建议您将这些实例迁移到新的本机 Oracle Cloud Infrastructure (OCI) 环境 — 第 2 代 OCI(即,使用 Infrastructure 控制台管理服务实例)。这将确保在将来能够利用 Oracle 云平台的优势和发展。
要启动迁移,您需要在迁移之前执行几个步骤并与 Oracle 技术支持一起计划迁移。
此表介绍了 Oracle Content Management 权限组到 OCI 应用程序角色的映射。
| Oracle Content Management 权限组 | OCI 应用程序角色 |
|---|---|
| DocumentsServiceUser | CECStandardUser |
| DocumentsServiceAdmin | CECServiceAdministrator |
| SitesServiceVisitor | CECSitesVisitor |
| SitesServiceAdmin | CECSitesAdministrator |
| ContentAdministratorRole | CECContentAdministrator |
| CECSStandardUser | CECStandardUser |
| CECSEnterpriseUser | CECEnterpriseUser |
注:
如果目标 IDCS 域已包含具有相同用户名的用户,将为该用户分配与用户的 Oracle Content Management 权限组对应的 OCI 应用程序角色。做好迁移准备后,必须提交迁移请求才能开始该流程:
在 Oracle 支持人员收到您的迁移服务请求后,我们将基于您请求的日期安排迁移计划,您的服务请求将会更新以反映迁移的开始日期和时间。
服务请求将更新以反映迁移进度。数据迁移在后端执行;您只需跟踪所有服务请求更新并在完成迁移之后验证迁移,无需执行任何其他操作。
以下是迁移期间发生的事情:
重要:
从此时开始,您不得对旧(源)实例进行任何更改。在迁移开始之后进行的任何更改都不会迁移到新实例。如果旧实例直接或通过 REST API 调用与其他服务或应用程序进行了集成或通信,您可能需要执行一些迁移后任务。
以下各项在服务范围内适用:
旧 URL 使用以下模式:
https://<service-name>-<account-name>.<region>.oraclecloud.com/documents
新 URL 使用以下模式:
https://<service-name>-<account-name>.<service-type>.ocp.oraclecloud.com/documents
| 集成 | 迁移后待办事项 |
|---|---|
| Oracle Integration |
|
| Oracle Commerce Cloud |
|
| Oracle Process Cloud Service |
|
| Oracle Eloqua Cloud Service |
|
| Oracle Intelligent Advisor |
|
| Oracle Cobrowse Cloud Service |
|
| Responsys |
|
| Visual Builder Cloud Service (VBCS) |
|
| CDN/Akamai |
|
| REST API 调用 |
|
| 客户端 SDK/CLI 使用情况 |
|
| 连接器 |
|
注:
由于新实例的 URL 已发生更改,所以旧实例内容相关的任何书签将不再起作用。将自动迁移不包括资产的站点,但是确实包括资产的站点需要执行一些其他步骤,以使它们在您的新 Oracle Content Management 实例中运行。
"cec migrate-site" 命令新命令,因此您将需要从 webclient git 资料档案库安装 OCE 工具包,即使您先前已经下载并安装了该工具包也是如此。
按照站点工具包页上的指示下载并安装 OCE 工具包。
注册目标服务器的连接详细信息(您要将站点迁移到的服务器):
> cec register-server <target_server_name>
-e http://<target_server>:<target_port>
-u <target_username> -p <target_password>
-t pod_ec
要迁移站点,请执行以下步骤:
<site_name> 替换为您希望站点在目标服务器上具有的名称:
> cec migrate-site <site_name> --template <template_path_and_name> --destination <registered_target_server_name> --repository <repository_name>
迁移站点后,它将使用内容 REST v1.1 调用运行。这可能会导致一些问题,需要先解决这些问题,然后站点才能正确运行。查看以下内容来确定您需要执行的操作:
在使站点正常运行后,则需要使您的站点符合 MLS 要求。如果您要在外部计算服务器中创建企业站点,将需要默认语言和本地化策略。在将站点复制过来时,它是非 MLS 站点,因此您需要将其升级到 MLS 站点以确保您可以支持将来的功能。
下表显示了 MLS 与非 MLS 站点之间的区别。
| 站点对象 | MLS 站点 | 非 MLS 站点 |
|---|---|---|
| 内容项 | 将显示内容项语言变体,而不是放到页上的内容项。根据呈现站点时请求的语言,语言可以更改。 | 放到页上的内容项将始终显示。 |
| 内容布局 | 内容布局必须支持 v1.1 API。如果不支持,则将不显示内容项,而是显示警告。这些因为所有 v1.1 API 调用都将添加有 "locale",而 v1.0 API 中不支持该项。 | 内容布局可以是 v1.0 或 v1.1。如果内容布局仅支持 v1.0,ContentSDK 将在响应中添加 "data" 条目以匹配 "fields" 条目。可能仍存在其他问题,因此此项不应视为“支持的功能”,因为未升级内容布局。 |
| 内容列表 | 将仅显示可用于请求的语言变体的内容项。 | 将显示所有内容项,而不管语言。用户在内容列表内具有选项来将结果固定到特定语言,从而您可以在页上具有两个内容列表,以不同语言显示结果。用于选择语言的此设置面板选项不可用于 MLS 站点。 |
| defaultLocale | MLS 站点具有默认站点区域设置。这意味着所有内容查询将仅返回位于该区域设置(或不可翻译)的内容项。 | 在非 MLS 中没有默认区域设置,因此使用的内容查询返回所有内容项,而不管语言。 |
| 本地化策略 |
定义可用于站点的语言列表。构建器中将有这些语言的下拉列表。 此外,在管理 UI 中,将有语言的下拉列表,允许您以请求的语言打开/预览。 |
因为没有本地化策略,用于切换语言的下拉列表已从构建器中删除。 在管理 UI 中,未列出任何语言,包括无“默认”语言。这是在管理 UI 中识别非 MLS 与 MLS 站点的方式。 |
| 翻译/可翻译 | 管理 UI 中的上下文菜单具有“翻译”作为选项。这样,您可以创建翻译作业来翻译站点。 |
管理 UI 中的上下文菜单将具有“可翻译”选项。实际上,非 MLS 是不可翻译的,因此您需要先使其成为可翻译 (MLS) 站点,然后才能翻译该站点。 这也是您将站点从非 MLS“升级”到 MLS 的方式。 注意:这是单向的。您无法降级到不可翻译。 |
在可将站点转变为 MLS 站点之前,需要执行以下操作:
然后,如果您碰巧有进行内容 REST 调用的任何定制组件代码,您还需要升级这些代码以进行 v1.1 调用。这是不常见的,因为大多数内容调用都是从内容布局进行。
升级内容布局
指定支持的内容 REST API 版本
内容布局需要指定它们支持的内容 REST API 版本。这是为了确保进行适当的内容 REST 调用以将预期的响应数据返回到布局。
如果您不指定任何版本支持,则假定内容布局仅支持 v1.0。
控制台将列出仍位于 v1.0 上的内容布局。
要允许内容布局支持其他版本,请将 "contentVersion" 属性添加到内容布局对象。
在此示例中,内容布局指示其支持 v1.0 到 2.0 之间的所有版本(注意:2.0 不存在,但是主版本更改可能引入重大更改)
// Content Layout
definition.ContentLayout.prototype = { // Specify the versions of
the Content REST API that are supported by the this Content Layout. // The value for contentVersion follows Semantic Versioning
syntax. // This allows applications that use the
content layout to pass the data through in the expected format. contentVersion: ">=1.0.0
<2.0.0", // Main rendering function: // - Updates the data to handle any required additional requests and
support both v1.0 and v1.1 Content REST APIs // - Expand the Mustache template with the updated data
// - Appends the expanded template HTML to the
parentObj DOM element render: function (parentObj)
{
处理 v1.1 响应更改
您至少需要处理从 "data" 到 "fields" 的内容 REST API 响应更改。执行此操作的最简单方式是将 "data" 属性添加回去并指向新的 "fields" 属性
render: function (parentObj)
{ ... if(!content.data) { content.data =
content.fields; }
更好的选项是改为在整个内容布局中使用 v1.1 "fields" 值。这将涉及更新 JavaScript 和模板代码。
要完全支持 v1.1,将需要处理 v1.0 和 v1.1 之间的以下内容 REST API 更改:
| 内容 REST API 更改 | v1.1 | v1.0 |
|---|---|---|
| "fields" 与 "data" |
"items": [{ "type": "Starter-Blog-Author", "name": "Alex Read", "id": "COREB62DBAB5CEDA4915A9C9F6050E554F63", "fields":
{ "starter-blog-author_bio": "Alex's bio", "starter-blog-author_name": "Alex Read" } }, |
"items": [{ "type": "Starter-Blog-Author", "name": "Alex Read", "id": "COREB62DBAB5CEDA4915A9C9F6050E554F63", "data":
{ "starter-blog-author_bio": "Alex's bio", "starter-blog-author_name": "Alex Read" } }, |
| camelCase 属性名称 | "updatedDate" | "updateddate" |
| 查询格式 | /items?q=(type eq "Starter-Blog-Author") | /items?fields.type.equals="Starter-Blog-Author" |
| API 版本 | /content/management/api/v1.1/items | /content/management/api/v1/items |
| 语言特定查询 | /content/management/api/v1.1/items?q=((type eq "Promo") and (language eq "en-US" or translatable eq "false")) |
不支持。 需要迁移所有定制 v1 调用以包括 "language" 选项。 这可确保在以特定语言查看时,结果与为 MLS 站点返回的那些结果一致。 |
升级内容查询字符串
您可能正在任何定制代码中进行内容 API 调用,因此您需要验证正在进行内容 REST API 调用的站点使用的所有定制代码。
将非 MLS 站点转换为 MLS
将站点转换为完全支持 v1.1 内容 REST API 后,可以通过更改为 MLS 站点来添加语言支持。
如果在站点管理 UI 中选择您的站点,您将看到“可翻译”内容菜单选项。选择此选项将显示对话框,要求您选择本地化策略并从该本地化策略的必需语言列表中选择站点的默认语言。如果不存在本地化策略,将无法完成此步骤,您将需要首先转至内容管理屏幕并创建至少包含一种必需语言的本地化策略。
完成此步骤后,您的站点现在将呈现在默认区域设置中。还将允许您切换到您的本地化策略中指定的其他区域设置。
您将需要验证您的站点是否如预期的那样呈现在您的默认区域设置中。
您迁移站点时,将迁移与站点关联的资产,但是不与站点关联的所有资产需要单独迁移。
开始迁移之前,请考虑以下几点:
要迁移资产,请执行以下步骤:
注册源和目标服务器的连接详细信息。
注册源服务器(您从中迁移资产的服务器):
> cec register-server <source_server_name>
-e http://<source_server>:<source_port>
-u <source_username> -p <source_password>
-t pod_ic
注册目标服务器(您要将资产迁移到的服务器):
> cec-install % cec register-server <target_server_name>
-e http://<source_server>:<source_port>
-u <target_username> -p <target_password>
-t pod_ec
通过运行以下命令来迁移资产的集合:
> cec migrate-content <source_collection_name> --server <source_server_name>
--destination <target_server_name> --repository <target_repository_name> --collection <target_collection_name> --channel
<target_channel_name>
将在指定资料档案库中的目标服务器上创建资产,并将其与集合和通道关联。如果需要,将自动创建集合和通道。所有已迁移资产的默认语言将是在指定资料档案库中设置的默认语言。