I'm trying to add a new field to groups and a new relationship to a new directory/schema for a MySQL Nuxeo schema, but the new column is never added to the MySql table. I've tried dropping the schema and going through the wizard and now the groups, user2group and group2Queue table are not created. The only error I get on startup is
ERROR [org.nuxeo.runtime.model.impl.RegistrationInfoImpl] Component notification of application started failed.
java.lang.RuntimeException: Invalid primitive type: org.nuxeo.ecm.core.schema.types.ListTypeImpl. When I try and login, I receeive: ERROR [org.nuxeo.ecm.platform.usermanager.UserService] Error fetching UserManager: no directory registered with name 'userDirectory' org.nuxeo.ecm.directory.DirectoryException: no directory registered with name 'userDirectory'
I have my includes and overrides, but the column and now the tables are not being created. Here is the snippets of code.
groups.xsd
xmlns:nxs="http://www.nuxeo.org/ecm/schemas/group">
<xs:include schemaLocation="base.xsd" />
<xs:element name="groupname" type="xs:string" />
<xs:element name="grouplabel" type="xs:string" />
<xs:element name="description" type="xs:string" />
<xs:element name="modeAccess" type="xs:string" />
<xs:element name="members" type="nxs:stringList" />
<xs:element name="subGroups" type="nxs:stringList" />
<xs:element name="priorityQueues" type="nxs:stringList" />
<xs:element name="parentGroups" type="nxs:stringList" />
directory-schema-contrib.xml
<require>org.nuxeo.ecm.directory.types</require>
<extension target="org.nuxeo.ecm.core.schema.TypeService" point="schema">
<schema name="group" override="true" src="schemas/group.xsd" />
</extension>
<require>org.nuxeo.ecm.directory.sql.storage</require>
<extension target="org.nuxeo.ecm.directory.sql.SQLDirectoryFactory" point="directories">
<directory name="queueDirectory">
<schema>Queue</schema>
<dataSource>jdbc/nxsqldirectory</dataSource>
<table>queue</table>
<idField>queueId</idField>
<createTablePolicy>never</createTablePolicy>
<references>
<inverseReference field="groupsInQueue" directory="groupDirectory"
dualReferenceField="priorityQueues" />
</references>
</directory>
<directory name="groupDirectory">
<schema>group</schema>
<dataSource>jdbc/nxsqldirectory</dataSource>
<table>groups</table>
<idField>groupname</idField>
<autoincrementIdField>false</autoincrementIdField>
<dataFile>/datafiles/groups.csv</dataFile>
<createTablePolicy>on_missing_columns</createTablePolicy>
<cacheTimeout>360</cacheTimeout>
<cacheMaxSize>1000</cacheMaxSize>
<references>
<tableReference field="members" directory="userDirectory"
table="user2group" sourceColumn="groupId" targetColumn="userId"
schema="user2group" dataFile="/datafiles/user2group.csv" />
<tableReference field="subGroups" directory="groupDirectory"
table="group2group" sourceColumn="parentGroupId" targetColumn="childGroupId"
schema="group2group" />
<tableReference field="priorityQueues" directory="queueDirectory"
table="queue2group" sourceColumn="groupId" targetColumn="queueId"
schema="queue2group" dataFile="/datafiles/queue2group.csv" />
<inverseReference field="parentGroups" directory="groupDirectory"
dualReferenceField="subGroups" />
</references>
</directory>
</extension>
The Queue table was created by Studio with queueId as a string and groups as a stringList. The csv files were created with appropriate columns and defaults. And the directory-schema-contrib.xml was included in the MANIFEST.****. I've tried changing the datasource for the directories to java:/nxsqldirectory since I have seen examples with that also.. Can you override the groups schema/directory without having to override the users? What is missing since I have everything according to your documentations and examples?