
# revision identifiers, used by Alembic.
revision = '003'
down_revision = '002'

from alembic import op
import sqlalchemy as sa


def upgrade():
    op.add_column(
        'cron_triggers_v2',
        sa.Column('first_execution_time', sa.DateTime(), nullable=True)
    )
    op.drop_index('workflow_input_hash', table_name='cron_triggers_v2')
    op.drop_index('workflow_input_hash_2', table_name='cron_triggers_v2')
    op.create_unique_constraint(
        None,
        'cron_triggers_v2', [
            'workflow_input_hash', 'workflow_name', 'pattern',
            'project_id', 'workflow_params_hash', 'remaining_executions',
            'first_execution_time'
        ]
    )


# revision identifiers, used by Alembic.
revision = '003'
down_revision = '002'

from alembic import op
import sqlalchemy as sa


def upgrade():
    op.add_column(
        'cron_triggers_v2',
        sa.Column('first_execution_time', sa.DateTime(), nullable=True)
    )

    op.create_unique_constraint(
        None,
        'cron_triggers_v2', [
            'workflow_input_hash', 'workflow_name', 'pattern',
            'project_id', 'workflow_params_hash', 'remaining_executions',
            'first_execution_time'
        ]
    )

Fix database upgrade from a new database
Fix database upgrade from a new database

This fixes the problem where running "mistral-db-manage upgrade heads" on a
new database result in error with workflow_input_hash index does not exist.

Change-Id: I560b2b78d11cd3fd4ae9c8606e4336e87b22ef27
Closes-Bug: #1519929

  
  # revision identifiers, used by Alembic.
  revision = '003'
  down_revision = '002'
  
  from alembic import op
  import sqlalchemy as sa
  
  
  def upgrade():
      op.add_column(
          'cron_triggers_v2',
          sa.Column('first_execution_time', sa.DateTime(), nullable=True)
      )
+ 
-     op.drop_index('workflow_input_hash', table_name='cron_triggers_v2')
-     op.drop_index('workflow_input_hash_2', table_name='cron_triggers_v2')
      op.create_unique_constraint(
          None,
          'cron_triggers_v2', [
              'workflow_input_hash', 'workflow_name', 'pattern',
              'project_id', 'workflow_params_hash', 'remaining_executions',
              'first_execution_time'
          ]
      )
  
Fix database upgrade from a new database
## Code Before:

# revision identifiers, used by Alembic.
revision = '003'
down_revision = '002'

from alembic import op
import sqlalchemy as sa


def upgrade():
    op.add_column(
        'cron_triggers_v2',
        sa.Column('first_execution_time', sa.DateTime(), nullable=True)
    )
    op.drop_index('workflow_input_hash', table_name='cron_triggers_v2')
    op.drop_index('workflow_input_hash_2', table_name='cron_triggers_v2')
    op.create_unique_constraint(
        None,
        'cron_triggers_v2', [
            'workflow_input_hash', 'workflow_name', 'pattern',
            'project_id', 'workflow_params_hash', 'remaining_executions',
            'first_execution_time'
        ]
    )

## Instruction:
Fix database upgrade from a new database
## Code After:

# revision identifiers, used by Alembic.
revision = '003'
down_revision = '002'

from alembic import op
import sqlalchemy as sa


def upgrade():
    op.add_column(
        'cron_triggers_v2',
        sa.Column('first_execution_time', sa.DateTime(), nullable=True)
    )

    op.create_unique_constraint(
        None,
        'cron_triggers_v2', [
            'workflow_input_hash', 'workflow_name', 'pattern',
            'project_id', 'workflow_params_hash', 'remaining_executions',
            'first_execution_time'
        ]
    )
