new_contents: """Restrict request.base_payout to be >= 0
  
  Revision ID: 337978f8c75
  Revises: c1fc69b629
  Create Date: 2014-06-18 14:04:52.963890
  
  """
  
  # revision identifiers, used by Alembic.
  revision = '337978f8c75'
  down_revision = 'c1fc69b629'
  
  from alembic import op
  import sqlalchemy as sa
  from sqlalchemy.sql import update, select, table, column
  
  
  request = table('request',
          column('id', sa.Integer),
          column('base_payout', sa.Float),
  )
  
  
  def upgrade():
      conn = op.get_bind()
      negative_base_payout_id_sel = select([request.c.id])\
              .where(request.c.base_payout < 0.0)
      negative_ids = conn.execute(negative_base_payout_id_sel)
      for result_row in negative_ids:
          negative_id = result_row[0]
          update_stmt = update(request)\
                  .where(request.c.id == negative_id)\
                  .values({
                          'base_payout': 0.0,
                  })
          conn.execute(update_stmt)
      negative_ids.close()
  
  
  def downgrade():
      # This is a lossy upgrade, no downgrading possible
      pass
  
subject: Add migration script for enforcing a minimum base_payout of 0