mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-21 07:51:13 -05:00
Adds new job_status table and FK to jobs.
This will replace the job_status enum type.
This commit is contained in:
@@ -303,6 +303,19 @@ class ProviderDetails(db.Model):
|
||||
JOB_STATUS_TYPES = ['pending', 'in progress', 'finished', 'sending limits exceeded']
|
||||
|
||||
|
||||
JOB_STATUS_PENDING = 'pending'
|
||||
JOB_STATUS_IN_PROGRESS = 'in progress'
|
||||
JOB_STATUS_FINISHED = 'finished'
|
||||
JOB_STATUS_SENDING_LIMITS_EXCEEDED = 'sending limits exceeded'
|
||||
JOB_STATUS_SCHEDULED = 'scheduled'
|
||||
|
||||
|
||||
class JobStatusTypes(db.Model):
|
||||
__tablename__ = 'job_status'
|
||||
|
||||
name = db.Column(db.String(255), primary_key=True)
|
||||
|
||||
|
||||
class Job(db.Model):
|
||||
__tablename__ = 'jobs'
|
||||
|
||||
@@ -343,6 +356,12 @@ class Job(db.Model):
|
||||
nullable=True)
|
||||
created_by = db.relationship('User')
|
||||
created_by_id = db.Column(UUID(as_uuid=True), db.ForeignKey('users.id'), index=True, nullable=False)
|
||||
scheduled_for = db.Column(
|
||||
db.DateTime,
|
||||
index=True,
|
||||
unique=False,
|
||||
nullable=True)
|
||||
job_status = db.Column(db.String(255), db.ForeignKey('job_status.name'), index=True, nullable=True)
|
||||
|
||||
|
||||
VERIFY_CODE_TYPES = [EMAIL_TYPE, SMS_TYPE]
|
||||
|
||||
41
migrations/versions/0048_job_scheduled_time.py
Normal file
41
migrations/versions/0048_job_scheduled_time.py
Normal file
@@ -0,0 +1,41 @@
|
||||
"""empty message
|
||||
|
||||
Revision ID: 0048_job_scheduled_time
|
||||
Revises: 0047_ukvi_spelling
|
||||
Create Date: 2016-08-24 13:21:51.744526
|
||||
|
||||
"""
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '0048_job_scheduled_time'
|
||||
down_revision = '0047_ukvi_spelling'
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
def upgrade():
|
||||
op.create_table('job_status',
|
||||
sa.Column('name', sa.String(length=255), nullable=False),
|
||||
sa.PrimaryKeyConstraint('name')
|
||||
)
|
||||
op.add_column('jobs', sa.Column('job_status', sa.String(length=255), nullable=True))
|
||||
op.add_column('jobs', sa.Column('scheduled_for', sa.DateTime(), nullable=True))
|
||||
op.create_index(op.f('ix_jobs_job_status'), 'jobs', ['job_status'], unique=False)
|
||||
op.create_index(op.f('ix_jobs_scheduled_for'), 'jobs', ['scheduled_for'], unique=False)
|
||||
op.create_foreign_key(None, 'jobs', 'job_status', ['job_status'], ['name'])
|
||||
|
||||
op.execute("insert into job_status values ('pending')")
|
||||
op.execute("insert into job_status values ('in progress')")
|
||||
op.execute("insert into job_status values ('finished')")
|
||||
op.execute("insert into job_status values ('sending limits exceeded')")
|
||||
op.execute("insert into job_status values ('scheduled')")
|
||||
|
||||
|
||||
def downgrade():
|
||||
op.drop_constraint('jobs_job_status_fkey', 'jobs', type_='foreignkey')
|
||||
op.drop_index(op.f('ix_jobs_scheduled_for'), table_name='jobs')
|
||||
op.drop_index(op.f('ix_jobs_job_status'), table_name='jobs')
|
||||
op.drop_column('jobs', 'scheduled_for')
|
||||
op.drop_column('jobs', 'job_status')
|
||||
op.drop_table('job_status')
|
||||
Reference in New Issue
Block a user