sitefinity - 更改配置文件自定义字段类型(Sitefinity 6.3)
问题描述
我有一个旧安装的 Sitefinity(6.3 版) 在配置文件上,我有一个数字自定义字段。我现在需要将其更改为保存字符串。
我发现没有简单的方法来更改数据类型(https://www.progress.com/documentation/sitefinity-cms/edit-an-existing-custom-field),但是可以通过代码/配置吗?
我猜一个选项是删除该字段,然后重新创建它是可能的,但是由于我有很多数据,因此要恢复该字段中的数据需要做很多工作。这是唯一的方法吗?
编辑:我已删除该列并将其重新创建为字符串/varchar。我现在面临某种类型的转换器的问题
type converter initialization failed. The converter with name 'DecimalConverter' does not convert from CLR type 'System. String' to SQL type 'DECIMAL'.
Parameter name: converterName
Actual value was OpenAccessRuntime.Data.DecimalConverter, Telerik.OpenAccess.Runtime, Version=2013.3.1211.3, Culture=neutral, PublicKeyToken=7ce17eeaf1d59342.
堆栈跟踪中的这一行很重要
[MetadataException: The metadata for field 'CustomerNo_sv' of class 'Telerik.Sitefinity.Security.Model.SitefinityProfile' cannot be initialized: Type converter initialization failed. The converter with name 'DecimalConverter' does not convert from CLR type 'System. String' to SQL type 'DECIMAL'.
Parameter name: converterName
Actual value was OpenAccessRuntime.Data.DecimalConverter, Telerik.OpenAccess.Runtime, Version=2013.3.1211.3, Culture=neutral, PublicKeyToken=7ce17eeaf1d59342.]
正如我所见,不知何故语言指定的值没有被转换。现在整个站点都关闭了,我无法访问后端。所以我想我必须在数据库中解决这个问题?
解决方案
我在类似情况下所做的是:
我创建新字段,然后用旧列(字段)中的值填充数据库中的新列。
在您的情况下,您将查看sf_sitefinity_profile表。
这样,数据将迁移到新字段。
之后,您可以删除旧字段并开始使用新字段。
推荐阅读
- python - 使用 Keras 编程多输入神经网络架构
- f# - 转换错误(类型约束不匹配)
- python - 谷歌云 ssh 密钥错误 - python 脚本
- c# - 如何生成随机 5 位数字取决于用户摘要
- vba - 将大小写敏感性添加到 CountIf 函数
- javers - 尝试获取扩展 HashMap 的类的更改时出错
- oracle - 如何创建与另一个系统提供给我的视图具有相同属性的表?
- php - 通过codeigniter中的file_get_contents以.srt格式读取压缩文件的内容并上传到服务器
- r - str_split 在字符向量的不同位置第一次和第二次出现分隔符
- imagemagick - 从 ImageMagick 脚本文件运行转换