From 39887c827f8cead973389a01c265cb0bd28ac74f Mon Sep 17 00:00:00 2001 From: arkohut <39525455+arkohut@users.noreply.github.com> Date: Wed, 14 Aug 2024 12:20:32 +0800 Subject: [PATCH] feat: add more indices --- memos/models.py | 10 ++++++ ..._add_indices_to_entitytags_and_metadata.py | 36 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 migrations/alembic/versions/04acdaf75664_add_indices_to_entitytags_and_metadata.py diff --git a/memos/models.py b/memos/models.py index 5406b40..9f1727b 100644 --- a/memos/models.py +++ b/memos/models.py @@ -105,6 +105,11 @@ class EntityTagModel(Base): tag_id: Mapped[int] = mapped_column(Integer, ForeignKey("tags.id"), nullable=False) source: Mapped[MetadataSource] = mapped_column(Enum(MetadataSource), nullable=False) + __table_args__ = ( + Index("idx_entity_tag_entity_id", "entity_id"), + Index("idx_entity_tag_tag_id", "tag_id"), + ) + class EntityMetadataModel(Base): __tablename__ = "metadata_entries" @@ -120,6 +125,11 @@ class EntityMetadataModel(Base): data_type: Mapped[MetadataType] = mapped_column(Enum(MetadataType), nullable=False) entity = relationship("EntityModel", back_populates="metadata_entries") + __table_args__ = ( + Index("idx_metadata_entity_id", "entity_id"), + Index("idx_metadata_key", "key"), + ) + class PluginModel(Base): __tablename__ = "plugins" diff --git a/migrations/alembic/versions/04acdaf75664_add_indices_to_entitytags_and_metadata.py b/migrations/alembic/versions/04acdaf75664_add_indices_to_entitytags_and_metadata.py new file mode 100644 index 0000000..2906d3e --- /dev/null +++ b/migrations/alembic/versions/04acdaf75664_add_indices_to_entitytags_and_metadata.py @@ -0,0 +1,36 @@ +"""Add indices to EntityTags and Metadata + +Revision ID: 04acdaf75664 +Revises: 00904ac8c6fc +Create Date: 2024-08-14 12:18:46.039436 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision: str = '04acdaf75664' +down_revision: Union[str, None] = '00904ac8c6fc' +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.create_index('idx_entity_tag_entity_id', 'entity_tags', ['entity_id'], unique=False) + op.create_index('idx_entity_tag_tag_id', 'entity_tags', ['tag_id'], unique=False) + op.create_index('idx_metadata_entity_id', 'metadata_entries', ['entity_id'], unique=False) + op.create_index('idx_metadata_key', 'metadata_entries', ['key'], unique=False) + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.drop_index('idx_metadata_key', table_name='metadata_entries') + op.drop_index('idx_metadata_entity_id', table_name='metadata_entries') + op.drop_index('idx_entity_tag_tag_id', table_name='entity_tags') + op.drop_index('idx_entity_tag_entity_id', table_name='entity_tags') + # ### end Alembic commands ###