如果相应的表具有现有数据,我们如何安全地更改数据库类datatype的属性Starcounter?
例
现有: int PostalCode
期望: string PostalCode
更改数据库类的属性意味着重构数据库模式,即更改相应列的类型.无法无缝支持此类更改,Starcounter不提供内置工具.它可以手动完成,但非常麻烦.
我看到两种方法:
int列移动到string列中,然后将列重命名为原始列.请记住始终备份数据库.
我将更详细地描述第二种方法.
string类型的新属性添加到数据库类,例如,PostalCodeStringPostalCodeString为从原始转换的值int PostalCodeALTER TABLE TheClassName DROP COLUMN PostalCodePostalCode从类定义中删除旧属性并删除转换代码.PostalCode类型stringPostalCodeString以PostalCode与步骤I类似的方式移动数据,即通过应用程序代码遍历类的所有实例.PostalCodeString我自己没有测试过这些步骤,但我希望它能够正常工作.主要关注的是PostalCode在第二步中创建.
编辑:自2017年12月18日起,最新版本的候选人仅完全支持drop column SQL语句.