Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


versioncomment
2021/11/7Added this table
2017/09/25Misc changes
2014/01/07Added backfilling
2013/06/03New migration method
2012/08/02Created

Table of Contents

Introduction

...

Code Block
    <bean id="migatableTableDAO" class="org.sagebionetworks.repo.model.dbo.migration.MigatableTableDAOImpl" init-method="initialize">
        <property name="maxAllowedPacketBytes" ref="stackConfiguration.migrationMaxAllowedPacketBytes"/>
        <property name="databaseObjectRegister">
            <list>
                <bean class="org.sagebionetworks.repo.model.dbo.persistence.DBOUserGroup" />
                <bean class="org.sagebionetworks.repo.model.dbo.persistence.DBOUserProfile" />
                <bean class="org.sagebionetworks.repo.model.dbo.persistence.DBOFileHandle" />
                <bean class="org.sagebionetworks.repo.model.dbo.persistence.DBOWikiPage" />
                <bean class="org.sagebionetworks.repo.model.dbo.persistence.DBOWikiOwner" />
                <bean class="org.sagebionetworks.repo.model.dbo.persistence.DBOActivity" />
                <bean class="org.sagebionetworks.repo.model.dbo.persistence.DBONode" />
                <bean class="org.sagebionetworks.evaluation.dbo.EvaluationDBO" />
                <bean class="org.sagebionetworks.evaluation.dbo.ParticipantDBO" />
                <bean class="org.sagebionetworks.evaluation.dbo.SubmissionDBO" />
                <bean class="org.sagebionetworks.evaluation.dbo.SubmissionStatusDBO" />
                <bean class="org.sagebionetworks.repo.model.dbo.persistence.DBOAccessRequirement" />
                <bean class="org.sagebionetworks.repo.model.dbo.persistence.DBOAccessApproval" />
                <bean class="org.sagebionetworks.repo.model.dbo.persistence.DBOFavorite" />
                <bean class="org.sagebionetworks.repo.model.dbo.persistence.DBOTrashedEntity" />
                <bean class="org.sagebionetworks.repo.model.dbo.persistence.DBODoi" />
                <bean class="org.sagebionetworks.repo.model.dbo.persistence.DBOChange" />
            </list>
        </property>
    </bean>

...


Moving from One Table to Another

...

Code Block
    <bean id="migrationManager" class="org.sagebionetworks.repo.manager.migration.MigrationManagerImpl" scope="singleton">
        <property name="backupBatchMax"
            ref="stackConfiguration.migrationBackupBatchMax" />
        <property name="migrationListeners">
            <list>
                <bean class="org.sagebionetworks.repo.manager.migration.PrincipalMigrationListenerImpl"/>
            </list>
        </property>
    </bean>

...


In the above example, a Spring bean is registered with the MigrationManager.  This allows the PrincipalMigrationListenerImpl to "listen" to all migration events.  In this example, when USERGROUP changes occurred, the "name" was copied to the PRINCIPAL_ALIAS table.  This allowed us to move the "name" field from one table to another.

...