Archived
This forum has been archived. Please start a new discussion on GitHub.
custom migration
Hi
I have some problem in transform string type to enum.
my original type define a string type "type" and I change the type to enum type in new ice definition.
When I run transformdb and it show me following warning
Can some one to help?
thank you!
My data:
old ice:
slice2freeze --dict TestMap,int,::IIceTest::ITest TestMap TestMap.ice
new ice: (use enum TypeEnum instead to string for member type)
I have some problem in transform string type to enum.
my original type define a string type "type" and I change the type to enum type in new ice definition.
When I run transformdb and it show me following warning
"warning in <database> descriptor, line 4: unable to convert ::IIceTest::ITest member type value 'type1' from string to ::IIceTest::TypeEnum"
Can some one to help?
thank you!
My data:
id type
1 "type1"
2 "type2"
3 "unknow"
old ice:
module IIceTest
{
struct ITest
{
int id;
string type;
};
sequence<ITest> ITests;
};
slice2freeze --dict TestMap,int,::IIceTest::ITest TestMap TestMap.ice
new ice: (use enum TypeEnum instead to string for member type)
transform.xmlmodule IIceTest
{
enum TypeEnum
{
TYPE1,
TYPE2
};
struct ITest
{
int id;
TypeEnum type;
};
sequence<ITest> ITests;
};
transform --old TestMap.ice --new NewTestMap.ice -f transform.xml testdb testfile newtestdb<transformdb>
<database key="int" value="::IIceTest::ITest">
<record>
<if test="oldvalue.type != 'type1'">
<set target="newvalue.type" value="::New::TYPE2"/>
</if>
</record>
</database>
<!-- struct ::IIceTest::ITest -->
<transform type="::IIceTest::ITest"></transform>
<!-- sequence ::IIceTest::ITests -->
<transform type="::IIceTest::ITests"></transform>
<!-- enum ::IIceTest::TypeEnum -->
<init type="::IIceTest::TypeEnum"></init>
</transformdb>
0
Comments
-
Hi,
These warnings are normal and do not indicate that the transformation failed. They are emitted during transformdb's automatic migration phase to alert you to the fact that it was unable to perform a particular conversion. You can ignore the warnings because your custom migration script is converting the field. (If you were relying solely on automatic migration, these warnings indicate that additional modifications of the new database might be necessary.)
Have you examined the new database with dumpdb? If not, you should try it; I expect you'll find that the new database looks exactly as you intended.
Regards,
Mark0 -
Ohh, yes, the data is correct.
Thank you, Mark.
Best Regard!
Paul0