def upgrade(active_plugins=None, options=None):

    op.alter_column('vnf_lcm_filters', 'subscription_uuid',
        type_=types.Uuid(length=36), existing_type=sa.String(length=255),
        nullable=False)

    sta_str = "json_unquote(json_extract('filter','$.operationTypes'))"
    op.add_column(
        'vnf_lcm_filters',
        sa.Column('operation_types',
                  sa.LargeBinary(length=65536),
                  sa.Computed(sta_str)))

    op.add_column(
        'vnf_lcm_filters',
        sa.Column('operation_types_len',
                  sa.Integer,
                  sa.Computed("ifnull(json_length('operation_types'),0)")))

    op.drop_column('vnf_lcm_filters', 'operation_states')
    op.drop_column('vnf_lcm_filters', 'operation_states_len')

    op.alter_column('vnf_lcm_op_occs', 'operation_state',
       type_=sa.String(length=16), existing_type=sa.String(length=255))

    op.alter_column('vnf_lcm_op_occs', 'operation',
        type_=sa.String(length=16),existing_type=sa.String(length=255))

    op.add_column('vnf_lcm_op_occs',
        sa.Column('is_cancel_pending', sa.Boolean, nullable=False)),

    op.add_column('vnf_lcm_op_occs',
        sa.Column('resource_changes', sa.JSON(), nullable=True))

    op.add_column('vnf_lcm_op_occs',
        sa.Column('error_point', sa.Integer, nullable=True))

    op.add_column('vnf_lcm_op_occs',
        sa.Column('changed_info', sa.JSON(), nullable=True))

    op.add_column('vnf_lcm_op_occs',
        sa.Column('created_at', sa.DateTime(), nullable=False))

    op.add_column('vnf_lcm_op_occs',
        sa.Column('updated_at', sa.DateTime(), nullable=True))

    op.add_column('vnf_lcm_op_occs',
        sa.Column('deleted_at', sa.DateTime(), nullable=True))

    pass
예제 #2
0
    def test_remove_computed_column(self):
        m1 = MetaData()
        m2 = MetaData()

        Table(
            "user",
            m1,
            Column("id", Integer, primary_key=True),
            Column("foo", Integer, sa.Computed("5")),
        )

        Table("user", m2, Column("id", Integer, primary_key=True))

        diffs = self._fixture(m1, m2)

        eq_(diffs[0][0], "remove_column")
        eq_(diffs[0][2], "user")
        c = diffs[0][3]
        eq_(c.name, "foo")

        if config.requirements.computed_reflects_normally.enabled:
            is_true(isinstance(c.computed, sa.Computed))
        else:
            is_(c.computed, None)

        if config.requirements.computed_reflects_as_server_default.enabled:
            is_true(isinstance(c.server_default, sa.DefaultClause))
            eq_(str(c.server_default.arg.text), "5")
        elif config.requirements.computed_reflects_normally.enabled:
            is_true(isinstance(c.computed, sa.Computed))
        else:
            is_(c.computed, None)
예제 #3
0
def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.add_column(
        'skill',
        sa.Column('__ts_vector__',
                  lsgraph.models._shared.TSVECTOR(),
                  sa.Computed("to_tsvector('english', name)", persisted=True),
                  nullable=True))
    op.create_index('ix_skill_name__ts_vector__',
                    'skill', ['__ts_vector__'],
                    unique=False,
                    postgresql_using='gin')
예제 #4
0
def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.add_column(
        'lecture',
        sa.Column('__ts_vector__',
                  models.TSVector(),
                  sa.Computed(u"to_tsvector('english', text)", persisted=True),
                  nullable=True))
    op.create_index('ix_lecture___ts_vector__',
                    'lecture', ['__ts_vector__'],
                    unique=False,
                    postgresql_using='gin')
def upgrade():
    op.add_column('content_items', sa.Column('search_tsv', postgresql.TSVECTOR(), sa.Computed("""
        setweight(to_tsvector('german',
            coalesce(content_items.name, '') || ' ' ||
            coalesce(content_items.title, '')),
        'A') ||
        setweight(to_tsvector('german',
            coalesce(content_items.body, '')),
        'B')
    """), nullable=True))
    op.add_column('laws', sa.Column('search_tsv', postgresql.TSVECTOR(), sa.Computed("""
        setweight(to_tsvector('german',
            coalesce(laws.title_long, '') || ' ' ||
            coalesce(laws.title_short, '') || ' ' ||
            coalesce(laws.abbreviation, '')),
        'A') ||
        setweight(to_tsvector('german',
            coalesce(laws.notes_body, '')),
        'B')
    """), nullable=True))
    op.create_index('ix_content_items_search_tsv', 'content_items', ['search_tsv'], unique=False, postgresql_using='gin')
    op.create_index('ix_laws_search_tsv', 'laws', ['search_tsv'], unique=False, postgresql_using='gin')
예제 #6
0
    def test_remove_computed_default_on_computed(self):
        """Asserts the current behavior which is that on PG and Oracle,
        the GENERATED ALWAYS AS is reflected as a server default which we can't
        tell is actually "computed", so these come out as a modification to
        the server default.

        """
        m1 = MetaData()
        m2 = MetaData()

        Table(
            "user",
            m1,
            Column("id", Integer, primary_key=True),
            Column("bar", Integer),
            Column("foo", Integer, sa.Computed("bar + 42")),
        )

        Table(
            "user",
            m2,
            Column("id", Integer, primary_key=True),
            Column("bar", Integer),
            Column("foo", Integer),
        )

        diffs = self._fixture(m1, m2)

        eq_(diffs[0][0][0], "modify_default")
        eq_(diffs[0][0][2], "user")
        eq_(diffs[0][0][3], "foo")
        old = diffs[0][0][-2]
        new = diffs[0][0][-1]

        is_(new, None)
        is_true(isinstance(old, sa.DefaultClause))

        if exclusions.against(config, "postgresql"):
            eq_(str(old.arg.text), "(bar + 42)")
        elif exclusions.against(config, "oracle"):
            eq_(str(old.arg.text), '"BAR"+42')
