Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion collectoss/application/db/models/augur_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -780,7 +780,7 @@ class ContributorRepo(Base):
class ContributorsAlias(Base):
__tablename__ = "contributors_aliases"
__table_args__ = (
UniqueConstraint("alias_email"),
UniqueConstraint("cntrb_id","alias_email", name="cntrb-email-insert-unique"),
{
"schema": "augur_data",
"comment": "Every open source user may have more than one email used to make contributions over time. CollectOSS selects the first email it encounters for a user as its “canonical_email”. \n\nThe canonical_email is also added to the contributors_aliases table, with the canonical_email and alias_email being identical. Using this strategy, an email search will only need to join the alias table for basic email information, and can then more easily map the canonical email from each alias row to the same, more detailed information in the contributors table for a user. ",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
"""fix alias email constraints

Revision ID: 41
Revises: 40
Create Date: 2026-05-04 14:23:57.315794

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = '41'
down_revision = '40'
branch_labels = None
depends_on = None


def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_constraint(op.f('contributor-alias-unique'), 'contributors_aliases', schema='augur_data', type_='unique')
op.create_unique_constraint('cntrb-email-insert-unique', 'contributors_aliases', ['cntrb_id', 'alias_email'], schema='augur_data')
# ### end Alembic commands ###


def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_constraint('cntrb-email-insert-unique', 'contributors_aliases', schema='augur_data', type_='unique')
op.create_unique_constraint(op.f('contributor-alias-unique'), 'contributors_aliases', ['alias_email'], schema='augur_data')
# ### end Alembic commands ###
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ def insert_alias(logger, contributor, email):
alias_clean = clean_dict(alias)

# Insert new alias
bulk_insert_dicts(logger, alias_clean, ContributorsAlias, ['alias_email'])
bulk_insert_dicts(logger, alias_clean, ContributorsAlias, ['cntrb_id','alias_email'])

return

Expand Down
Loading