Hi Openbravo developers,
I was just trying to add a new column named "ATTRSETVALUETYPE" to the
"M_PRODUCT" table with an onCreateDefault value and a check constraint (see
patch attached):
- <column name="ATTRSETVALUETYPE" primaryKey="false" required="false"
type="VARCHAR" size="60" autoIncrement="false">
<default/>
<onCreateDefault><![CDATA[CASE WHEN M_ATTRIBUTESETINSTANCE_ID IS
NOT NULL THEN 'D' ELSE NULL END]]></onCreateDefault>
</column>
- <check
name="M_PRODUCT_ATSETVALTYPE_CHK"><![CDATA[(M_ATTRIBUTESETINSTANCE_ID IS
NULL) OR (ATTRSETVALUETYPE IS NOT NULL)]]></check>
The column is created but neither the onCreateDefault value nor the check
constraint are applied when I update.database. The check constraint fails
with error of constraint violation (since the onCreateDefault has not been
applied properly).
Surprisingly, if I start from scratch again (removing "ATTRSETVALUETYPE"
column from the database), remove the check constraint from the
M_PRODUCT.XML table file and run update.database, the onCreateDefault value
is properly applied. I add then the check constraint to the M_PRODUCT.XML
table file and run update.database again and the check constraint is now
properly applied.
Can someone explain this behaviour of dbSourceManager?
Thanks.
diff -r a59f8a6a5fb6 src-db/database/model/tables/M_PRODUCT.xml
--- a/src-db/database/model/tables/M_PRODUCT.xml Thu Jan 21 12:10:49 2010 +0100
+++ b/src-db/database/model/tables/M_PRODUCT.xml Tue Feb 02 23:42:10 2010 +0100
@@ -277,6 +277,10 @@
<default/>
<onCreateDefault/>
</column>
+ <column name="ATTRSETVALUETYPE" primaryKey="false" required="false" type="VARCHAR" size="60" autoIncrement="false">
+ <default/>
+ <onCreateDefault><![CDATA[CASE WHEN M_ATTRIBUTESETINSTANCE_ID IS NOT NULL THEN 'D' ELSE NULL END]]></onCreateDefault>
+ </column>
<foreign-key foreignTable="AD_ORG" name="AD_ORG_MPRODUCT">
<reference local="AD_ORG_ID" foreign="AD_ORG_ID"/>
</foreign-key>
@@ -350,6 +354,7 @@
<unique-column name="AD_CLIENT_ID"/>
<unique-column name="VALUE"/>
</unique>
+ <check name="M_PRODUCT_ATSETVALTYPE_CHK"><![CDATA[(M_ATTRIBUTESETINSTANCE_ID IS NULL) OR (ATTRSETVALUETYPE IS NOT NULL)]]></check>
<check name="M_PRODUCT_DISCONTINUED_CHECK"><![CDATA[DISCONTINUED IN ('Y', 'N')]]></check>
<check name="M_PRODUCT_ENFORCE_ATTRIBUT_CHK"><![CDATA[ENFORCE_ATTRIBUTE IN ('Y', 'N')]]></check>
<check name="M_PRODUCT_ISACTIVE_CHECK"><![CDATA[ISACTIVE IN ('Y', 'N')]]></check>
------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Openbravo-development mailing list
Openbravo-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbravo-development