old_contents: """
  
  Revision ID: 0313_email_access_validated_at
  Revises: 0312_populate_returned_letters
  Create Date: 2020-01-28 18:03:22.237386
  
  """
  from alembic import op
  import sqlalchemy as sa
  
  
  revision = '0313_email_access_validated_at'
  down_revision = '0312_populate_returned_letters'
  
  
  def upgrade():
      # ### commands auto generated by Alembic - please adjust! ###
      op.add_column('users', sa.Column('email_access_validated_at', sa.DateTime(), nullable=True))
      # if user has email_auth, set email_access_validated_at on last login, else set it at user created_at date.
      op.execute("""
          UPDATE
              users
          SET
              email_access_validated_at = created_at
          WHERE
              auth_type = 'sms_auth'
      """)
      op.execute("""
          UPDATE
              users
          SET
              email_access_validated_at = logged_in_at
          WHERE
              auth_type = 'email_auth'
      """)
      op.alter_column('users', 'email_access_validated_at', nullable=False)
      # ### end Alembic commands ###
  
  
  def downgrade():
      # ### commands auto generated by Alembic - please adjust! ###
      op.drop_column('users', 'email_access_validated_at')
      # ### end Alembic commands ###
  
new_contents: """
  
  Revision ID: 0313_email_access_validated_at
  Revises: 0312_populate_returned_letters
  Create Date: 2020-01-28 18:03:22.237386
  
  """
  from alembic import op
  import sqlalchemy as sa
  
  
  revision = '0313_email_access_validated_at'
  down_revision = '0312_populate_returned_letters'
  
  
  def upgrade():
      # ### commands auto generated by Alembic - please adjust! ###
      op.add_column('users', sa.Column('email_access_validated_at', sa.DateTime(), nullable=True))
      # if user has email_auth, set email_access_validated_at on last login, else set it at user created_at date.
      op.execute("""
          UPDATE
              users
          SET
              email_access_validated_at = created_at
      """)
      op.execute("""
          UPDATE
              users
          SET
              email_access_validated_at = logged_in_at
          WHERE
              auth_type = 'email_auth'
          AND
              email_access_validated_at IS NOT NULL
      """)
      op.alter_column('users', 'email_access_validated_at', nullable=False)
      # ### end Alembic commands ###
  
  
  def downgrade():
      # ### commands auto generated by Alembic - please adjust! ###
      op.drop_column('users', 'email_access_validated_at')
      # ### end Alembic commands ###
  
subject: Make sure email_access_validated_at is not null after being populated