Skip to content

Commit 4f36a97

Browse files
authored
Merge pull request #102 from VariantEffect/ashsny/unique-urns
Enforce unique URNs at schema level for URN-having entities.
2 parents 6d0376d + beb57bd commit 4f36a97

File tree

5 files changed

+38
-4
lines changed

5 files changed

+38
-4
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
"""empty message
2+
3+
Revision ID: fecb3e0d181d
4+
Revises: c6154dd7d9b9
5+
Create Date: 2023-11-15 19:45:42.769529
6+
7+
"""
8+
from alembic import op
9+
import sqlalchemy as sa
10+
11+
12+
# revision identifiers, used by Alembic.
13+
revision = 'fecb3e0d181d'
14+
down_revision = 'c6154dd7d9b9'
15+
branch_labels = None
16+
depends_on = None
17+
18+
19+
def upgrade():
20+
# ### commands auto generated by Alembic - please adjust! ###
21+
op.create_index(op.f('ix_experiment_sets_urn'), 'experiment_sets', ['urn'], unique=True)
22+
op.create_index(op.f('ix_experiments_urn'), 'experiments', ['urn'], unique=True)
23+
op.create_index(op.f('ix_scoresets_urn'), 'scoresets', ['urn'], unique=True)
24+
op.create_index(op.f('ix_variants_urn'), 'variants', ['urn'], unique=True)
25+
# ### end Alembic commands ###
26+
27+
28+
def downgrade():
29+
# ### commands auto generated by Alembic - please adjust! ###
30+
op.drop_index(op.f('ix_variants_urn'), table_name='variants')
31+
op.drop_index(op.f('ix_scoresets_urn'), table_name='scoresets')
32+
op.drop_index(op.f('ix_experiments_urn'), table_name='experiments')
33+
op.drop_index(op.f('ix_experiment_sets_urn'), table_name='experiment_sets')
34+
# ### end Alembic commands ###

src/mavedb/models/experiment.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class Experiment(Base):
4444

4545
id = Column(Integer, primary_key=True, index=True)
4646

47-
urn = Column(String(64), nullable=True, default=generate_temp_urn) # index=True, nullable=True
47+
urn = Column(String(64), nullable=True, default=generate_temp_urn, unique=True, index=True)
4848
title = Column(String, nullable=False)
4949
short_description = Column(String, nullable=False)
5050
abstract_text = Column(String, nullable=False)

src/mavedb/models/experiment_set.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class ExperimentSet(Base):
4343

4444
id = Column(Integer, primary_key=True, index=True)
4545

46-
urn = Column(String(64), nullable=True, default=generate_temp_urn) # index=True, nullable=True
46+
urn = Column(String(64), nullable=True, default=generate_temp_urn, unique=True, index=True)
4747
extra_metadata = Column(JSONB, nullable=False)
4848

4949
private = Column(Boolean, nullable=False, default=True)

src/mavedb/models/score_set.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ class ScoreSet(Base):
5353

5454
id = Column(Integer, primary_key=True, index=True)
5555

56-
urn = Column(String(64), nullable=True, default=generate_temp_urn) # index=True, nullable=True
56+
urn = Column(String(64), nullable=True, default=generate_temp_urn, unique=True, index=True)
5757
title = Column(String, nullable=False)
5858
method_text = Column(String, nullable=False)
5959
abstract_text = Column(String, nullable=False)

src/mavedb/models/variant.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class Variant(Base):
1212

1313
id = Column(Integer, primary_key=True, index=True)
1414

15-
urn = Column(String(64), nullable=True) # index=True, nullable=True
15+
urn = Column(String(64), nullable=True, unique=True, index=True)
1616
data = Column(JSONB, nullable=False)
1717

1818
score_set_id = Column("scoreset_id", Integer, ForeignKey("scoresets.id"), nullable=False)

0 commit comments

Comments
 (0)