public function createMigrationTable( )
    {
        if ( empty( $this->migrationTable ) )
        {
            throw new RawException( 'Migration table name must be set' );
        }
        
        $result = NULL;
        
        $table = array(
            'migration_id'           => 'INTEGER(11) PRIMARY KEY AUTO_INCREMENT NOT NULL',
            'migration_name'         => 'VARCHAR(128) NOT NULL',
            'migration_date_applied' => 'BIGINT(20) NOT NULL',
        );
        
        if ( TRUE === $this->db->createTable( $this->migrationTable, $table ) )
        {
            $result = $this->db->addIndex( $this->migrationTable, array( 'migration_name' ) );
        }
        
        $this->doAction( self::ON_CREATE_MIGRATION_TABLE_ACTION );
        
        return $result;
    }