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

SQLAlchemy के साथ Postgres में Enum की सरणी

मुझे SqlAlchemy स्रोत कोड में अच्छा समाधान मिला:

import re

from sqlalchemy import TypeDecorator, cast
from sqlalchemy.dialects.postgresql import ARRAY


class ArrayOfEnum(TypeDecorator):

    impl = ARRAY

    def bind_expression(self, bindvalue):
        return cast(bindvalue, self)

    def result_processor(self, dialect, coltype):
        super_rp = super(ArrayOfEnum, self).result_processor(dialect, coltype)

        def handle_raw_string(value):
            inner = re.match(r"^{(.*)}$", value).group(1)

            return inner.split(",") if inner else []

        def process(value):
            if value is None:
                return None

            return super_rp(handle_raw_string(value))

        return process

और अब:

achievements = Column(ArrayOfEnum(Enum(AchievementsType)))

और फिर:

career.achievements = [AchievementsType.world, AchievementsType.local]


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बैच फ़ाइल में pg_dump द्वारा सभी डीबी का बैकअप कैसे लें - पोस्टग्रेज

  2. दो तालिकाओं में कैसे शामिल हों, उनमें से एक में प्राथमिक कुंजी नहीं है और समान वर्ण लंबाई नहीं है

  3. मैं कॉलम को दो टेबल से एक आउटपुट में कैसे मर्ज कर सकता हूं?

  4. प्रोग्रामेटिक रूप से एक पोस्टग्रेएसक्यूएल डेटाबेस बनाएं

  5. Django में SearchVector और SearchQuery के साथ असंगत का उपयोग करना