PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

कुप्पी-SQLAlchemy लोअर केस इंडेक्स - कार्यात्मक लंघन, SQLAlchemy प्रतिबिंब द्वारा समर्थित नहीं है

आपको UNIQUE INDEX जोड़ना होगा मैन्युअल रूप से एलेम्बिक के execute का उपयोग करना तरीका। अपनी माइग्रेशन स्क्रिप्ट में कुछ इस तरह जोड़ें।

from alembic import op
# ...

def upgrade():
    # ...
    op.execute(
        """ CREATE UNIQUE INDEX users_normalized_username
            ON users
            (lower(username))
        """
    )

def downgrade():
    # ...
    op.execute("DROP INDEX users_normalized_username")

आप एक ColumnProperty भी जोड़ सकते हैं इसलिए आपके पास username . के सामान्यीकृत प्रतिनिधित्व तक पहुंच है ।

from sqlalchemy import Column, String, func, orm

class User(Base):
    __tablename__ = 'users'

    username = Column(String(32))
    normalized_username = orm.column_property(func.lower(username))

    # ...

यह आपके डेटाबेस में एक अतिरिक्त कॉलम नहीं बनाएगा लेकिन आप इसके खिलाफ क्वेरी और तुलना करने में सक्षम होंगे।

session.query(User).filter(User.normalized_username == func.lower(username)).first()


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बहु-आयामी सरणी को एकत्रित करने के लिए फ़ंक्शन में प्रारंभिक सरणी

  2. हालिया रिलीज के साथ नई और विकसित पोस्टग्रेएसक्यूएल एंटरप्राइज़ सुविधाएं

  3. PGAdmin से CSV फ़ाइल आयात करने का प्रयास करते समय अनुमति अस्वीकृत

  4. SQL क्वेरी स्तंभ मौजूद नहीं है त्रुटि

  5. पोर्ट 5432 अवरुद्ध होने पर pg_dump दूरस्थ सर्वर से डेटाबेस पोस्टग्रेज करता है