diff --git a/alembic/versions/20250519_133645_4da94988fa4f_default_migration_message.py b/alembic/versions/20250519_133645_4da94988fa4f_default_migration_message.py new file mode 100644 index 00000000..839fbc61 --- /dev/null +++ b/alembic/versions/20250519_133645_4da94988fa4f_default_migration_message.py @@ -0,0 +1,64 @@ +"""Default migration message + +Revision ID: 4da94988fa4f +Revises: 19e6c28114fa +Create Date: 2025-05-19 13:36:45.039741 + +""" + +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa +from alembic_postgresql_enum import TableReference + +from sqlalchemy import Text +import app.db.types + +# revision identifiers, used by Alembic. +revision: str = "4da94988fa4f" +down_revision: Union[str, None] = "19e6c28114fa" +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.sync_enum_values( + enum_schema="public", + enum_name="assetlabel", + new_values=[ + "neurolucida", + "swc", + "hdf5", + "cell_composition_summary", + "cell_composition_volumes", + "single_neuron_synaptome_config", + "single_neuron_synaptome_simulation_io_result", + ], + affected_columns=[ + TableReference(table_schema="public", table_name="asset", column_name="label") + ], + enum_values_to_rename=[], + ) + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.sync_enum_values( + enum_schema="public", + enum_name="assetlabel", + new_values=[ + "neurolucida", + "swc", + "hdf5", + "cell_composition_summary", + "cell_composition_volumes", + ], + affected_columns=[ + TableReference(table_schema="public", table_name="asset", column_name="label") + ], + enum_values_to_rename=[], + ) + # ### end Alembic commands ### diff --git a/app/db/types.py b/app/db/types.py index d591b917..ebcfb399 100644 --- a/app/db/types.py +++ b/app/db/types.py @@ -187,6 +187,8 @@ class AssetLabel(StrEnum): hdf5 = auto() cell_composition_summary = auto() cell_composition_volumes = auto() + single_neuron_synaptome_config = auto() + single_neuron_synaptome_simulation_io_result = auto() ALLOWED_ASSET_LABELS_PER_ENTITY = { @@ -199,4 +201,8 @@ class AssetLabel(StrEnum): AssetLabel.cell_composition_summary, AssetLabel.cell_composition_volumes, }, + EntityType.single_neuron_synaptome: {AssetLabel.single_neuron_synaptome_config}, + EntityType.single_neuron_synaptome_simulation: { + AssetLabel.single_neuron_synaptome_simulation_io_result + }, } diff --git a/app/schemas/ion_channel_model.py b/app/schemas/ion_channel_model.py index 483553b4..04beb311 100644 --- a/app/schemas/ion_channel_model.py +++ b/app/schemas/ion_channel_model.py @@ -8,6 +8,7 @@ AuthorizationOptionalPublicMixin, BrainRegionRead, CreationMixin, + EntityTypeMixin, IdentifiableMixin, SpeciesRead, StrainRead, @@ -49,7 +50,7 @@ class IonChannelModelCreate(IonChannelModelBase, AuthorizationOptionalPublicMixi class IonChannelModelRead( - IonChannelModelBase, CreationMixin, IdentifiableMixin, AuthorizationMixin + IonChannelModelBase, CreationMixin, IdentifiableMixin, AuthorizationMixin, EntityTypeMixin ): species: SpeciesRead strain: StrainRead | None