예제 #7
0
    def test_add_computed_column(self):
        m1 = MetaData()
        m2 = MetaData()

        Table("user", m1, Column("id", Integer, primary_key=True))

        Table(
            "user",
            m2,
            Column("id", Integer, primary_key=True),
            Column("foo", Integer, sa.Computed("5")),
        )

        diffs = self._fixture(m1, m2)

        eq_(diffs[0][0], "add_column")
        eq_(diffs[0][2], "user")
        eq_(diffs[0][3].name, "foo")
        c = diffs[0][3].computed

        is_true(isinstance(c, sa.Computed))
        is_(c.persisted, None)
        eq_(str(c.sqltext), "5")
def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_table(
        'account_type',
        sa.Column('account_type_id', sa.Integer(), nullable=False),
        sa.Column('account_type_name', sa.String(length=128), nullable=False),
        sa.Column('account_type_description',
                  sa.String(length=256),
                  nullable=False),
        sa.Column('date_added',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True), sa.PrimaryKeyConstraint('account_type_id'))
    op.create_table(
        'action_type', sa.Column('action_type_id',
                                 sa.Integer(),
                                 nullable=False),
        sa.Column('action_type_name', sa.String(length=64), nullable=False),
        sa.Column('action_type_description',
                  sa.String(length=512),
                  nullable=False),
        sa.Column('date_added',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True), sa.PrimaryKeyConstraint('action_type_id'))
    op.create_table(
        'contact_source_type',
        sa.Column('contact_source_type_id', sa.Integer(), nullable=False),
        sa.Column('contact_source_type_name',
                  sa.String(length=128),
                  nullable=False),
        sa.Column('contact_source_type_description',
                  sa.String(length=256),
                  nullable=False),
        sa.Column('date_added',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.PrimaryKeyConstraint('contact_source_type_id'))
    op.create_table(
        'cookie_type', sa.Column('cookie_type_id',
                                 sa.Integer(),
                                 nullable=False),
        sa.Column('cookie_type_name', sa.String(length=128), nullable=False),
        sa.Column('cookie_type_description',
                  sa.String(length=256),
                  nullable=True),
        sa.Column('cookie_type_website_url',
                  sa.String(length=512),
                  nullable=True),
        sa.Column('date_added',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True), sa.PrimaryKeyConstraint('cookie_type_id'))
    op.create_table(
        'email_server',
        sa.Column('email_server_id', sa.String(length=36), nullable=False),
        sa.Column('email_server_name', sa.String(length=64), nullable=False),
        sa.Column('smtp_address', sa.String(length=64), nullable=False),
        sa.Column('smtp_tls_port', sa.Integer(), nullable=False),
        sa.Column('smtp_ssl_port', sa.Integer(), nullable=False),
        sa.Column('imap_address', sa.String(length=64), nullable=False),
        sa.Column('imap_ssl_port', sa.Integer(), nullable=False),
        sa.Column('date_added',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True), sa.PrimaryKeyConstraint('email_server_id'))
    op.create_table(
        'janium_campaign_step_type',
        sa.Column('janium_campaign_step_type_id', sa.Integer(),
                  nullable=False),
        sa.Column('janium_campaign_step_type_name',
                  sa.String(length=64),
                  nullable=False),
        sa.Column('janium_campaign_step_type_description',
                  sa.String(length=512),
                  nullable=False),
        sa.Column('date_added',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.PrimaryKeyConstraint('janium_campaign_step_type_id'))
    op.create_table(
        'time_zone',
        sa.Column('time_zone_id', sa.String(length=36), nullable=False),
        sa.Column('time_zone_name', sa.String(length=64), nullable=False),
        sa.Column('time_zone_code', sa.String(length=16), nullable=False),
        sa.Column('date_added',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True), sa.PrimaryKeyConstraint('time_zone_id'))
    op.create_table(
        'user', sa.Column('user_id', sa.String(length=36), nullable=False),
        sa.Column('first_name', sa.String(length=126), nullable=False),
        sa.Column('last_name', sa.String(length=126), nullable=False),
        sa.Column('full_name',
                  sa.String(length=256),
                  sa.Computed("CONCAT(first_name, ' ', last_name)", ),
                  nullable=True),
        sa.Column('title', sa.String(length=256), nullable=True),
        sa.Column('company', sa.String(length=256), nullable=True),
        sa.Column('location', sa.String(length=256), nullable=True),
        sa.Column('primary_email', sa.String(length=256), nullable=False),
        sa.Column('phone', sa.String(length=256), nullable=True),
        sa.Column('additional_contact_info', sa.JSON(), nullable=True),
        sa.Column('asOfStartTime',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('asOfEndTime',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('updated_by', sa.String(length=36), nullable=False),
        sa.ForeignKeyConstraint(
            ['updated_by'],
            ['user.user_id'],
        ), sa.PrimaryKeyConstraint('user_id'))
    op.create_table(
        'cookie', sa.Column('cookie_id', sa.String(length=36), nullable=False),
        sa.Column('cookie_type_id', sa.Integer(), nullable=True),
        sa.Column('cookie_json_value', sa.JSON(), nullable=False),
        sa.Column('asOfStartTime',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('asOfEndTime',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('effective_start_date',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('effective_end_date',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('updated_by', sa.String(length=36), nullable=False),
        sa.ForeignKeyConstraint(
            ['cookie_type_id'],
            ['cookie_type.cookie_type_id'],
        ), sa.ForeignKeyConstraint(
            ['updated_by'],
            ['user.user_id'],
        ), sa.PrimaryKeyConstraint('cookie_id'))
    op.create_table(
        'credentials',
        sa.Column('credentials_id', sa.String(length=36), nullable=False),
        sa.Column('username', sa.String(length=128), nullable=True),
        sa.Column('password', sa.String(length=128), nullable=True),
        sa.Column('asOfStartTime',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('asOfEndTime',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('updated_by', sa.String(length=36), nullable=False),
        sa.ForeignKeyConstraint(
            ['updated_by'],
            ['user.user_id'],
        ), sa.PrimaryKeyConstraint('credentials_id'))
    op.create_table(
        'dte', sa.Column('dte_id', sa.String(length=36), nullable=False),
        sa.Column('dte_name', sa.String(length=128), nullable=False),
        sa.Column('dte_description', sa.String(length=256), nullable=True),
        sa.Column('dte_subject', sa.String(length=512), nullable=False),
        sa.Column('dte_body', sa.Text(), nullable=False),
        sa.Column('asOfStartTime',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('asOfEndTime',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('updated_by', sa.String(length=36), nullable=False),
        sa.ForeignKeyConstraint(
            ['updated_by'],
            ['user.user_id'],
        ), sa.PrimaryKeyConstraint('dte_id'))
    op.create_table(
        'login_credential',
        sa.Column('login_credential_id', sa.String(length=36), nullable=False),
        sa.Column('user_id', sa.String(length=36), nullable=False),
        sa.Column('login_credential', sa.String(length=45), nullable=False),
        sa.Column('asOfStartTime',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('asOfEndTime',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('updated_by', sa.String(length=36), nullable=False),
        sa.ForeignKeyConstraint(
            ['updated_by'],
            ['user.user_id'],
        ), sa.ForeignKeyConstraint(
            ['user_id'],
            ['user.user_id'],
        ), sa.PrimaryKeyConstraint('login_credential_id'))
    op.create_table(
        'permission',
        sa.Column('permission_id', sa.String(length=36), nullable=False),
        sa.Column('permission_name', sa.String(length=64), nullable=False),
        sa.Column('permission_description',
                  sa.String(length=512),
                  nullable=False),
        sa.Column('asOfStartTime',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('asOfEndTime',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('updated_by', sa.String(length=36), nullable=False),
        sa.ForeignKeyConstraint(
            ['updated_by'],
            ['user.user_id'],
        ), sa.PrimaryKeyConstraint('permission_id'))
    op.create_table(
        'email_config',
        sa.Column('email_config_id', sa.String(length=36), nullable=False),
        sa.Column('credentials_id', sa.String(length=36), nullable=True),
        sa.Column('email_server_id', sa.String(length=36), nullable=True),
        sa.Column('from_full_name', sa.String(length=64), nullable=False),
        sa.Column('reply_to_address', sa.String(length=64), nullable=False),
        sa.Column('is_sendgrid',
                  sa.Boolean(),
                  server_default=sa.text('false'),
                  nullable=False),
        sa.Column('sendgrid_sender_id', sa.String(length=36), nullable=True),
        sa.Column('is_email_forward',
                  sa.Boolean(),
                  server_default=sa.text('false'),
                  nullable=False),
        sa.Column('asOfStartTime',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('asOfEndTime',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('updated_by', sa.String(length=36), nullable=False),
        sa.ForeignKeyConstraint(
            ['credentials_id'],
            ['credentials.credentials_id'],
        ),
        sa.ForeignKeyConstraint(
            ['email_server_id'],
            ['email_server.email_server_id'],
        ), sa.ForeignKeyConstraint(
            ['updated_by'],
            ['user.user_id'],
        ), sa.PrimaryKeyConstraint('email_config_id'))
    op.create_table(
        'permission_hierarchy',
        sa.Column('permission_hierarchy_id',
                  sa.String(length=36),
                  nullable=False),
        sa.Column('parent_permission_id', sa.String(length=36),
                  nullable=False),
        sa.Column('child_permission_id', sa.String(length=36), nullable=False),
        sa.Column('asOfStartTime',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('asOfEndTime',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('updated_by', sa.String(length=36), nullable=False),
        sa.ForeignKeyConstraint(
            ['child_permission_id'],
            ['permission.permission_id'],
        ),
        sa.ForeignKeyConstraint(
            ['parent_permission_id'],
            ['permission.permission_id'],
        ), sa.ForeignKeyConstraint(
            ['updated_by'],
            ['user.user_id'],
        ), sa.PrimaryKeyConstraint('permission_hierarchy_id'))
    op.create_table(
        'user_permission_map',
        sa.Column('user_id', sa.String(length=36), nullable=False),
        sa.Column('permission_id', sa.String(length=36), nullable=False),
        sa.Column('asOfStartTime',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('asOfEndTime',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('updated_by', sa.String(length=36), nullable=False),
        sa.ForeignKeyConstraint(
            ['permission_id'],
            ['permission.permission_id'],
        ), sa.ForeignKeyConstraint(
            ['updated_by'],
            ['user.user_id'],
        ), sa.ForeignKeyConstraint(
            ['user_id'],
            ['user.user_id'],
        ), sa.PrimaryKeyConstraint('user_id', 'permission_id'))
    op.create_table(
        'dte_sender',
        sa.Column('dte_sender_id', sa.String(length=36), nullable=False),
        sa.Column('user_id', sa.String(length=36), nullable=False),
        sa.Column('email_config_id', sa.String(length=36), nullable=False),
        sa.Column('date_added',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.ForeignKeyConstraint(
            ['email_config_id'],
            ['email_config.email_config_id'],
        ), sa.ForeignKeyConstraint(
            ['user_id'],
            ['user.user_id'],
        ), sa.PrimaryKeyConstraint('dte_sender_id'))
    op.create_table(
        'account_group',
        sa.Column('account_group_id', sa.String(length=36), nullable=False),
        sa.Column('account_group_manager_id',
                  sa.String(length=36),
                  nullable=False),
        sa.Column('dte_id', sa.String(length=36), nullable=True),
        sa.Column('dte_sender_id', sa.String(length=36), nullable=False),
        sa.Column('account_group_name', sa.String(length=128), nullable=False),
        sa.Column('account_group_description',
                  sa.String(length=256),
                  nullable=True),
        sa.Column('asOfStartTime',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('asOfEndTime',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('effective_start_date',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('effective_end_date',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('updated_by', sa.String(length=36), nullable=False),
        sa.ForeignKeyConstraint(
            ['account_group_manager_id'],
            ['user.user_id'],
        ), sa.ForeignKeyConstraint(
            ['dte_id'],
            ['dte.dte_id'],
        ),
        sa.ForeignKeyConstraint(
            ['dte_sender_id'],
            ['dte_sender.dte_sender_id'],
        ), sa.ForeignKeyConstraint(
            ['updated_by'],
            ['user.user_id'],
        ), sa.PrimaryKeyConstraint('account_group_id'))
    op.create_table(
        'account', sa.Column('account_id',
                             sa.String(length=36),
                             nullable=False),
        sa.Column('account_type_id', sa.Integer(), nullable=False),
        sa.Column('account_group_id', sa.String(length=36), nullable=False),
        sa.Column('email_config_id', sa.String(length=36), nullable=False),
        sa.Column('time_zone_id', sa.String(length=36), nullable=False),
        sa.Column('is_sending_emails',
                  sa.Boolean(),
                  server_default=sa.text('false'),
                  nullable=False),
        sa.Column('is_sending_li_messages',
                  sa.Boolean(),
                  server_default=sa.text('false'),
                  nullable=False),
        sa.Column('is_receiving_dte',
                  sa.Boolean(),
                  server_default=sa.text('false'),
                  nullable=False),
        sa.Column('asOfStartTime',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('asOfEndTime',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('effective_start_date',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('effective_end_date',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('data_enrichment_start_date',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('data_enrichment_end_date',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('updated_by', sa.String(length=36), nullable=False),
        sa.ForeignKeyConstraint(
            ['account_group_id'],
            ['account_group.account_group_id'],
        ),
        sa.ForeignKeyConstraint(
            ['account_type_id'],
            ['account_type.account_type_id'],
        ),
        sa.ForeignKeyConstraint(
            ['email_config_id'],
            ['email_config.email_config_id'],
        ),
        sa.ForeignKeyConstraint(
            ['time_zone_id'],
            ['time_zone.time_zone_id'],
        ), sa.ForeignKeyConstraint(
            ['updated_by'],
            ['user.user_id'],
        ), sa.PrimaryKeyConstraint('account_id'))
    op.create_table(
        'user_account_group_map',
        sa.Column('user_id', sa.String(length=36), nullable=False),
        sa.Column('account_group_id', sa.String(length=36), nullable=False),
        sa.Column('asOfStartTime',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('asOfEndTime',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('updated_by', sa.String(length=36), nullable=False),
        sa.ForeignKeyConstraint(
            ['account_group_id'],
            ['account_group.account_group_id'],
        ), sa.ForeignKeyConstraint(
            ['updated_by'],
            ['user.user_id'],
        ), sa.ForeignKeyConstraint(
            ['user_id'],
            ['user.user_id'],
        ), sa.PrimaryKeyConstraint('user_id', 'account_group_id'))
    op.create_table(
        'contact_source',
        sa.Column('contact_source_id', sa.String(length=36), nullable=False),
        sa.Column('account_id', sa.String(length=36), nullable=False),
        sa.Column('contact_source_type_id', sa.Integer(), nullable=False),
        sa.Column('contact_source_json', sa.JSON(), nullable=False),
        sa.Column('date_added',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.ForeignKeyConstraint(
            ['account_id'],
            ['account.account_id'],
        ),
        sa.ForeignKeyConstraint(
            ['contact_source_type_id'],
            ['contact_source_type.contact_source_type_id'],
        ), sa.PrimaryKeyConstraint('contact_source_id'))
    op.create_table(
        'janium_campaign',
        sa.Column('janium_campaign_id', sa.String(length=36), nullable=False),
        sa.Column('account_id', sa.String(length=36), nullable=False),
        sa.Column('email_config_id', sa.String(length=36), nullable=False),
        sa.Column('janium_campaign_name',
                  sa.String(length=512),
                  nullable=False),
        sa.Column('janium_campaign_description',
                  sa.String(length=512),
                  nullable=True),
        sa.Column('is_messenger',
                  sa.Boolean(),
                  server_default=sa.text('false'),
                  nullable=False),
        sa.Column('is_reply_in_email_thread',
                  sa.Boolean(),
                  server_default=sa.text('false'),
                  nullable=False),
        sa.Column('queue_start_time', sa.DateTime(), nullable=False),
        sa.Column('queue_end_time', sa.DateTime(), nullable=False),
        sa.Column('asOfStartTime',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('asOfEndTime',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('effective_start_date',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('effective_end_date',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('updated_by', sa.String(length=36), nullable=False),
        sa.ForeignKeyConstraint(
            ['account_id'],
            ['account.account_id'],
        ),
        sa.ForeignKeyConstraint(
            ['email_config_id'],
            ['email_config.email_config_id'],
        ), sa.ForeignKeyConstraint(
            ['updated_by'],
            ['user.user_id'],
        ), sa.PrimaryKeyConstraint('janium_campaign_id'))
    op.create_table(
        'ulinc_config',
        sa.Column('ulinc_config_id', sa.String(length=36), nullable=False),
        sa.Column('credentials_id', sa.String(length=36), nullable=False),
        sa.Column('cookie_id', sa.String(length=36), nullable=False),
        sa.Column('account_id', sa.String(length=36), nullable=False),
        sa.Column('ulinc_client_id', sa.String(length=16), nullable=False),
        sa.Column('ulinc_li_email', sa.String(length=64), nullable=False),
        sa.Column('ulinc_is_active', sa.Boolean(), nullable=False),
        sa.Column('new_connection_webhook',
                  sa.String(length=256),
                  nullable=False),
        sa.Column('new_message_webhook', sa.String(length=256),
                  nullable=False),
        sa.Column('send_message_webhook',
                  sa.String(length=256),
                  nullable=False),
        sa.Column('asOfStartTime',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('asOfEndTime',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('updated_by', sa.String(length=36), nullable=False),
        sa.ForeignKeyConstraint(
            ['account_id'],
            ['account.account_id'],
        ), sa.ForeignKeyConstraint(
            ['cookie_id'],
            ['cookie.cookie_id'],
        ),
        sa.ForeignKeyConstraint(
            ['credentials_id'],
            ['credentials.credentials_id'],
        ), sa.ForeignKeyConstraint(
            ['updated_by'],
            ['user.user_id'],
        ), sa.PrimaryKeyConstraint('ulinc_config_id'))
    op.create_table(
        'user_account_map',
        sa.Column('user_id', sa.String(length=36), nullable=False),
        sa.Column('account_id', sa.String(length=36), nullable=False),
        sa.Column('permission_id', sa.String(length=36), nullable=False),
        sa.Column('asOfStartTime',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('asOfEndTime',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('updated_by', sa.String(length=36), nullable=False),
        sa.ForeignKeyConstraint(
            ['account_id'],
            ['account.account_id'],
        ),
        sa.ForeignKeyConstraint(
            ['permission_id'],
            ['permission.permission_id'],
        ), sa.ForeignKeyConstraint(
            ['updated_by'],
            ['user.user_id'],
        ), sa.ForeignKeyConstraint(
            ['user_id'],
            ['user.user_id'],
        ), sa.PrimaryKeyConstraint('user_id', 'account_id', 'permission_id'))
    op.create_table(
        'user_proxy_map',
        sa.Column('user_id', sa.String(length=36), nullable=False),
        sa.Column('account_id', sa.String(length=36), nullable=False),
        sa.Column('asOfStartTime',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('asOfEndTime',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('updated_by', sa.String(length=36), nullable=False),
        sa.ForeignKeyConstraint(
            ['account_id'],
            ['account.account_id'],
        ), sa.ForeignKeyConstraint(
            ['updated_by'],
            ['user.user_id'],
        ), sa.ForeignKeyConstraint(
            ['user_id'],
            ['user.user_id'],
        ), sa.PrimaryKeyConstraint('user_id', 'account_id'))
    op.create_table(
        'janium_campaign_step',
        sa.Column('janium_campaign_step_id',
                  sa.String(length=36),
                  nullable=False),
        sa.Column('janium_campaign_id', sa.String(length=36), nullable=False),
        sa.Column('janium_campaign_step_type_id', sa.Integer(),
                  nullable=False),
        sa.Column('janium_campaign_step_delay', sa.Integer(), nullable=False),
        sa.Column('janium_campaign_step_body', sa.Text(), nullable=True),
        sa.Column('janium_campaign_step_subject',
                  sa.String(length=1000),
                  nullable=True),
        sa.Column('queue_start_time', sa.DateTime(), nullable=False),
        sa.Column('queue_end_time', sa.DateTime(), nullable=False),
        sa.Column('asOfStartTime',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('asOfEndTime',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('effective_start_date',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('effective_end_date',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('updated_by', sa.String(length=36), nullable=False),
        sa.ForeignKeyConstraint(
            ['janium_campaign_id'],
            ['janium_campaign.janium_campaign_id'],
        ),
        sa.ForeignKeyConstraint(
            ['janium_campaign_step_type_id'],
            ['janium_campaign_step_type.janium_campaign_step_type_id'],
        ), sa.ForeignKeyConstraint(
            ['updated_by'],
            ['user.user_id'],
        ), sa.PrimaryKeyConstraint('janium_campaign_step_id'))
    op.create_table(
        'ulinc_campaign',
        sa.Column('ulinc_campaign_id', sa.String(length=36), nullable=False),
        sa.Column('account_id', sa.String(length=36), nullable=False),
        sa.Column('ulinc_config_id', sa.String(length=36), nullable=False),
        sa.Column('janium_campaign_id', sa.String(length=36), nullable=True),
        sa.Column('ulinc_campaign_name', sa.String(length=512),
                  nullable=False),
        sa.Column('ulinc_is_active',
                  sa.Boolean(),
                  server_default=sa.text('false'),
                  nullable=False),
        sa.Column('ulinc_ulinc_campaign_id',
                  sa.String(length=16),
                  nullable=False),
        sa.Column('ulinc_is_messenger',
                  sa.Boolean(),
                  server_default=sa.text('false'),
                  nullable=False),
        sa.Column('asOfStartTime',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('asOfEndTime',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('updated_by', sa.String(length=36), nullable=False),
        sa.ForeignKeyConstraint(
            ['account_id'],
            ['account.account_id'],
        ),
        sa.ForeignKeyConstraint(
            ['janium_campaign_id'],
            ['janium_campaign.janium_campaign_id'],
        ),
        sa.ForeignKeyConstraint(
            ['ulinc_config_id'],
            ['ulinc_config.ulinc_config_id'],
        ), sa.ForeignKeyConstraint(
            ['updated_by'],
            ['user.user_id'],
        ), sa.PrimaryKeyConstraint('ulinc_campaign_id'))
    op.create_table(
        'contact', sa.Column('contact_id',
                             sa.String(length=36),
                             nullable=False),
        sa.Column('account_id', sa.String(length=36), nullable=False),
        sa.Column('janium_campaign_id', sa.String(length=36), nullable=False),
        sa.Column('ulinc_campaign_id', sa.String(length=36), nullable=False),
        sa.Column('contact_source_id', sa.String(length=36), nullable=False),
        sa.Column('ulinc_id', sa.String(length=16), nullable=False),
        sa.Column('ulinc_ulinc_campaign_id',
                  sa.String(length=16),
                  nullable=False),
        sa.Column('tib_id', sa.String(length=36), nullable=True),
        sa.Column('contact_info', sa.JSON(), nullable=False),
        sa.Column('asOfStartTime',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.Column('asOfEndTime',
                  sa.DateTime(),
                  server_default=sa.text(
                      '(DATE_ADD(UTC_TIMESTAMP, INTERVAL 5000 YEAR))'),
                  nullable=True),
        sa.Column('updated_by', sa.String(length=36), nullable=False),
        sa.ForeignKeyConstraint(
            ['account_id'],
            ['account.account_id'],
        ),
        sa.ForeignKeyConstraint(
            ['contact_source_id'],
            ['contact_source.contact_source_id'],
        ),
        sa.ForeignKeyConstraint(
            ['janium_campaign_id'],
            ['janium_campaign.janium_campaign_id'],
        ),
        sa.ForeignKeyConstraint(
            ['ulinc_campaign_id'],
            ['ulinc_campaign.ulinc_campaign_id'],
        ), sa.ForeignKeyConstraint(
            ['updated_by'],
            ['user.user_id'],
        ), sa.PrimaryKeyConstraint('contact_id'))
    op.create_table(
        'action', sa.Column('action_id', sa.String(length=36), nullable=False),
        sa.Column('contact_id', sa.String(length=36), nullable=False),
        sa.Column('action_type_id', sa.Integer(), nullable=False),
        sa.Column('action_timestamp', sa.DateTime(), nullable=True),
        sa.Column('action_message', sa.Text(), nullable=True),
        sa.Column('to_email_addr', sa.String(length=64), nullable=True),
        sa.Column('date_added',
                  sa.DateTime(),
                  server_default=sa.text('(UTC_TIMESTAMP)'),
                  nullable=True),
        sa.ForeignKeyConstraint(
            ['action_type_id'],
            ['action_type.action_type_id'],
        ), sa.ForeignKeyConstraint(
            ['contact_id'],
            ['contact.contact_id'],
        ), sa.PrimaryKeyConstraint('action_id'))
예제 #9
0
    sqlalchemy.Column("id", postgresql.UUID(as_uuid=True), nullable=False),
    sqlalchemy.Column(
        "created_at", sqlalchemy.TIMESTAMP(timezone=True), nullable=False, server_default=sqlalchemy.sql.func.now()
    ),
    sqlalchemy.Column("flags", sqlalchemy.BIGINT, nullable=False),
    sqlalchemy.Column("username", sqlalchemy.VARCHAR(validation.MAXIMUM_NAME_LENGTH), nullable=False),
    # Constraints
    sqlalchemy.PrimaryKeyConstraint("id", name="user_pk"),
    sqlalchemy.UniqueConstraint("username", name="user_username_uc"),
)


Devices = sqlalchemy.Table(
    "devices",
    metadata,
    sqlalchemy.Column("id", sqlalchemy.BIGINT, sqlalchemy.Computed(ALWAYS), nullable=False),
    sqlalchemy.Column("is_required_viewer", sqlalchemy.BOOLEAN, nullable=False),
    sqlalchemy.Column("name", sqlalchemy.VARCHAR(validation.MAXIMUM_NAME_LENGTH), nullable=False),
    sqlalchemy.Column("user_id", postgresql.UUID(as_uuid=True), nullable=False),
    # Constraints
    sqlalchemy.PrimaryKeyConstraint("id", name="device_pk"),
    sqlalchemy.ForeignKeyConstraint(["user_id"], ["users.id"], ondelete=CASCADE, name="device_user_id_fk"),
    sqlalchemy.UniqueConstraint("name", "user_id", name="device_uc"),
)

Messages = sqlalchemy.Table(
    "messages",
    metadata,
    sqlalchemy.Column("id", postgresql.UUID(as_uuid=True), nullable=False),
    sqlalchemy.Column(
        "created_at", sqlalchemy.TIMESTAMP(timezone=True), nullable=False, server_default=sqlalchemy.sql.func.now()
예제 #10
0
class AutogenerateComputedTest(AutogenFixtureTest, TestBase):
    __requires__ = ("computed_columns", )
    __backend__ = True

    def test_add_computed_column(self):
        m1 = MetaData()
        m2 = MetaData()

        Table("user", m1, Column("id", Integer, primary_key=True))

        Table(
            "user",
            m2,
            Column("id", Integer, primary_key=True),
            Column("foo", Integer, sa.Computed("5")),
        )

        diffs = self._fixture(m1, m2)

        eq_(diffs[0][0], "add_column")
        eq_(diffs[0][2], "user")
        eq_(diffs[0][3].name, "foo")
        c = diffs[0][3].computed

        is_true(isinstance(c, sa.Computed))
        is_(c.persisted, None)
        eq_(str(c.sqltext), "5")

    def test_remove_computed_column(self):
        m1 = MetaData()
        m2 = MetaData()

        Table(
            "user",
            m1,
            Column("id", Integer, primary_key=True),
            Column("foo", Integer, sa.Computed("5")),
        )

        Table("user", m2, Column("id", Integer, primary_key=True))

        diffs = self._fixture(m1, m2)

        eq_(diffs[0][0], "remove_column")
        eq_(diffs[0][2], "user")
        c = diffs[0][3]
        eq_(c.name, "foo")

        if config.requirements.computed_reflects_normally.enabled:
            is_true(isinstance(c.computed, sa.Computed))
        else:
            is_(c.computed, None)

        if config.requirements.computed_reflects_as_server_default.enabled:
            is_true(isinstance(c.server_default, sa.DefaultClause))
            eq_(str(c.server_default.arg.text), "5")
        elif config.requirements.computed_reflects_normally.enabled:
            is_true(isinstance(c.computed, sa.Computed))
        else:
            is_(c.computed, None)

    @testing.combinations(
        lambda: (None, sa.Computed("bar*5")),
        (lambda: (sa.Computed("bar*5"), None)),
        lambda: (
            sa.Computed("bar*5"),
            sa.Computed("bar * 42", persisted=True),
        ),
        lambda: (sa.Computed("bar*5"), sa.Computed("bar * 42")),
    )
    @config.requirements.computed_reflects_normally
    def test_cant_change_computed_warning(self, test_case):
        arg_before, arg_after = testing.resolve_lambda(test_case, **locals())
        m1 = MetaData()
        m2 = MetaData()

        arg_before = [] if arg_before is None else [arg_before]
        arg_after = [] if arg_after is None else [arg_after]

        Table(
            "user",
            m1,
            Column("id", Integer, primary_key=True),
            Column("bar", Integer),
            Column("foo", Integer, *arg_before),
        )

        Table(
            "user",
            m2,
            Column("id", Integer, primary_key=True),
            Column("bar", Integer),
            Column("foo", Integer, *arg_after),
        )

        with mock.patch("alembic.util.warn") as mock_warn:
            diffs = self._fixture(m1, m2)

        eq_(
            mock_warn.mock_calls,
            [mock.call("Computed default on user.foo cannot be modified")],
        )

        eq_(list(diffs), [])

    @testing.combinations(
        lambda: (None, None),
        lambda: (sa.Computed("5"), sa.Computed("5")),
        lambda: (sa.Computed("bar*5"), sa.Computed("bar*5")),
        (
            lambda: (sa.Computed("bar*5"), None),
            config.requirements.computed_doesnt_reflect_as_server_default,
        ),
    )
    def test_computed_unchanged(self, test_case):
        arg_before, arg_after = testing.resolve_lambda(test_case, **locals())
        m1 = MetaData()
        m2 = MetaData()

        arg_before = [] if arg_before is None else [arg_before]
        arg_after = [] if arg_after is None else [arg_after]

        Table(
            "user",
            m1,
            Column("id", Integer, primary_key=True),
            Column("bar", Integer),
            Column("foo", Integer, *arg_before),
        )

        Table(
            "user",
            m2,
            Column("id", Integer, primary_key=True),
            Column("bar", Integer),
            Column("foo", Integer, *arg_after),
        )

        with mock.patch("alembic.util.warn") as mock_warn:
            diffs = self._fixture(m1, m2)
        eq_(mock_warn.mock_calls, [])

        eq_(list(diffs), [])

    @config.requirements.computed_reflects_as_server_default
    def test_remove_computed_default_on_computed(self):
        """Asserts the current behavior which is that on PG and Oracle,
        the GENERATED ALWAYS AS is reflected as a server default which we can't
        tell is actually "computed", so these come out as a modification to
        the server default.

        """
        m1 = MetaData()
        m2 = MetaData()

        Table(
            "user",
            m1,
            Column("id", Integer, primary_key=True),
            Column("bar", Integer),
            Column("foo", Integer, sa.Computed("bar + 42")),
        )

        Table(
            "user",
            m2,
            Column("id", Integer, primary_key=True),
            Column("bar", Integer),
            Column("foo", Integer),
        )

        diffs = self._fixture(m1, m2)

        eq_(diffs[0][0][0], "modify_default")
        eq_(diffs[0][0][2], "user")
        eq_(diffs[0][0][3], "foo")
        old = diffs[0][0][-2]
        new = diffs[0][0][-1]

        is_(new, None)
        is_true(isinstance(old, sa.DefaultClause))

        if exclusions.against(config, "postgresql"):
            eq_(str(old.arg.text), "(bar + 42)")
        elif exclusions.against(config, "oracle"):
            eq_(str(old.arg.text), '"BAR"+42')
def upgrade(active_plugins=None, options=None):
    op.create_table('vnf_lcm_subscriptions',
                    sa.Column('id', types.Uuid(length=36), nullable=False),
                    sa.Column('callback_uri',
                              sa.String(length=255),
                              nullable=False),
                    sa.Column('subscription_authentication',
                              sa.JSON(),
                              nullable=True),
                    sa.Column('created_at', sa.DateTime(), nullable=False),
                    sa.Column('updated_at', sa.DateTime(), nullable=True),
                    sa.Column('deleted_at', sa.DateTime(), nullable=True),
                    sa.Column('deleted', Boolean, default=False),
                    sa.PrimaryKeyConstraint('id'),
                    mysql_engine='InnoDB')

    noti_str = "json_unquote(json_extract('filter','$.notificationTypes'))"
    sta_str = "json_unquote(json_extract('filter','$.operationStates'))"
    op.create_table(
        'vnf_lcm_filters',
        sa.Column('id', sa.Integer, autoincrement=True, nullable=False),
        sa.Column('subscription_uuid', sa.String(length=36), nullable=False),
        sa.Column('filter', sa.JSON(), nullable=False),
        sa.Column('notification_types', sa.LargeBinary(length=65536),
                  sa.Computed(noti_str)),
        sa.Column('notification_types_len', sa.Integer,
                  sa.Computed("ifnull(json_length('notification_types'),0)")),
        sa.Column('operation_states', sa.LargeBinary(length=65536),
                  sa.Computed(sta_str)),
        sa.Column('operation_states_len', sa.Integer,
                  sa.Computed("ifnull(json_length('operation_states'),0)")),
        sa.PrimaryKeyConstraint('id'),
        sa.ForeignKeyConstraint(
            ['subscription_uuid'],
            ['vnf_lcm_subscriptions.id'],
        ),
        mysql_engine='InnoDB')

    op.create_table('vnf_lcm_op_occs',
                    sa.Column('id', types.Uuid(length=36), nullable=False),
                    sa.Column('operation_state',
                              sa.String(length=255),
                              nullable=False),
                    sa.Column('state_entered_time',
                              sa.DateTime(),
                              nullable=False),
                    sa.Column('start_time', sa.DateTime(), nullable=False),
                    sa.Column('vnf_instance_id',
                              types.Uuid(length=36),
                              nullable=False),
                    sa.Column('operation',
                              sa.String(length=255),
                              nullable=False),
                    sa.Column('is_automatic_invocation',
                              sa.Boolean,
                              nullable=False),
                    sa.Column('operation_params', sa.JSON(), nullable=True),
                    sa.Column('error', sa.JSON(), nullable=True),
                    sa.Column('deleted', Boolean, default=False),
                    sa.PrimaryKeyConstraint('id'),
                    sa.ForeignKeyConstraint(
                        ['vnf_instance_id'],
                        ['vnf_instances.id'],
                    ),
                    mysql_engine='InnoDB')
def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.add_column('departments', sa.Column('employeesCount', sa.Integer(), sa.Computed("`attributes` ->> '$.employeesCount'", ), nullable=True))
    op.create_index(op.f('ix_departments_employeesCount'), 'departments', ['employeesCount'], unique=False)
def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_table('criticality',
                    sa.Column('id', sa.Integer(), nullable=False),
                    sa.Column('value', sa.String(length=100), nullable=False),
                    sa.PrimaryKeyConstraint('id'),
                    sa.UniqueConstraint('value')
                    )
    op.create_table('role',
                    sa.Column('id', sa.Integer(), nullable=False),
                    sa.Column('value', sa.String(length=100), nullable=False),
                    sa.PrimaryKeyConstraint('id'),
                    sa.UniqueConstraint('value')
                    )
    op.create_table('status',
                    sa.Column('id', sa.Integer(), nullable=False),
                    sa.Column('value', sa.String(length=100), nullable=False),
                    sa.PrimaryKeyConstraint('id'),
                    sa.UniqueConstraint('value')
                    )
    op.create_table('user',
                    sa.Column('id', sa.Integer(), nullable=False),
                    sa.Column('first_name', sa.String(length=30), nullable=False),
                    sa.Column('last_name', sa.String(length=30), nullable=False),
                    sa.Column('email', sa.String(length=200), nullable=False),
                    sa.Column('password', sa.Text(), nullable=False),
                    sa.Column('is_verified', sa.Boolean(), server_default=sa.text('0'), nullable=True),
                    sa.Column('created_at', sa.DateTime(), server_default=sa.text('now()'), nullable=True),
                    sa.Column('role_id', sa.Integer(), nullable=False),
                    sa.ForeignKeyConstraint(['role_id'], ['role.id'], ),
                    sa.PrimaryKeyConstraint('id'),
                    sa.UniqueConstraint('email')
                    )
    op.create_table('organisation',
                    sa.Column('id', sa.Integer(), nullable=False),
                    sa.Column('name', sa.String(length=70), nullable=False),
                    sa.Column('passcode', sa.Text(), nullable=False),
                    sa.Column('location', sa.String(length=30), nullable=False),
                    sa.Column('registered_at', sa.DateTime(), server_default=sa.text('now()'), nullable=False),
                    sa.Column('registered_by', sa.Integer(), nullable=False),
                    sa.ForeignKeyConstraint(['registered_by'], ['user.id'], ),
                    sa.PrimaryKeyConstraint('id'),
                    sa.UniqueConstraint('name')
                    )
    op.create_table('project',
                    sa.Column('id', sa.Integer(), nullable=False),
                    sa.Column('name', sa.String(length=100), nullable=False),
                    sa.Column('description', sa.String(length=255), server_default='', nullable=False),
                    sa.Column('status_id', sa.Integer(), nullable=True),
                    sa.Column('created_at', sa.DateTime(), server_default=sa.text('now()'), nullable=False),
                    sa.Column('organisation_id', sa.Integer(), nullable=True),
                    sa.Column('created_by', sa.Integer(), nullable=False),
                    sa.ForeignKeyConstraint(['created_by'], ['user.id'], ),
                    sa.ForeignKeyConstraint(['organisation_id'], ['organisation.id'], ),
                    sa.ForeignKeyConstraint(['status_id'], ['status.id'], ),
                    sa.PrimaryKeyConstraint('id'),
                    sa.UniqueConstraint('name')
                    )
    op.create_table('user_organisation',
                    sa.Column('id', sa.Integer(), nullable=False),
                    sa.Column('user_id', sa.Integer(), nullable=False),
                    sa.Column('organisation_id', sa.Integer(), nullable=False),
                    sa.ForeignKeyConstraint(['organisation_id'], ['organisation.id'], ),
                    sa.ForeignKeyConstraint(['user_id'], ['user.id'], ),
                    sa.PrimaryKeyConstraint('id')
                    )
    op.create_table('project_history',
                    sa.Column('remarks', sa.Text(), server_default=sa.text('NULL'), nullable=True),
                    sa.Column('created_at', sa.DateTime(), server_default=sa.text('now()'), nullable=False),
                    sa.Column('id', sa.Integer(), nullable=False),
                    sa.Column('project_id', sa.Integer(), nullable=False),
                    sa.Column('created_by', sa.Integer(), nullable=False),
                    sa.ForeignKeyConstraint(['created_by'], ['user.id'], ),
                    sa.ForeignKeyConstraint(['project_id'], ['project.id'], ),
                    sa.PrimaryKeyConstraint('id')
                    )
    op.create_table('task',
                    sa.Column('id', sa.Integer(), nullable=False),
                    sa.Column('name', sa.String(length=200), nullable=False),
                    sa.Column('description', sa.Text(), nullable=False),
                    sa.Column('created_at', sa.DateTime(), server_default=sa.text('now()'), nullable=False),
                    sa.Column('created_by', sa.Integer(), nullable=True),
                    sa.Column('assigned_by', sa.Integer(), nullable=True),
                    sa.Column('assigned_to', sa.Integer(), nullable=True),
                    sa.Column('reviewed_by', sa.Integer(), nullable=True),
                    sa.Column('status_id', sa.Integer(), nullable=True),
                    sa.Column('criticality_id', sa.Integer(), nullable=True),
                    sa.Column('expected_completion_date', sa.DateTime(),
                              sa.Computed('created_at + INTERVAL 3 DAY', persisted=True), nullable=False),
                    sa.Column('project_id', sa.Integer(), nullable=True),
                    sa.Column('actual_completion_date', sa.DateTime(), server_default=sa.text('NULL'), nullable=True),
                    sa.ForeignKeyConstraint(['assigned_by'], ['user.id'], ),
                    sa.ForeignKeyConstraint(['assigned_to'], ['user.id'], ),
                    sa.ForeignKeyConstraint(['created_by'], ['user.id'], ),
                    sa.ForeignKeyConstraint(['criticality_id'], ['criticality.id'], ),
                    sa.ForeignKeyConstraint(['project_id'], ['project.id'], ),
                    sa.ForeignKeyConstraint(['reviewed_by'], ['user.id'], ),
                    sa.ForeignKeyConstraint(['status_id'], ['status.id'], ),
                    sa.PrimaryKeyConstraint('id'),
                    sa.UniqueConstraint('name')
                    )
    op.create_table('user_project',
                    sa.Column('id', sa.Integer(), nullable=False),
                    sa.Column('user_id', sa.Integer(), nullable=False),
                    sa.Column('project_id', sa.Integer(), nullable=False),
                    sa.ForeignKeyConstraint(['project_id'], ['project.id'], ),
                    sa.ForeignKeyConstraint(['user_id'], ['user.id'], ),
                    sa.PrimaryKeyConstraint('id')
                    )
    op.create_table('task_history',
                    sa.Column('remarks', sa.Text(), server_default=sa.text('NULL'), nullable=True),
                    sa.Column('created_at', sa.DateTime(), server_default=sa.text('now()'), nullable=False),
                    sa.Column('id', sa.Integer(), nullable=False),
                    sa.Column('task_id', sa.Integer(), nullable=False),
                    sa.Column('created_by', sa.Integer(), nullable=False),
                    sa.ForeignKeyConstraint(['created_by'], ['user.id'], ),
                    sa.ForeignKeyConstraint(['task_id'], ['task.id'], ),
                    sa.PrimaryKeyConstraint('id')
                    )