Add unique constraints on some of our tables

I just missed thinking about this originally
This commit is contained in:
Eli Ribble 2016-05-18 15:41:04 -06:00
parent 9eef6c9754
commit 63a22e27e0
2 changed files with 33 additions and 2 deletions

View File

@ -0,0 +1,28 @@
"""add unique constraints
Revision ID: 4990a9f1ada3
Revises: 688af5ecd407
Create Date: 2016-05-18 15:40:33.511871
"""
# revision identifiers, used by Alembic.
revision = '4990a9f1ada3'
down_revision = '688af5ecd407'
branch_labels = None
depends_on = None
from alembic import op
import sqlalchemy as sa
def upgrade():
op.create_unique_constraint('uq_credit_card_id', 'credit_card', ['card_id'])
op.create_unique_constraint('uq_ofxsource_fid', 'ofxsource', ['fid'])
op.create_unique_constraint('uq_user_username', 'users', ['username'])
def downgrade():
op.drop_constraint('uq_user_username', 'users', type_='unique')
op.drop_constraint('uq_ofxsource_fid', 'ofxsource', type_='unique')
op.drop_constraint('uq_credit_card_id', 'credit_card', type_='unique')

View File

@ -1,6 +1,6 @@
import chryso.constants
from sqlalchemy import (Column, Date, DateTime, Float, ForeignKey, Integer,
MetaData, String, Table, func)
MetaData, String, Table, UniqueConstraint, func)
from sqlalchemy.dialects.postgresql import UUID
metadata = MetaData(naming_convention=chryso.constants.CONVENTION)
@ -14,6 +14,7 @@ User = Table('users', metadata,
Column('created_at', DateTime, nullable=False, server_default=func.now()),
Column('updated_at', DateTime, nullable=False, server_default=func.now(), onupdate=func.now()),
Column('deleted_at', DateTime, nullable=True),
UniqueConstraint('username', name='uq_user_username'),
)
CreditCard = Table('credit_card', metadata,
@ -30,15 +31,17 @@ CreditCard = Table('credit_card', metadata,
Column('created', DateTime(), nullable=False, server_default=func.now()),
Column('updated', DateTime(), nullable=False, server_default=func.now(), onupdate=func.now()),
Column('deleted', DateTime(), nullable=True),
UniqueConstraint('card_id', name='uq_credit_card_id'),
)
OFXSource = Table('ofxsource', metadata,
Column('uuid', UUID(as_uuid=True), primary_key=True),
Column('name', String(255), nullable=False), # The name of the institution such as 'America First Credit Union'
Column('fid', String(255), nullable=False), # The FID of the institution, such as 54324
Column('bankid', String(255), nullable=False), # The bank ID of the institution such as 324377516
Column('bankid', String(255), nullable=False), # The bank ID of the institution such as 324377516. This may be a routing number
Column('created', DateTime(), nullable=False, server_default=func.now()),
Column('updated', DateTime(), nullable=False, server_default=func.now(), onupdate=func.now()),
UniqueConstraint('fid', name='uq_ofxsource_fid'),
)
OFXAccount = Table('ofxaccount', metadata,