mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-23 00:41:35 -05:00
We shouldn’t import models into migrations because if the model changes later down the line then the migration can’t be re-run at a later date (for example to rebuild a database from scratch). We don’t need to encode the content before storing it (we’ll always do that before rendering/sending) so we don’t need to use `BroadcastMessageTemplate`. And given that no past broadcasts will have personalisation, we don’t need to replace the personalisation in the template before rendering it. So we can just copy the raw content from the templates table.
41 lines
1001 B
Python
41 lines
1001 B
Python
"""
|
|
|
|
Revision ID: 0336_broadcast_msg_content_2
|
|
Revises: 0335_broadcast_msg_content
|
|
Create Date: 2020-12-04 15:06:22.544803
|
|
|
|
"""
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
from notifications_utils.template import BroadcastMessageTemplate
|
|
from sqlalchemy.dialects import postgresql
|
|
from sqlalchemy.orm.session import Session
|
|
|
|
from app.models import BroadcastMessage
|
|
|
|
revision = '0336_broadcast_msg_content_2'
|
|
down_revision = '0335_broadcast_msg_content'
|
|
|
|
|
|
def upgrade():
|
|
|
|
conn = op.get_bind()
|
|
|
|
results = conn.execute(sa.text("""
|
|
UPDATE
|
|
broadcast_message
|
|
SET
|
|
content = templates_history.content
|
|
FROM
|
|
templates_history
|
|
WHERE
|
|
broadcast_message.content is NULL and
|
|
broadcast_message.template_id = templates_history.id and
|
|
broadcast_message.template_version = templates_history.version
|
|
;
|
|
"""))
|
|
|
|
|
|
def downgrade():
|
|
op.alter_column('broadcast_message', 'content', nullable=True)
|