add some indexes to speed up search by query

This commit is contained in:
Son Nguyen Kim 2021-08-03 19:13:48 +02:00
parent fb29503b81
commit e9538a62be
2 changed files with 38 additions and 3 deletions

View File

@ -1047,10 +1047,10 @@ class Alias(db.Model, ModelMixin):
user_id = db.Column(
db.ForeignKey(User.id, ondelete="cascade"), nullable=False, index=True
)
email = db.Column(db.String(128), unique=True, nullable=False)
email = db.Column(db.String(128), unique=True, nullable=False, index=True)
# the name to use when user replies/sends from alias
name = db.Column(db.String(128), nullable=True, default=None)
name = db.Column(db.String(128), nullable=True, default=None, index=True)
enabled = db.Column(db.Boolean(), default=True, nullable=False)
@ -1070,7 +1070,7 @@ class Alias(db.Model, ModelMixin):
db.ForeignKey("directory.id", ondelete="cascade"), nullable=True
)
note = db.Column(db.Text, default=None, nullable=True)
note = db.Column(db.Text, default=None, nullable=True, index=True)
# an alias can be owned by another mailbox
mailbox_id = db.Column(

View File

@ -0,0 +1,35 @@
"""empty message
Revision ID: 62727e7cde50
Revises: ffa75d04e6ef
Create Date: 2021-08-03 19:12:31.500066
"""
import sqlalchemy_utils
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = '62727e7cde50'
down_revision = 'ffa75d04e6ef'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_index(op.f('ix_alias_email'), 'alias', ['email'], unique=True)
op.create_index(op.f('ix_alias_name'), 'alias', ['name'], unique=False)
op.create_index(op.f('ix_alias_note'), 'alias', ['note'], unique=False)
op.drop_constraint('gen_email_email_key', 'alias', type_='unique')
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_unique_constraint('gen_email_email_key', 'alias', ['email'])
op.drop_index(op.f('ix_alias_note'), table_name='alias')
op.drop_index(op.f('ix_alias_name'), table_name='alias')
op.drop_index(op.f('ix_alias_email'), table_name='alias')
# ### end Alembic commands ###