Class IndexMigrator


  • public class IndexMigrator
    extends Object
    Handles the migration of indexes.
    Author:
    harald
    • Constructor Detail

      • IndexMigrator

        public IndexMigrator​(Entity entity,
                             Index index,
                             Backend backend,
                             IndexMetaData indexMetaData)
        Creates a migrator.
        Parameters:
        entity - the entity
        index - the index to migrate, null if no such index in model
        backend - the backend
        indexMetaData - the foreign meta data, null if key does not exist
    • Method Detail

      • getBackend

        public Backend getBackend()
        Gets the backend.
        Returns:
        the backend
      • getIndex

        public Index getIndex()
        Gets the index to migrate.
        Returns:
        the index, null if no such index in model
      • getIndexMetaData

        public IndexMetaData getIndexMetaData()
        Gets the index metadata.
        Returns:
        the meta date, null if no such index in database
      • migrate

        public IndexMigrator.Result migrate()
        Migrates the index.
        Returns:
        the SQL code, empty string if nothing to migrate
      • isLogicallyDifferent

        public static boolean isLogicallyDifferent​(Index modelIndex,
                                                   IndexMetaData dbIndex,
                                                   StringBuilder commentBuf)
        Compares an model index with an existing database index.
        Parameters:
        modelIndex - the index as defined in the model
        dbIndex - the index existing in the database
        commentBuf - comment buffer to show the difference, null if none
        Returns:
        true if they are different, false if logically equal