package com.constellio.app.services.migrations.scripts; import com.constellio.app.entities.modules.MetadataSchemasAlterationHelper; import com.constellio.app.entities.modules.MigrationResourcesProvider; import com.constellio.app.entities.modules.MigrationScript; import com.constellio.app.services.factories.AppLayerFactory; import com.constellio.model.entities.records.wrappers.Collection; import com.constellio.model.entities.security.global.SolrUserCredential; import com.constellio.model.services.schemas.builders.MetadataSchemaBuilder; import com.constellio.model.services.schemas.builders.MetadataSchemaTypesBuilder; import com.constellio.model.services.schemas.builders.MetadataSchemaTypesBuilderRuntimeException; public class CoreMigrationTo_6_4_1 implements MigrationScript { @Override public String getVersion() { return "6.4.1"; } @Override public void migrate(String collection, MigrationResourcesProvider migrationResourcesProvider, AppLayerFactory appLayerFactory) { if (collection.equals(Collection.SYSTEM_COLLECTION)) { new CoreSchemaAlterationFor6_4_1(collection, migrationResourcesProvider, appLayerFactory).migrate(); } } class CoreSchemaAlterationFor6_4_1 extends MetadataSchemasAlterationHelper { protected CoreSchemaAlterationFor6_4_1(String collection, MigrationResourcesProvider migrationResourcesProvider, AppLayerFactory appLayerFactory) { super(collection, migrationResourcesProvider, appLayerFactory); } @Override protected void migrate(MetadataSchemaTypesBuilder typesBuilder) { nonUniqueEmailMetadata(typesBuilder); } private void nonUniqueEmailMetadata(MetadataSchemaTypesBuilder typesBuilder) { try { MetadataSchemaBuilder userCredential = typesBuilder .getSchema(SolrUserCredential.DEFAULT_SCHEMA); userCredential.getMetadata(SolrUserCredential.EMAIL).setUniqueValue(false); } catch (MetadataSchemaTypesBuilderRuntimeException.NoSuchSchemaType e) { //OK } } } }