Convert to timezone-aware datetime and properly port over DB contents.
This commit is contained in:
parent
5271e7c943
commit
bd909f394d
3 changed files with 64 additions and 18 deletions
|
@ -52,7 +52,7 @@ class Comment(CreatedBase):
|
||||||
volunteer_janitor_badness = Column(Float, default=0.5, nullable=False)
|
volunteer_janitor_badness = Column(Float, default=0.5, nullable=False)
|
||||||
|
|
||||||
# Visibility states here
|
# Visibility states here
|
||||||
state_user_deleted_utc = Column(DateTime, nullable=True) # null if it hasn't been deleted by the user
|
state_user_deleted_utc = Column(DateTime(timezone=True), nullable=True) # null if it hasn't been deleted by the user
|
||||||
# TBD: state_mod
|
# TBD: state_mod
|
||||||
# TBD: state_mod_set_by
|
# TBD: state_mod_set_by
|
||||||
# TBD: state_report
|
# TBD: state_report
|
||||||
|
|
|
@ -53,7 +53,7 @@ class Submission(CreatedBase):
|
||||||
task_id = Column(Integer, ForeignKey("tasks_repeatable_scheduled_submissions.id"))
|
task_id = Column(Integer, ForeignKey("tasks_repeatable_scheduled_submissions.id"))
|
||||||
|
|
||||||
# Visibility states here
|
# Visibility states here
|
||||||
state_user_deleted_utc = Column(DateTime, nullable=True) # null if it hasn't been deleted by the user
|
state_user_deleted_utc = Column(DateTime(timezone=True), nullable=True) # null if it hasn't been deleted by the user
|
||||||
# TBD: state_mod
|
# TBD: state_mod
|
||||||
# TBD: state_mod_set_by
|
# TBD: state_mod_set_by
|
||||||
# TBD: state_report
|
# TBD: state_report
|
||||||
|
|
|
@ -17,30 +17,76 @@ depends_on = None
|
||||||
|
|
||||||
|
|
||||||
def upgrade():
|
def upgrade():
|
||||||
# ### commands auto generated by Alembic - please adjust! ###
|
op.add_column('comments', sa.Column('state_user_deleted_utc', sa.DateTime(timezone=True), nullable=True))
|
||||||
op.add_column('comments', sa.Column('state_user_deleted_utc', sa.DateTime(), nullable=True))
|
op.add_column('submissions', sa.Column('state_user_deleted_utc', sa.DateTime(timezone=True), nullable=True))
|
||||||
op.drop_column('comments', 'deleted_utc')
|
|
||||||
op.add_column('submissions', sa.Column('state_user_deleted_utc', sa.DateTime(), nullable=True))
|
|
||||||
op.drop_index('subimssion_binary_group_idx', table_name='submissions')
|
op.drop_index('subimssion_binary_group_idx', table_name='submissions')
|
||||||
op.create_index('subimssion_binary_group_idx', 'submissions', ['is_banned', 'state_user_deleted_utc', 'over_18'], unique=False)
|
|
||||||
op.drop_index('submission_isdeleted_idx', table_name='submissions')
|
op.drop_index('submission_isdeleted_idx', table_name='submissions')
|
||||||
op.create_index('submission_isdeleted_idx', 'submissions', ['state_user_deleted_utc'], unique=False)
|
|
||||||
op.drop_index('submission_new_sort_idx', table_name='submissions')
|
op.drop_index('submission_new_sort_idx', table_name='submissions')
|
||||||
op.create_index('submission_new_sort_idx', 'submissions', ['is_banned', 'state_user_deleted_utc', sa.text('created_utc DESC'), 'over_18'], unique=False)
|
|
||||||
|
op.execute("""
|
||||||
|
UPDATE comments
|
||||||
|
SET state_user_deleted_utc =
|
||||||
|
CASE
|
||||||
|
WHEN deleted_utc > 0 THEN
|
||||||
|
(timestamp 'epoch' + deleted_utc * interval '1 second') at time zone 'utc'
|
||||||
|
ELSE NULL
|
||||||
|
END
|
||||||
|
""")
|
||||||
|
|
||||||
|
op.execute("""
|
||||||
|
UPDATE submissions
|
||||||
|
SET state_user_deleted_utc =
|
||||||
|
CASE
|
||||||
|
WHEN deleted_utc > 0 THEN
|
||||||
|
(timestamp 'epoch' + deleted_utc * interval '1 second') at time zone 'utc'
|
||||||
|
ELSE NULL
|
||||||
|
END
|
||||||
|
""")
|
||||||
|
|
||||||
|
op.drop_column('comments', 'deleted_utc')
|
||||||
op.drop_column('submissions', 'deleted_utc')
|
op.drop_column('submissions', 'deleted_utc')
|
||||||
# ### end Alembic commands ###
|
|
||||||
|
op.create_index('subimssion_binary_group_idx', 'submissions', ['is_banned', 'state_user_deleted_utc', 'over_18'], unique=False)
|
||||||
|
op.create_index('submission_isdeleted_idx', 'submissions', ['state_user_deleted_utc'], unique=False)
|
||||||
|
op.create_index('submission_new_sort_idx', 'submissions', ['is_banned', 'state_user_deleted_utc', sa.text('created_utc DESC'), 'over_18'], unique=False)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def downgrade():
|
def downgrade():
|
||||||
# ### commands auto generated by Alembic - please adjust! ###
|
op.add_column('comments', sa.Column('deleted_utc', sa.INTEGER(), server_default=sa.text('0'), autoincrement=False, nullable=True))
|
||||||
op.add_column('submissions', sa.Column('deleted_utc', sa.INTEGER(), server_default=sa.text('0'), autoincrement=False, nullable=False))
|
op.add_column('submissions', sa.Column('deleted_utc', sa.INTEGER(), server_default=sa.text('0'), autoincrement=False, nullable=True))
|
||||||
|
|
||||||
op.drop_index('submission_new_sort_idx', table_name='submissions')
|
op.drop_index('submission_new_sort_idx', table_name='submissions')
|
||||||
op.create_index('submission_new_sort_idx', 'submissions', ['is_banned', 'deleted_utc', 'created_utc', 'over_18'], unique=False)
|
|
||||||
op.drop_index('submission_isdeleted_idx', table_name='submissions')
|
op.drop_index('submission_isdeleted_idx', table_name='submissions')
|
||||||
op.create_index('submission_isdeleted_idx', 'submissions', ['deleted_utc'], unique=False)
|
|
||||||
op.drop_index('subimssion_binary_group_idx', table_name='submissions')
|
op.drop_index('subimssion_binary_group_idx', table_name='submissions')
|
||||||
op.create_index('subimssion_binary_group_idx', 'submissions', ['is_banned', 'deleted_utc', 'over_18'], unique=False)
|
|
||||||
op.drop_column('submissions', 'state_user_deleted_utc')
|
op.execute("""
|
||||||
op.add_column('comments', sa.Column('deleted_utc', sa.INTEGER(), server_default=sa.text('0'), autoincrement=False, nullable=False))
|
UPDATE comments
|
||||||
|
SET deleted_utc =
|
||||||
|
COALESCE(
|
||||||
|
EXTRACT(EPOCH FROM state_user_deleted_utc)::integer,
|
||||||
|
0
|
||||||
|
)
|
||||||
|
""")
|
||||||
|
|
||||||
|
op.execute("""
|
||||||
|
UPDATE submissions
|
||||||
|
SET deleted_utc =
|
||||||
|
COALESCE(
|
||||||
|
EXTRACT(EPOCH FROM state_user_deleted_utc)::integer,
|
||||||
|
0
|
||||||
|
)
|
||||||
|
""")
|
||||||
|
|
||||||
|
op.alter_column('comments', 'deleted_utc', nullable=False)
|
||||||
|
op.alter_column('submissions', 'deleted_utc', nullable=False)
|
||||||
|
|
||||||
op.drop_column('comments', 'state_user_deleted_utc')
|
op.drop_column('comments', 'state_user_deleted_utc')
|
||||||
# ### end Alembic commands ###
|
op.drop_column('submissions', 'state_user_deleted_utc')
|
||||||
|
|
||||||
|
op.create_index('submission_new_sort_idx', 'submissions', ['is_banned', 'deleted_utc', 'created_utc', 'over_18'], unique=False)
|
||||||
|
op.create_index('submission_isdeleted_idx', 'submissions', ['deleted_utc'], unique=False)
|
||||||
|
op.create_index('subimssion_binary_group_idx', 'submissions', ['is_banned', 'deleted_utc', 'over_18'], unique=False)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue