Skip to content

Commit

Permalink
DESENG-452 : Applying pending migrations
Browse files Browse the repository at this point in the history
  • Loading branch information
ratheesh-aot committed Feb 8, 2024
1 parent 23faaae commit f6cc977
Show file tree
Hide file tree
Showing 5 changed files with 103 additions and 6 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.MD
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
## February 08, 2024
- **Task**Consolidate and re-write old migration files [DESENG-452](https://apps.itsm.gov.bc.ca/jira/browse/DESENG-452)
- Change some foreign key field to nullbale false in model files
- Change `rejected_reason_other` to nullable true in `submission` model
- Generated new migration file based on the pending model changes which confirmed to be valid

## February 06, 2024
- **Task**Convert keycloak groups to composite roles for permission levels [DESENG-447](https://apps.itsm.gov.bc.ca/jira/browse/DESENG-447)
- Commented out unit test related to Keycloak groups
Expand Down
91 changes: 91 additions & 0 deletions met-api/migrations/versions/37176ea4708d_.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
"""empty message
Revision ID: 37176ea4708d
Revises: ec0128056a33
Create Date: 2024-02-08 12:40:09.456210
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

# revision identifiers, used by Alembic.
revision = '37176ea4708d'
down_revision = 'ec0128056a33'
branch_labels = None
depends_on = None


def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.alter_column('email_verification', 'type',
existing_type=postgresql.ENUM('Survey', 'RejectedComment', 'Subscribe', name='emailverificationtype'),
nullable=False)
op.create_index(op.f('ix_engagement_metadata_engagement_id'), 'engagement_metadata', ['engagement_id'], unique=False)
op.create_index(op.f('ix_engagement_metadata_taxon_id'), 'engagement_metadata', ['taxon_id'], unique=False)
op.create_index(op.f('ix_engagement_metadata_value'), 'engagement_metadata', ['value'], unique=False)
op.create_index(op.f('ix_engagement_metadata_taxa_tenant_id'), 'engagement_metadata_taxa', ['tenant_id'], unique=False)
op.create_unique_constraint(None, 'engagement_metadata_taxa', ['id'])
op.execute('UPDATE membership_status_codes SET created_date = CURRENT_TIMESTAMP WHERE created_date IS NULL;')
op.alter_column('membership_status_codes', 'created_date',
existing_type=postgresql.TIMESTAMP(),
nullable=False)
op.drop_index('ix_participant_email_address', table_name='participant')
op.alter_column('timeline_event', 'widget_id',
existing_type=sa.INTEGER(),
nullable=False)
op.alter_column('timeline_event', 'status',
existing_type=postgresql.ENUM('Pending', 'InProgress', 'Completed', name='timelineeventstatus'),
nullable=False)
op.alter_column('timeline_event', 'position',
existing_type=sa.INTEGER(),
nullable=False)
op.alter_column('widget_documents', 'is_uploaded',
existing_type=sa.BOOLEAN(),
nullable=True,
existing_server_default=sa.text('false'))
op.alter_column('widget_timeline', 'widget_id',
existing_type=sa.INTEGER(),
nullable=False)
op.execute('UPDATE widget_type SET created_date = CURRENT_TIMESTAMP WHERE created_date IS NULL;')
op.alter_column('widget_type', 'created_date',
existing_type=postgresql.TIMESTAMP(),
nullable=False)
# ### end Alembic commands ###


def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.alter_column('widget_type', 'created_date',
existing_type=postgresql.TIMESTAMP(),
nullable=True)
op.alter_column('widget_timeline', 'widget_id',
existing_type=sa.INTEGER(),
nullable=True)
op.alter_column('widget_documents', 'is_uploaded',
existing_type=sa.BOOLEAN(),
nullable=False,
existing_server_default=sa.text('false'))
op.alter_column('timeline_event', 'position',
existing_type=sa.INTEGER(),
nullable=True)
op.alter_column('timeline_event', 'status',
existing_type=postgresql.ENUM('Pending', 'InProgress', 'Completed', name='timelineeventstatus'),
nullable=True)
op.alter_column('timeline_event', 'widget_id',
existing_type=sa.INTEGER(),
nullable=True)
op.create_index('ix_participant_email_address', 'participant', ['email_address'], unique=False)

op.alter_column('membership_status_codes', 'created_date',
existing_type=postgresql.TIMESTAMP(),
nullable=True)
op.drop_constraint(None, 'engagement_metadata_taxa', type_='unique')
op.drop_index(op.f('ix_engagement_metadata_taxa_tenant_id'), table_name='engagement_metadata_taxa')
op.drop_index(op.f('ix_engagement_metadata_value'), table_name='engagement_metadata')
op.drop_index(op.f('ix_engagement_metadata_taxon_id'), table_name='engagement_metadata')
op.drop_index(op.f('ix_engagement_metadata_engagement_id'), table_name='engagement_metadata')
op.alter_column('email_verification', 'type',
existing_type=postgresql.ENUM('Survey', 'RejectedComment', 'Subscribe', name='emailverificationtype'),
nullable=True)
# ### end Alembic commands ###
2 changes: 1 addition & 1 deletion met-api/src/met_api/models/submission.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class Submission(BaseModel): # pylint: disable=too-few-public-methods
comment_status_id = db.Column(db.Integer, ForeignKey('comment_status.id', ondelete='SET NULL'))
has_personal_info = db.Column(db.Boolean, nullable=True)
has_profanity = db.Column(db.Boolean, nullable=True)
rejected_reason_other = db.Column(db.String(500), nullable=False)
rejected_reason_other = db.Column(db.String(500), nullable=True)
has_threat = db.Column(db.Boolean, nullable=True)
notify_email = db.Column(db.Boolean(), default=True)
comments = db.relationship('Comment', backref='submission', cascade='all, delete')
Expand Down
6 changes: 3 additions & 3 deletions met-api/src/met_api/models/timeline_event.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ class TimelineEvent(BaseModel):

__tablename__ = 'timeline_event'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
engagement_id = db.Column(db.Integer, ForeignKey('engagement.id', ondelete='CASCADE'), nullable=True)
widget_id = db.Column(db.Integer, ForeignKey('widget.id', ondelete='CASCADE'), nullable=True)
timeline_id = db.Column(db.Integer, ForeignKey('widget_timeline.id', ondelete='CASCADE'), nullable=True)
engagement_id = db.Column(db.Integer, ForeignKey('engagement.id', ondelete='CASCADE'), nullable=False)
widget_id = db.Column(db.Integer, ForeignKey('widget.id', ondelete='CASCADE'), nullable=False)
timeline_id = db.Column(db.Integer, ForeignKey('widget_timeline.id', ondelete='CASCADE'), nullable=False)
status = db.Column(db.Enum(TimelineEventStatus), nullable=False)
position = db.Column(db.Integer, nullable=False)
description = db.Column(db.Text(), nullable=True)
Expand Down
4 changes: 2 additions & 2 deletions met-api/src/met_api/models/widget_timeline.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ class WidgetTimeline(BaseModel): # pylint: disable=too-few-public-methods, too-

__tablename__ = 'widget_timeline'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
engagement_id = db.Column(db.Integer, ForeignKey('engagement.id', ondelete='CASCADE'), nullable=True)
widget_id = db.Column(db.Integer, ForeignKey('widget.id', ondelete='CASCADE'), nullable=True)
engagement_id = db.Column(db.Integer, ForeignKey('engagement.id', ondelete='CASCADE'), nullable=False)
widget_id = db.Column(db.Integer, ForeignKey('widget.id', ondelete='CASCADE'), nullable=False)
title = db.Column(db.String(255), nullable=True)
description = db.Column(db.Text(), nullable=True)

Expand Down

0 comments on commit f6cc977

Please sign in to comment.