diff --git a/storyboard/db/migration/alembic_migrations/versions/060_allow_timeline_events_to_be_related_to_.py b/storyboard/db/migration/alembic_migrations/versions/060_allow_timeline_events_to_be_related_to_.py new file mode 100644 index 00000000..b8facb44 --- /dev/null +++ b/storyboard/db/migration/alembic_migrations/versions/060_allow_timeline_events_to_be_related_to_.py @@ -0,0 +1,46 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# + +"""Allow timeline events to be related to boards and worklists + +Revision ID: 060 +Revises: 059 +Create Date: 2016-07-14 15:05:12.369072 + +""" + +# revision identifiers, used by Alembic. +revision = '060' +down_revision = '059' + + +from alembic import op +import sqlalchemy as sa + + +def upgrade(active_plugins=None, options=None): + op.add_column( + 'events', sa.Column('board_id', sa.Integer(), nullable=True)) + op.add_column( + 'events', sa.Column('worklist_id', sa.Integer(), nullable=True)) + op.create_foreign_key( + 'fk_event_worklist', 'events', 'worklists', ['worklist_id'], ['id']) + op.create_foreign_key( + 'fk_event_board', 'events', 'boards', ['board_id'], ['id']) + + +def downgrade(active_plugins=None, options=None): + op.drop_constraint('fk_event_worklist', 'events', type_='foreignkey') + op.drop_constraint('fk_event_board', 'events', type_='foreignkey') + op.drop_column('events', 'worklist_id') + op.drop_column('events', 'board_id') diff --git a/storyboard/db/models.py b/storyboard/db/models.py index 3be05d58..b6ef191f 100644 --- a/storyboard/db/models.py +++ b/storyboard/db/models.py @@ -486,7 +486,9 @@ class StorySummary(Base): class TimeLineEvent(ModelBuilder, Base): __tablename__ = 'events' - story_id = Column(Integer, ForeignKey('stories.id')) + story_id = Column(Integer, ForeignKey('stories.id'), nullable=True) + worklist_id = Column(Integer, ForeignKey('worklists.id'), nullable=True) + board_id = Column(Integer, ForeignKey('boards.id'), nullable=True) comment_id = Column(Integer, ForeignKey('comments.id'), nullable=True) author_id = Column(Integer, ForeignKey('users.id'), nullable=True)