From de338f675f8562a1e349e609a4cbf5bb71e3e78d Mon Sep 17 00:00:00 2001 From: richard-dds Date: Fri, 21 Sep 2018 13:54:34 -0400 Subject: [PATCH] Add lots of NOT NULL constraints --- alembic/versions/359caaf8c5f1_initial.py | 30 ++++++++++++------------ atst/models/attachment.py | 4 ++-- atst/models/environment.py | 2 +- atst/models/environment_role.py | 6 +++-- atst/models/request_internal_comment.py | 4 ++-- atst/models/request_status_event.py | 4 +++- atst/models/role.py | 6 ++--- atst/models/user.py | 2 +- atst/models/workspace_role.py | 6 ++--- 9 files changed, 34 insertions(+), 30 deletions(-) diff --git a/alembic/versions/359caaf8c5f1_initial.py b/alembic/versions/359caaf8c5f1_initial.py index 8723a937..97622fb0 100644 --- a/alembic/versions/359caaf8c5f1_initial.py +++ b/alembic/versions/359caaf8c5f1_initial.py @@ -25,8 +25,8 @@ def upgrade(): sa.Column('time_created', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False), sa.Column('time_updated', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False), sa.Column('id', postgresql.UUID(as_uuid=True), server_default=sa.text('uuid_generate_v4()'), nullable=False), - sa.Column('filename', sa.String(), nullable=True), - sa.Column('object_name', sa.String(), nullable=True), + sa.Column('filename', sa.String(), nullable=False), + sa.Column('object_name', sa.String(), nullable=False), sa.PrimaryKeyConstraint('id'), sa.UniqueConstraint('object_name') ) @@ -39,9 +39,9 @@ def upgrade(): sa.Column('time_created', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False), sa.Column('time_updated', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False), sa.Column('id', postgresql.UUID(as_uuid=True), server_default=sa.text('uuid_generate_v4()'), nullable=False), - sa.Column('name', sa.String(), nullable=True), - sa.Column('description', sa.String(), nullable=True), - sa.Column('permissions', postgresql.ARRAY(sa.String()), server_default='{}', nullable=True), + sa.Column('name', sa.String(), nullable=False), + sa.Column('description', sa.String(), nullable=False), + sa.Column('permissions', postgresql.ARRAY(sa.String()), server_default='{}', nullable=False), sa.PrimaryKeyConstraint('id') ) op.create_index(op.f('ix_roles_name'), 'roles', ['name'], unique=True) @@ -73,7 +73,7 @@ def upgrade(): sa.Column('username', sa.String(), nullable=True), sa.Column('atat_role_id', postgresql.UUID(as_uuid=True), nullable=True), sa.Column('email', sa.String(), nullable=True), - sa.Column('dod_id', sa.String(), nullable=True), + sa.Column('dod_id', sa.String(), nullable=False), sa.Column('first_name', sa.String(), nullable=True), sa.Column('last_name', sa.String(), nullable=True), sa.ForeignKeyConstraint(['atat_role_id'], ['roles.id'], ), @@ -110,9 +110,9 @@ def upgrade(): sa.Column('time_created', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False), sa.Column('time_updated', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False), sa.Column('id', postgresql.UUID(as_uuid=True), server_default=sa.text('uuid_generate_v4()'), nullable=False), - sa.Column('text', sa.String(), nullable=True), + sa.Column('text', sa.String(), nullable=False), sa.Column('user_id', postgresql.UUID(as_uuid=True), nullable=False), - sa.Column('request_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.Column('request_id', postgresql.UUID(as_uuid=True), nullable=False), sa.ForeignKeyConstraint(['request_id'], ['requests.id'], ondelete='CASCADE'), sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), sa.PrimaryKeyConstraint('id') @@ -195,7 +195,7 @@ def upgrade(): sa.Column('id', postgresql.UUID(as_uuid=True), server_default=sa.text('uuid_generate_v4()'), nullable=False), sa.Column('new_status', sa.Enum('STARTED', 'SUBMITTED', 'PENDING_FINANCIAL_VERIFICATION', 'PENDING_CCPO_ACCEPTANCE', 'PENDING_CCPO_APPROVAL', 'CHANGES_REQUESTED', 'CHANGES_REQUESTED_TO_FINVER', 'APPROVED', 'EXPIRED', 'DELETED', name='requeststatus', native_enum=False), nullable=True), sa.Column('time_created', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True), - sa.Column('request_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.Column('request_id', postgresql.UUID(as_uuid=True), nullable=False), sa.Column('sequence', sa.BigInteger(), nullable=False), sa.Column('request_revision_id', postgresql.UUID(as_uuid=True), nullable=False), sa.Column('request_review_id', postgresql.UUID(as_uuid=True), nullable=True), @@ -208,9 +208,9 @@ def upgrade(): sa.Column('time_created', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False), sa.Column('time_updated', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False), sa.Column('id', postgresql.UUID(as_uuid=True), server_default=sa.text('uuid_generate_v4()'), nullable=False), - sa.Column('workspace_id', postgresql.UUID(as_uuid=True), nullable=True), - sa.Column('role_id', postgresql.UUID(as_uuid=True), nullable=True), - sa.Column('user_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.Column('workspace_id', postgresql.UUID(as_uuid=True), nullable=False), + sa.Column('role_id', postgresql.UUID(as_uuid=True), nullable=False), + sa.Column('user_id', postgresql.UUID(as_uuid=True), nullable=False), sa.ForeignKeyConstraint(['role_id'], ['roles.id'], ), sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), sa.ForeignKeyConstraint(['workspace_id'], ['workspaces.id'], ), @@ -224,7 +224,7 @@ def upgrade(): sa.Column('time_updated', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False), sa.Column('id', postgresql.UUID(as_uuid=True), server_default=sa.text('uuid_generate_v4()'), nullable=False), sa.Column('name', sa.String(), nullable=False), - sa.Column('project_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.Column('project_id', postgresql.UUID(as_uuid=True), nullable=False), sa.ForeignKeyConstraint(['project_id'], ['projects.id'], ), sa.PrimaryKeyConstraint('id') ) @@ -232,9 +232,9 @@ def upgrade(): sa.Column('time_created', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False), sa.Column('time_updated', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False), sa.Column('id', postgresql.UUID(as_uuid=True), server_default=sa.text('uuid_generate_v4()'), nullable=False), - sa.Column('environment_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.Column('environment_id', postgresql.UUID(as_uuid=True), nullable=False), sa.Column('role', sa.String(), nullable=True), - sa.Column('user_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.Column('user_id', postgresql.UUID(as_uuid=True), nullable=False), sa.ForeignKeyConstraint(['environment_id'], ['environments.id'], ), sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), sa.PrimaryKeyConstraint('id') diff --git a/atst/models/attachment.py b/atst/models/attachment.py index 61a7c946..b4177c29 100644 --- a/atst/models/attachment.py +++ b/atst/models/attachment.py @@ -14,8 +14,8 @@ class Attachment(Base, mixins.TimestampsMixin): __tablename__ = "attachments" id = types.Id() - filename = Column(String) - object_name = Column(String, unique=True) + filename = Column(String, nullable=False) + object_name = Column(String, unique=True, nullable=False) @classmethod def attach(cls, fyle): diff --git a/atst/models/environment.py b/atst/models/environment.py index 5b091bac..3f65b67a 100644 --- a/atst/models/environment.py +++ b/atst/models/environment.py @@ -12,7 +12,7 @@ class Environment(Base, TimestampsMixin): id = Id() name = Column(String, nullable=False) - project_id = Column(ForeignKey("projects.id")) + project_id = Column(ForeignKey("projects.id"), nullable=False) project = relationship("Project") @property diff --git a/atst/models/environment_role.py b/atst/models/environment_role.py index fa05514c..05357759 100644 --- a/atst/models/environment_role.py +++ b/atst/models/environment_role.py @@ -14,12 +14,14 @@ class EnvironmentRole(Base, mixins.TimestampsMixin): __tablename__ = "environment_roles" id = types.Id() - environment_id = Column(UUID(as_uuid=True), ForeignKey("environments.id")) + environment_id = Column( + UUID(as_uuid=True), ForeignKey("environments.id"), nullable=False + ) environment = relationship("Environment", backref="roles") role = Column(String()) - user_id = Column(UUID(as_uuid=True), ForeignKey("users.id")) + user_id = Column(UUID(as_uuid=True), ForeignKey("users.id"), nullable=False) user = relationship("User", backref="environment_roles") diff --git a/atst/models/request_internal_comment.py b/atst/models/request_internal_comment.py index a3d333ad..6e1d0825 100644 --- a/atst/models/request_internal_comment.py +++ b/atst/models/request_internal_comment.py @@ -8,9 +8,9 @@ class RequestInternalComment(Base, mixins.TimestampsMixin): __tablename__ = "request_internal_comments" id = types.Id() - text = Column(String()) + text = Column(String(), nullable=False) user_id = Column(ForeignKey("users.id"), nullable=False) user = relationship("User") - request_id = Column(ForeignKey("requests.id", ondelete="CASCADE")) + request_id = Column(ForeignKey("requests.id", ondelete="CASCADE"), nullable=False) diff --git a/atst/models/request_status_event.py b/atst/models/request_status_event.py index 2b90e5e7..4a2c5dce 100644 --- a/atst/models/request_status_event.py +++ b/atst/models/request_status_event.py @@ -29,7 +29,9 @@ class RequestStatusEvent(Base, mixins.TimestampsMixin): new_status = Column(SQLAEnum(RequestStatus, native_enum=False)) time_created = Column(DateTime(timezone=True), server_default=func.now()) request_id = Column( - UUID(as_uuid=True), ForeignKey("requests.id", ondelete="CASCADE") + UUID(as_uuid=True), + ForeignKey("requests.id", ondelete="CASCADE"), + nullable=False, ) sequence = Column( BigInteger, Sequence("request_status_events_sequence_seq"), nullable=False diff --git a/atst/models/role.py b/atst/models/role.py index 746f6a92..ac88ca27 100644 --- a/atst/models/role.py +++ b/atst/models/role.py @@ -9,9 +9,9 @@ class Role(Base, mixins.TimestampsMixin): __tablename__ = "roles" id = types.Id() - name = Column(String, index=True, unique=True) - description = Column(String) - permissions = Column(ARRAY(String), index=True, server_default="{}") + name = Column(String, index=True, unique=True, nullable=False) + description = Column(String, nullable=False) + permissions = Column(ARRAY(String), index=True, server_default="{}", nullable=False) def add_permission(self, permission): perms_set = set(self.permissions) diff --git a/atst/models/user.py b/atst/models/user.py index e0fb06f7..f800d9c6 100644 --- a/atst/models/user.py +++ b/atst/models/user.py @@ -17,7 +17,7 @@ class User(Base, mixins.TimestampsMixin): workspace_roles = relationship("WorkspaceRole", backref="user") email = Column(String, unique=True) - dod_id = Column(String, unique=True) + dod_id = Column(String, unique=True, nullable=False) first_name = Column(String) last_name = Column(String) diff --git a/atst/models/workspace_role.py b/atst/models/workspace_role.py index 9ac6fcb1..bcc2279b 100644 --- a/atst/models/workspace_role.py +++ b/atst/models/workspace_role.py @@ -10,13 +10,13 @@ class WorkspaceRole(Base, mixins.TimestampsMixin): __tablename__ = "workspace_roles" id = Id() - workspace_id = Column(UUID(as_uuid=True), ForeignKey("workspaces.id"), index=True) + workspace_id = Column(UUID(as_uuid=True), ForeignKey("workspaces.id"), index=True, nullable=False) workspace = relationship("Workspace", back_populates="roles") - role_id = Column(UUID(as_uuid=True), ForeignKey("roles.id")) + role_id = Column(UUID(as_uuid=True), ForeignKey("roles.id"), nullable=False) role = relationship("Role") - user_id = Column(UUID(as_uuid=True), ForeignKey("users.id"), index=True) + user_id = Column(UUID(as_uuid=True), ForeignKey("users.id"), index=True, nullable=False) Index(