Skip to content
Snippets Groups Projects
Commit ccb6945a authored by Rajmund Hruška's avatar Rajmund Hruška
Browse files

Feature: Add CHECK constraint for email and login. (Redmine issue: #7593)

parent d441e13a
No related branches found
No related tags found
No related merge requests found
"""Lowercase check constraint
Revision ID: 432c8bc8e49b
Revises: 426e6e986b40
Create Date: 2022-07-19 11:48:46.111909
"""
from alembic import op
# revision identifiers, used by Alembic.
revision = '432c8bc8e49b'
down_revision = '426e6e986b40'
branch_labels = None
depends_on = None
def upgrade():
op.execute("ALTER TABLE users ADD CONSTRAINT login_lowercase CHECK (login = lower(login))")
op.execute("ALTER TABLE users ADD CONSTRAINT email_lowercase CHECK (email = lower(email))")
def downgrade():
op.execute("ALTER TABLE users DROP CONSTRAINT login_lowercase")
op.execute("ALTER TABLE users DROP CONSTRAINT email_lowercase")
...@@ -188,9 +188,9 @@ class UserModel(MODEL): ...@@ -188,9 +188,9 @@ class UserModel(MODEL):
""" """
__tablename__ = 'users' __tablename__ = 'users'
login = sqlalchemy.Column(sqlalchemy.String(50), unique = True, index = True) login = sqlalchemy.Column(sqlalchemy.String(50), sqlalchemy.CheckConstraint('login = lower(login)', name='login_lowercase'), unique = True, index = True)
fullname = sqlalchemy.Column(sqlalchemy.String(100), nullable = False) fullname = sqlalchemy.Column(sqlalchemy.String(100), nullable = False)
email = sqlalchemy.Column(sqlalchemy.String(250), nullable = False) email = sqlalchemy.Column(sqlalchemy.String(250), sqlalchemy.CheckConstraint('email = lower(email)', name='email_lowercase'), nullable = False)
organization = sqlalchemy.Column(sqlalchemy.String(250), nullable = False) organization = sqlalchemy.Column(sqlalchemy.String(250), nullable = False)
roles = sqlalchemy.Column(sqlalchemy.dialects.postgresql.ARRAY(sqlalchemy.String(20), dimensions = 1), nullable = False, default = []) roles = sqlalchemy.Column(sqlalchemy.dialects.postgresql.ARRAY(sqlalchemy.String(20), dimensions = 1), nullable = False, default = [])
password = sqlalchemy.Column(sqlalchemy.String) password = sqlalchemy.Column(sqlalchemy.String)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment