विषय पर बढ़ें

नोट्स जारी करें

0.20.1

✨ बड़े बदलाव

  • ध्यान दें कि यह dv2 के समर्थन के साथ ormar का पहला गैर-बीटा रिलीज़ है। 0.20.0 रिलीज़ नोट्स और https://collerek.github.io/ormar/0.20.0b1/migration /

🐛 मरम्मत

  • चयन \ _ lated और pre\ _ lated # 906 का उपयोग करते समय नमूना समान लक्ष्य विलय को ठीक करें
  • पीके-ओनली मॉडल # 812 से संबंधित सेव इश्यू को ठीक करें
  • एक ही रिश्ते को कई बार जोड़ने से रिश्ते कैश # 1335 भ्रष्ट हो जाएगा

✨ सुविधा

  • @ cmynn # 1276 के माध्यम से विदेशी कुंजी अनुक्रमित जोड़ने की अनुमति दें

💬अन्य

  • @Chaoyingz ने कुछ दस्तावेज तय किए, धन्यवाद!

0.20.0

✨ बड़े बदलाव

  • उमर, नमूना विन्यास

    अब, प्रत्येक ormar नमूना को एक ormar \ _ config पैरामीटर की आवश्यकता होती है, जो मेटा वर्ग को परिभाषित करने के बजाय marConfig वर्ग का एक उदाहरण है। ध्यान दें कि संपत्ति का नाम ormar \ _ config होना चाहिए और config वर्ग का एक उदाहरण होना चाहिए।

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    आयात डेटाबेस
    आयात करें
    आयात sqlalchआयात करें
    
    डेटाबेस = डेटाबेस। डेटाबेस ("sqlite: //db.sqlite")
    मेटाडेटा = वर्गधर्मी। मेटाडेटा ()
    
    # ओमार <0.20
    कक्षा अल्बूm (ormar. Model):
        कक्षा मेटा:
            डेटाबेस = डेटाबेस
            मेटाडेटा = मेटाडेटा
            टेबलनाम = "एल्बम"
    
        आईडी: int = ormar। पूर्णांक (primary_key = True)
        नाम: str = ormar। स्ट्रिंग (max_length = 100)
        पसंदीदा: बूल = ormar। बूलियन (default = False)
    
    # ormar> = 0.20
    कक्षा एल्बम V20 (ormar. Model):
        ormar_config = ormar। marConfig (
            डेटाबेस = डेटाबेस,
            मेटाडेटा = मेटाडेटा,
            टेबलनाम = "एल्बम_वी 20"
        )
    
        आईडी: int = ormar। पूर्णांक (primary_key = True)
        नाम: str = ormar। स्ट्रिंग (max_length = 100)
        पसंदीदा: बूल = ormar। बूलियन (default = False)
    
  • marConfig api / पैरामीटर

    Mmar \ _ config मेटा वर्ग द्वारा प्रदान की गई सेटिंग्स के समान सेट को उजागर करता है। यह माध्य है कि आप निम्न मापदंडों में से किसी के साथ कॉन्फ़िगरेशन को आरंभ कर सकते हैं:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    मेटाडेटा: वैकल्पिक [वर्गधर्मी। मेटाडेटा]
    डेटाबेस: वैकल्पिक [डेटाबेस। डेटाबेस]
    इंजन: वैकल्पिक [sqlalchemy.engine। इंजन]
    टेबलनाम: वैकल्पिक [str]
    order_by: वैकल्पिक [सूची [str]]
    सार: बूल
    _ माता-पिता _ फ़ील्ड्स को बाहर करें: वैकल्पिक [सूची [str]]
    queryset_class: टाइप करें [QuerySet]
    अतिरिक्त: अतिरिक्त
    बाधाएं: वैकल्पिक ColumnCollectionConstraint
    
  • बेसमेटा समकक्ष - सर्वश्रेष्ठ अभ्यास

    कृपया ध्यान दें कि कोड दोहराव को कम करने और विकास को सरल बनाने के क्रमबद्ध करना में, अभी भी एक बुनियादी कॉन्फ़िगरेशन बनाने और प्रत्येक नमूना की एक प्रति प्रदान करने की सिफारिश की जाती है। marConfig इसके लिए एक सुविधाजनक प्रतिकृति विधि प्रदान करता है।

    प्रतिलिपि विधि marConfig init के समान तर्क लेती है, इसलिए आप आवश्यकतानुसार ओवरराइड कर सकते हैं, लेकिन डिफ़ॉल्ट रूप से यह मौजूदा गुणों को वापस कर देगा, टेबलनाम, क्रमबद्ध करना \ _ द्वारा, और बाधाओं को छोड़कर जो डिफ़ॉल्ट रूप से साफ़ किए जाते हैं।

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    आयात डेटाबेस
    आयात करें
    आयात sqlalchआयात करें
    
    base_ormar_config = ormar। marConfig (
        डेटाबेस = डेटाबेस। डेटाबेस ("sqlite: //db.sqlite"),
        मेटाडेटा = वर्गधर्मी। मेटाडेटा ()
    )
    
    कक्षा एल्बम V20 (ormar. Model):
        ormar _ config = आधार _ ormar _ config कॉपी (
            टेबलनाम = "एल्बम_वी 20"
        )
    
        आईडी: int = ormar। पूर्णांक (primary_key = True)
        नाम: str = ormar। स्ट्रिंग (max_length = 100)
    
    क्लास ट्रैक V20 (ormar. Model):
        ormar _ config = आधार _ ormar _ config कॉपी (
            टेबलनाम = "ट्रैक_वी 20"
        )
    
        आईडी: int = ormar। पूर्णांक (primary_key = True)
        नाम: str = ormar। स्ट्रिंग (max_length = 100)
    
  • विकल्प फ़ील्ड पैरामीटर अब समर्थित नहीं हैं।

    संस्करण 0.20 से पहले, आप स्वीकार्य मूल्यों को प्रतिबंधित करने के लिए किसी भी मौजूदा ormar फ़ील्ड को विकल्प तर्क प्रदान कर सकते हैं। यह सुविधा हटा दी गई है और आपको ormar का उपयोग करना चाहिए। इस उद्देश्य के लिए डिज़ाइन किया गया Enum फ़ील्ड। यदि आप डेटाबेस फ़ील्ड प्रकारों (यानी पूर्णांक फ़ील्ड) को संरक्षित करना चाहते हैं, तो आप हमेशा एक कस्टम सत्यापनकर्ता लिख सकते हैं।

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    आयात डेटाबेस
    आयात करें
    आयात sqlalchआयात करें
    
    डेटाबेस = डेटाबेस। डेटाबेस ("sqlite: //db.sqlite")
    मेटाडेटा = वर्गधर्मी। मेटाडेटा ()
    
    # ओमार <0.20
    कक्षा कलाकार (ormar. Model):
        कक्षा मेटा:
            डेटाबेस = डेटाबेस
            मेटाडेटा = मेटाडेटा
    
        आईडी: int = ormar। पूर्णांक (primary_key = True)
        नाम: str = ormar। स्ट्रिंग (max_length = 100)
        देश: str = ormar। स्ट्रिंग (डिफ़ॉल्ट = गलत, अधिकतम_लंबाई = 50, विकल्प = ["यूके", "यूएस", "वियतनाम", "कोलंबिया"])
    
    # ormar> = 0.20
    enum से Enum आयात
    
    कक्षा देश (str, Enum):
        यूके = "यूके"
        यूएस = "यूएस"
        VIETNAM = "वियतनाम"
        कोलंबिया = "कोलंबिया"
    
    कक्षा कलाकार V20 (ormar. Model):
        ormar_config = ormar। marConfig (
            डेटाबेस = डेटाबेस,
            मेटाडेटा = मेटाडेटा,
            टेबलनाम = "कलाकार_वी 20"
        )
    
        आईडी: int = ormar। पूर्णांक (primary_key = True)
        नाम: str = ormar। स्ट्रिंग (max_length = 100)
        देश: देश = ormar। Enum (enum_class = Country)
    
  • d\ _ केवल अब फ़ील्ड मापदंडों का समर्थन नहीं करता है

    pyd\ _ केवल फ़ील्ड को v 0.20 में पदावनत और हटा दिया गया है। mar pydफ़ील्ड को सामान्य pydमॉडल की तरह परिभाषित करने की अनुमति देता है।

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    आयात डेटाबेस
    आयात करें
    आयात sqlalchआयात करें
    
    डेटाबेस = डेटाबेस। डेटाबेस ("sqlite: //db.sqlite")
    मेटाडेटा = वर्गधर्मी। मेटाडेटा ()
    
    # ओमार <0.20
    क्लास डिश (ormar. Model):
        कक्षा मेटा:
            डेटाबेस = डेटाबेस
            मेटाडेटा = मेटाडेटा
            टेबलनाम = "व्यंजन"
    
        आईडी: int = ormar। पूर्णांक (primary_key = True)
        नाम: str = ormar। स्ट्रिंग (max_length = 100)
        कुक: str = ormar। स्ट्रिंग (max_length = 40, pydantic_only = True, डिफ़ॉल्ट = "sam")
    
    # ormar> = 0.20
    कक्षा DishV20 (ormar. Model):
        ormar_config = ormar। marConfig (
            डेटाबेस = डेटाबेस,
            मेटाडेटा = मेटाडेटा,
            टेबलनाम = "व्यंजन_v20"
        )
    
        आईडी: int = ormar। पूर्णांक (primary_key = True)
        नाम: str = ormar। स्ट्रिंग (max_length = 100)
        कुक: str = "sam" # यह सामान्य पाइडेंटिक क्षेत्र है
    
  • अब संपत्ति \ _ क्षेत्र सज्जाकार का समर्थन नहीं करता है

    संपत्ति \ _ क्षेत्र डेकोरेटर का उपयोग शब्दकोश / क्रमबद्ध JSप्रतिनिधित्व में निहित गणना किए गए फ़ील्ड को पास करने का एक तरीका प्रदान करने के लिए किया जाता नमूना है। d2. X संस्करण ने इस संभावना को पेश किया, इसलिए अब आपको dमूल संस्करण पर स्विच करना चाहिए।

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    आयात डेटाबेस
    आयात करें
    आयात sqlalchआयात करें
    पाइडेंटिक आयात करें
    
    डेटाबेस = डेटाबेस। डेटाबेस ("sqlite: //db.sqlite")
    मेटाडेटा = वर्गधर्मी। मेटाडेटा ()
    
    # ओमार <0.20
    कक्षा कर्मचारी (ormar. Model):
        कक्षा मेटा:
            डेटाबेस = डेटाबेस
            मेटाडेटा = मेटाडेटा
    
        आईडी: int = ormar। पूर्णांक (primary_key = True)
        पहला_नाम: str = ormar। स्ट्रिंग (max_length = 100)
        last_name: str = ormar। स्ट्रिंग (max_length = 100)
    
        @ Ormar.property_field ()
        defull_name (self) -> str:
            रिटर्न एफ "{self.first_name}{self.last_name}"
    
    # ormar> = 0.20
    कक्षा कर्मचारी V20 (ormar. Model):
        ormar_config = ormar। marConfig (
            डेटाबेस = डेटाबेस,
            मेटाडेटा = मेटाडेटा,
        )
    
        आईडी: int = ormar। पूर्णांक (primary_key = True)
        पहला_नाम: str = ormar। स्ट्रिंग (max_length = 100)
        last_name: str = ormar। स्ट्रिंग (max_length = 100)
    
        @Pydantic computed_field ()
        defull_name (self) -> str:
            रिटर्न एफ "{self.first_name} {self.last_name}"
    
  • पदावनत विधि

    नीचे सूचीबद्ध सभी तरीकों को हटा दिया गया है और इसे ओरमार के संस्करण 0.30 में हटा दिया जाएगा।

    • t () नमूना हो जाता है \ _ डंप ()

      आयात डेटाबेस आयात करें आयात sqlalchआयात करें

      डेटाबेस = डेटाबेस। डेटाबेस ("sqlite: //db.sqlite") मेटाडेटा = वर्गधर्मी। मेटाडेटा ()

      कक्षा अल्बूm (ormar. Model): ormar_config = ormar। marConfig ( डेटाबेस = डेटाबेस, मेटाडेटा = मेटाडेटा, टेबलनाम = "एल्बम" )

      1
      2
      3
      आईडी: int = ormar। पूर्णांक (primary_key = True)
      नाम: str = ormar। स्ट्रिंग (max_length = 100)
      पसंदीदा: बूल = ormar। बूलियन (default = False)
      

      एल्बम = एल्बम (नाम = "डार्क साइड ऑफ द मून")

      ओमार <0.20

      एल्बम_डिक्ट = एल्बम। ()

      ormar> = 0.20

      नया_एल्बम_डिक्ट = एल्बम.मॉडल_डंप ()

    कृपया ध्यान दें कि पैरामीटर समान हैं, अर्थात् शामिल करें, बाहर करें, आदि।

    • JS() नमूना हो जाता है \ _ डंप \ _ json ()

       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      आयात डेटाबेस
      आयात करें
      आयात sqlalchआयात करें
      
      डेटाबेस = डेटाबेस। डेटाबेस ("sqlite: //db.sqlite")
      मेटाडेटा = वर्गधर्मी। मेटाडेटा ()
      
      कक्षा अल्बूm (ormar. Model):
          ormar_config = ormar। marConfig (
              डेटाबेस = डेटाबेस,
              मेटाडेटा = मेटाडेटा,
              टेबलनाम = "एल्बम"
          )
      
          आईडी: int = ormar। पूर्णांक (primary_key = True)
          नाम: str = ormar। स्ट्रिंग (max_length = 100)
          पसंदीदा: बूल = ormar। बूलियन (default = False)
      
      एल्बम = एल्बम (नाम = "डार्क साइड ऑफ द मून")
      
      # ओमार <0.20
      एल्बम_जसन = एल्बम। जसन ()
      
      # ormar> = 0.20
      new_album_dict = album.model_dump_json ()
      

      कृपया ध्यान दें कि पैरामीटर समान हैं, अर्थात् शामिल करें, बाहर करें, आदि।

    • निर्माण () नमूना बन जाता है \ _ निर्माण ()

      आयात डेटाबेस आयात करें आयात sqlalchआयात करें

      डेटाबेस = डेटाबेस। डेटाबेस ("sqlite: //db.sqlite") मेटाडेटा = वर्गधर्मी। मेटाडेटा ()

      कक्षा अल्बूm (ormar. Model): ormar_config = ormar। marConfig ( डेटाबेस = डेटाबेस, मेटाडेटा = मेटाडेटा, टेबलनाम = "एल्बम" )

      1
      2
      3
      आईडी: int = ormar। पूर्णांक (primary_key = True)
      नाम: str = ormar। स्ट्रिंग (max_length = 100)
      पसंदीदा: बूल = ormar। बूलियन (default = False)
      

      परम = { "नाम": "चंद्रमा का डार्क साइड", "पसंदीदा": सच है, }

      ओमार <0.20

      एल्बम = एल्बम। निर्माण (** params)

      ormar> = 0.20

      एल्बम = मॉडल_कंस्ट्रक्शन (** params)

    निर्माण के बारे में अधिक जानने के लिए, dप्रलेखन देखें।

0.12.2

✨ सुविधाएँ

  • नवीनतम संस्करण में Fसमर्थन अपग्रेड करें (0.97.0) # 1110
  • पायथन 3.11 # 1110 के लिए समर्थन और परीक्षण जोड़ना

0.12.1

✨ सुविधाएँ

  • मॉडल और संबंधित मॉडलों के पुनरावर्ती लोडिंग और कैशिंग के कारण, लोडिंग मॉडल के प्रदर्शन में बहुत सुधार हुआ है। (@erichaydel - धन्यवाद!) # 853

💬 आंतरिक संरचना

  • कार्यान्वित प्रवृत्ति परिवर्तनों के प्रदर्शन प्रभावों की तुलना करने के लिए बेंचमार्क (फिर से, @erichaydel द्वारा - धन्यवाद!) # 853

0.12.0

✨ बड़े बदलाव

  • Query.\ _ अब खाली नमूना सूची पर Motyबढ़ाएगा (by @ponyteler - धन्यवाद!) # 853

✨ सुविधाएँ

  • Mo.upsert () अब एक ध्वज को संभालता है \ _ \ _ बल _सहेजें _\ _: bool, सम्मिलित मॉडल को अपडेट करने की अनुमति देता है, भले ही उनके पास प्राथमिक कुंजी सेट हो। ध्यान दें कि इस ध्वज को सेट करने से प्रत्येक अपडेट सम्मिलित नमूना के लिए दो प्रश्न होंगे -> यह जांचने के लिए कि क्या नमूना मौजूद है और बाद में तदनुसार अपडेट / सम्मिलित करें। अध्याय 889

🐛

  • एक खाली रिश्ता तय किया जिसने कंस्ट्रक्टर को तोड़ दिया (by @ Abdeldjalil-H - धन्यवाद!) # 870
  • एक सेव-संबंधित समस्या को ठीक करें जो pks सेट के साथ मॉडल को नहीं बचाता है (including uuids) # 885
  • बहिष्करण क्रमबद्ध करना # 779 के आधार पर गलत संबंध बहिष्करण को ठीक करें
  • संपत्ति को ठीक करें \ _ फ़ील्ड सही ढंग से विरासत में नहीं मिला # 774

0.11.3

✨ सुविधाएँ

  • Onमें onऔर onसंदर्भ संचालन रिकॉर्ड करें और रिश्ते के व्यवहार को निर्दिष्ट करने के लिए एक रेफरेंशियलएक्शन गणना प्रदान करें (by @SepehrBazyar - धन्यवाद!) # 724
  • मॉडल मेटा में समर्थित बाधाओं के लिए चेककॉलम जोड़ना (by @SepehrBazyar - Thanks!) # 729

🐛

  • क्वेरी परिणामों को 0 तक सीमित करने के लिए खाली सूची वापस करनी चाहिए (by @SepehrBazyar - धन्यवाद!) # 766

दूसरों 💬

  • प्रलेखन में डार्क मोड जोड़ना (by @SepehrBazyar - Thanks!) # 717
  • अद्यतन ysql निर्भरता # 778

0.11.2

🐛

  • डेटाबेस ड्राइवरों की मरम्मत की आवश्यकता है, और उन्हें वैकल्पिक होना चाहिए।
  • पोस्टग्रेस # 704 में सीमा \ _ कच्चे \ _ sql ध्वज के बिना सीमा क्वेरी में बूलियन फ़ील्ड समस्या को ठीक करें
  • स्कीमा के लिए enum \ _ वर्ग अतिप्रवाह को ठीक करें जिससे # 699 में त्रुटि हो

0.11.1

🐛

  • d# 685 में पेश किए गए गहरे प्रतिकृति मुद्दे को ठीक करें

0.11.0

✨ बड़े बदलाव

  • पायथन के लिए ड्रॉप समर्थन
  • Query.\ _ or \ _ अब एक ट्यूपल लौटाता है जिसमें नमूना और एक बूलियन होता है जो दर्शाता है कि क्या नमूना बनाया गया है (by @MojixCoder - धन्यवाद!) # 554
  • Query.() अब डिफ़ॉल्ट रूप से विभिन्न माता-पिता नमूना पंक्तियों की संख्या गिनता है, आप अद्वितीय = गलत सेट करके सभी पंक्तियों की गिनती कर सकते हैं (by@erichaydel - धन्यवाद) # 588

✨ सुविधाएँ

  • पायथन 3.10 के लिए समर्थन जोड़ा गया

🐛

  • सेव और बल्क \ _ क्रिएट # 584 में असंगत JSफ़ील्ड व्यवहार को ठीक करें
  • अधिकतम पुनरावृत्ति त्रुटि # 580 ठीक करें

0.10.25

✨ सुविधाएँ

  • मॉडल में Query\ _ वर्ग विकल्प जोड़ना। मेटा आपके नमूना के साथ Queryको बदलना आसान बनाता है (by @ponyteler - धन्यवाद!) # 538
  • अतिरिक्त kwarको exमें पारित करने की अनुमति देता है, जिसे sqlalchइंडेक्स में पारित किया जाएगा (by @zevisert - धन्यवाद) # 575

🐛

  • JSफ़ील्ड # 529 के लिए अशक्त सेटिंग ठीक करें
  • json के बजाय orjson का उपयोग करते समय बैच संचालन में बाइट्स / str बेमेल को ठीक करें (by @ponyteler - धन्यवाद!) # 538

0.10.24

✨ सुविधाएँ

  • पोस्ट जोड़ें \ _ बल्क \ _ अपडेट सिग्नल (by @ponyteller - धन्यवाद!) # 524

🐛

  • pydके लिए फिक्स समर्थन 1.9.0 # 502
  • दिनांक और समय # 504 के लिए समय क्षेत्र जारी करें
  • पोस्ट gres सरणी # / hat / ormar-postgres-extensions को अनलॉक करने के लिए क्वेरी जनरेशन में टेक्स्ट बाइंडिंग निकालें
  • JSफ़ील्ड # 519 का बैच अपडेट ठीक करें

दूसरों 💬

  • डेटाबेस निष्पादित \ _ कई उप-इष्टतम कार्यान्वयन को दरकिनार करके थोक \ _ प्रदर्शन में सुधार करें. (@Mng-dev-ai Thanks!) # 520
  • प्रभाव मिनट। आवश्यक डेटाबेस संस्करण> = 5.4 है।

0.10.23

✨ सुविधाएँ

  • कॉलम # 485 बनाते समय sqlalchमें टिप्पणियों को पारित करने की क्षमता जोड़ी गई

🐛

  • बड़े बाइनरी फ़ील्ड को ठीक करें जो खाली हो सकते हैं # 409
  • ओमार बनाओ। मॉडल उपलब्ध # 413
  • पहले बनाओ () and get () मापदंडों के बिना उपयोगकर्ता द्वारा निर्धारित मुख्य कुंजी के क्रमबद्ध करना नमूना के प्रदर्शन का सम्मान करें, प्राथमिक कुंजी (क्रमशः asc और desc) # 453
  • गैर-उर्फ जॉइन क्लॉज के गलत संदर्भ को पोस्टग्रेस # 455 में ठीक करें

0.10.22

🐛

  • माता-पिता ormar नमूना # 365 सेट करते समय सत्यापनकर्ताओं के लिए गर्म फिक्स विरासत में नहीं मिला है

0.10.21

🐛

  • कंस्ट्रक्टर क्लास विधि का एक ormar कार्यान्वयन जोड़ता है, जो इनपुट को मान्य किए बिना नमूना उदाहरणों को बनाने की अनुमति देता है, पूरी प्रक्रिया को गति देने के लिए (यदि आपका डेटा पहले से ही मान्य है) # 318
  • ormar मॉडल से "विरासत" क्षेत्र सत्यापनकर्ताओं के साथ एक समस्या को ठीक करता है जब प्राप्त \ _ pyd# 365 का उपयोग करके नए बनाए गए pydमॉडल उत्पन्न करता है

0.10.20

✨ सुविधाएँ

  • मॉडल में एक अतिरिक्त पैरामीटर जोड़ता है। मेटा जो Extra.और Extra.(default) को स्वीकार करता है, और ormar नमूना को दिए गए अतिरिक्त फ़ील्ड को अनदेखा करता है, या एक अपवाद फेंकता है जब यह एक अपवाद # 358 का सामना करता है

🐛

  • यदि फ़ील्ड अशक्त है और विकल्प # 354 सेट हैं तो "कोई नहीं" की अनुमति नहीं है
  • ऑटो-वेतन वृद्धि और स्पष्ट अशक्त सेटिंग्स के बावजूद, माइग्रेशन मुद्दों से बचने के लिए हमेशा प्राथमिक \ _ कुंजी को गैर-अशक्त पर सेट करें # 348

0.10.19

✨ सुविधाएँ

  • 307 में मल्टी-कॉलम गैर-अद्वितीय exके लिए समर्थन जोड़ा गया

  • pydमॉडल और अंतर्निहित sql कॉलम # 308 के लिए विभिन्न अशक्त सेटिंग्स की अनुमति देने के लिए sql \ _ nullफ़ील्ड विशेषता जोड़ें

🐛

  • प्रदर्शन # 337 को बेहतर बनाने के लिए आरेख कैशिंग सक्षम करें
  • अशक्त फ़ील्ड # 339 पर प्रलेखन को स्पष्ट और ठीक करें

दूसरों 💬

  • समर्थित डेटाबेस संस्करण को <= 5.2 में अपग्रेड करें।

0.10.18

🐛

  • Pydantic में फ़ील्ड क्रमबद्ध करना नमूना # 328
  • मरम्मत डेटाबेस 0.5.0 समर्थन #

0.10.17

✨ सुविधाएँ

  • डिफ़ॉल्ट pydप्रकार जो नमूना फ़ील्ड # 312 को ओवरराइड करने की अनुमति देता है
  • Sqlalchemy> = 1.4 के लिए समर्थन जोड़ा गया (डेटाबेस की आवश्यकता है> = 0.5.0 #

0.10.16

✨ सुविधाएँ

  • आपको ormar के लिए अपने स्वयं के pydकॉन्फ़िगरेशन को पारित करने की अनुमति देता है। मॉडल, जिसे @naturalethic (धन्यवाद!) # 285 द्वारा डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ विलय कर दिया जाएगा
  • @ merus1998 (धन्यवाद!) # 297 के माध्यम से स्मॉलइंटेगर फ़ील्ड प्रकारों को जोड़ना

🐛

  • स्कीमा # 291 में सीधे उजागर पुराने pydक्षेत्र मापदंडों को हटाकर फिक्स्ड जनरेटिंग स्कीमा
  • नमूना # 295 के माध्यम से स्वचालित रूप से उत्पन्न अनावश्यक चेतावनियों को ठीक करें

0.10.15

🐛

  • नेस्टेड मॉडल का उपयोग करके पाइडेंटिक नमूना पेड़ों को उत्पन्न करने के साथ समस्या को ठीक करें (by @pawamoy - धन्यवाद!) # 278
  • लापता प्राथमिक कुंजी क्षेत्र # 274 के बारे में चेतावनी में लापता एफ स्ट्रिंग को ठीक करें
  • रिश्तों के रूप में निश्चित पासिंग विदेशी प्रमुख मान (अतिरिक्त सुरक्षा, नवीनतम संस्करण में फिक्स्ड) #

0.10.14

✨ सुविधाएँ

  • टाइमज़ोन पास करने की अनुमति देता है: b= टाइमज़ोन-जागरूक डेटाबेस कॉलम # 264 के डेटटाइम और टाइम फ़ील्ड के लिए गलत पैरामीटर
  • दिनांक, समय और दिनांक फ़ील्ड पर फ़िल्टरिंग के लिए दिनांक, दिनांक और समय पारित करने की अनुमति देता है, ताकि मान को स्ट्रिंग्स # 79 में परिवर्तित करने के बजाय दिनांकित द्वारा फ़िल्टरिंग की अनुमति मिल सके

🐛

  • g2 से psycopg2-बाइनरी # 255 तक निर्भरता को ठीक करें

0.10.13

✨ सुविधाएँ

  • चुनिंदा \ _ lated और pre\ _ lated में पासिंग फील्ड एक्सेसर की अनुमति देता है। पायथन शैली का चयन \ _ संबंधित # 225।

    • पहले:

      प्रतीक्षा करें .select_related (["लेखक", "श्रेणियां"]).get () Author.objects.prefeach_related ("posts__categes").get ()

    • अब भी:

      प्रतीक्षा करें .select_related Post.author ([, post.categories]).get () Author.objects.prefeach_related का इंतजार करें (Author.posts.categories).get ()

🐛

  • विरासत में मिली प्राथमिक कुंजी # 253 के लिए ओवरराइडिंग डिफ़ॉल्ट मान ठीक करें

0.10.12

🐛

  • ठीक करें Query.init का उपयोग न करने की विधि (यदि कस्टम प्रदान किया गया है) # 245
  • फिक्स ForwardRefManyToMany रिलेशनशिप सेटिंग गलत pydप्रकार # 250

0.10.11

✨ सुविधाएँ

  • Queryऔर QueryProमें मान और मान \ _ सूची जोड़ता है, जिससे मूल डेटा स्रोत को क्वेरी # 223 से वापस किया जा सकता है।
    • क्वेरी से ट्यूपल्स या शब्दकोशों की सूची वापस करने की अनुमति देता है
    • डेटा को एक ormar नमूना में पार्स करना छोड़ दें, और इसलिए सत्यापन छोड़ दें
    • संबंधपरक श्रृंखलाओं के बीच मॉडल के बहिष्करण की अनुमति देता है, इसलिए आप केवल आवश्यक कॉलम निकाल सकते हैं
    • यदि केवल एक कॉलम निकाला जाता है, तो मान \ _ सूची आपको परिणाम को समतल करने की अनुमति देती है।

🐛

  • M2m संबंधपरक नमूना के माध्यम से स्वचालन बनाने के लिए ForR# 226 का उपयोग करके फिक्स्ड

0.10.10

✨ सुविधाएँ

  • Get_pydantic फ्लैग जोड़ने से आप स्वचालित रूप से ormar से एक समान pydनमूना ट्री उत्पन्न कर सकते हैं। मॉडल। इस नए उत्पन्न नमूना ट्री का उपयोग उन फ़ील्ड को बाहर करने के अनुरोधों और प्रतिक्रियाओं में किया जा सकता है जिन्हें आप अपने डेटा में शामिल नहीं करना चाहते हैं।
  • मेटा में _parent_fields पैरामीटर को छोड़कर नमूना आपको विरासत के दौरान पैरेंट नमूना से फ़ील्ड को बाहर करने की अनुमति देता है। कृपया ध्यान दें कि सबसे अच्छा अभ्यास मॉडल और मिश्रण को संयोजित करना है, लेकिन यदि आपके पास कई समान मॉडल हैं और केवल एक अलग नमूना है, तो यह इस लक्ष्य को प्राप्त करने के लिए एक उपयोगी उपकरण हो सकता है।

🐛

  • पेजिंग और रिश्तों के साथ एक खाली फिल्टर फिक्स्ड (@erichaydel के सौजन्य से) # 214
  • ठीक करें यदि # 216 से पहले सहेजा नहीं गया है, तो चाइल्ड ऑब्जेक्ट्स को रिश्ते के रिवर्स साइड पर सहेजा नहीं जाएगा

दूसरों 💬

  • Fmar अनुरोधों और प्रतिक्रियाओं में उपयोग करने के उदाहरण दिखाने के लिए प्रलेखन के Fअनुभाग का विस्तार करें।
  • डिफ़ॉल्ट मानों, ForeignKey.add, और अधिक पर बेहतर प्रलेखन।

0.10.9

महत्वपूर्ण सुरक्षा सुधार

  • सुरक्षा बग CVE-2021-29510 को ठीक करने के लिए पाइडेंटिक पिन अपडेट करें

यह अनुशंसा की जाती है कि आप pydके पैच किए गए संस्करण में अपडेट करें। 0.10.9 में, ormar निश्चित निर्भरता में कमजोरियों वाले संस्करणों को बाहर करता है।

🐛

  • लार्जबाइनरी के ओपनएपीआई आर्किटेक्चर # 204 को ठीक करें

0.10.8

🐛

  • pk \ _ केवल सबमॉडल # 202 में पैडिंग चूक को ठीक करें
  • बेस 64 स्ट्रॉ प्रतिनिधित्व का उपयोग करके लार्जबाइनरी फ़ील्ड के लिए mypy # को ठीक करें
  • e64 str प्रतिनिधित्व # के साथ बड़े बाइनरी फ़ील्ड के लिए स्कीमा प्रारूप को ठीक करें
  • e64 str प्रतिनिधित्व के साथ geBक्षेत्रों के लिए चयन एन्कोडिंग ठीक करें

0.10.7

✨ सुविधाएँ

  • जोड़ें exclude_primary_keys: bool = False डिक्ट () विधि के साथ टैग किया गया, परिणाम शब्दकोश से सभी प्राथमिक कुंजी स्तंभों को बाहर करने की अनुमति देता है
  • जोड़ें exclude_through_models: bool = False फ्लैग फॉर डिक्ट () जो सभी मॉडलों को एक MToसंबंध # से बाहर रखने की अनुमति देता है
  • जोड़ें represent_as_base64_str: bool = False बाइट लार्जबाइनरी फ़ील्ड को तर्कों को e64 एन्कोडेड स्ट्रिंग्स में परिवर्तित करने की अनुमति देता है। गुणों तक पहुँचने पर, स्ट्रिंग को डिक्ट () में वापस कर दिया जाता है और सेट होने पर स्ट्रिंग को बाइट्स में परिवर्तित कर दिया जाता है। डेटाबेस में डेटा बाइट्स में संग्रहीत किया जाता है। अध्याय 187
  • Model.pk फ़िल्टर में फ़ील्ड तक पहुँचने की अनुमति देने के लिए pk उपनाम जोड़ें और क्लॉस द्वारा क्रमबद्ध करना (python style)

🐛

  • बड़े बाइनरी फ़ील्ड # 186 की अधिकतम \ _ लंबाई के लिए डिफ़ॉल्ट कोई भी विकल्प न निकालें
  • स्ट्रिंग फ़ील्ड अधिकतम \ _ लंबाई के लिए डिफ़ॉल्ट कोई नहीं विकल्प निकालें

दूसरों 💬

  • प्रलेखन में डिक्ट () पैरामीटर प्रदान करने के लिए मार्गदर्शन और उदाहरण
  • वर्णनकर्ताओं को जादू के तरीकों में गुण प्राप्त करने / स्थापित करने का मुख्य रिफैक्टरिंग -> महत्वपूर्ण प्रदर्शन सुधार

0.10.6

✨ सुविधाएँ

  • लार्जबाइनरी जोड़ें (max\ _length) क्षेत्र प्रकार #

  • सामान्य pydक्षेत्रों के लिए समर्थन जोड़ा गया (including models) pydantic \ _ केवल विशेषता के बजाय, जो अब # 160 को हटा दिया गया है। dफ़ील्ड को सामान्य रूप से ormar फ़ील्ड के बगल में pydनमूना के रूप में घोषित किया जाना चाहिए। ध्यान दें कि (स्पष्ट रूप से) ormar डेटाबेस में इस फ़ील्ड के मान को सहेजता और लोड नहीं करता है, जो माध्य कि निम्नलिखित में से एक सत्य होना चाहिए:

    • ormar नमूना पर घोषित dफ़ील्ड वैकल्पिक होना चाहिए (default is None).
    • pydफ़ील्ड को डिफ़ॉल्ट मान पर सेट किया जाना चाहिए
    • dफ़ील्ड में डिफ़ॉल्ट \ _ फ़ंक्शन सेट है
    • Ormar। pydक्षेत्र के साथ मॉडल को ओवरराइड करना चाहिए \ _ _इनिट _\ _ () और वहाँ मूल्य प्रदान करें

    यदि उपरोक्त आदेशों में से कोई भी नहीं है (or rather pydantic) डेटाबेस से डेटा लोड करने के दौरान विफल रहता है, और घोषित pydफ़ील्ड के लिए आवश्यक मान गायब है।

  • ऑर्मर अब ओपनपी स्कीमा में सार्थक उदाहरण प्रदान करता है, जिसमें नेस्टेड मॉडल भी शामिल हैं। डिक्ट () के समान एल्गोरिदम का उपयोग करें और बिना देखे संबंधित मॉडल पर पुनरावृत्ति करने के लिए \ _ का चयन करें। उदाहरण फास्टापी में भी दिखाई देते हैं। अध्याय

🐛

  • डिफ़ॉल्ट रूप से, pydआवंटन के दौरान फ़ील्ड को मान्य नहीं करता है, जो ORM के लिए एक आदर्श सेटिंग नहीं है। अब सभी ormar। आवंटन के दौरान मॉडल का सत्यापन चालू हो गया है (e.model.column = 'value').

दूसरों 💬

  • Readme # 180 में Quमें डेटाबेस में एक कनेक्शन जोड़ें
  • आर्किटेक्चर में अब ormar शामिल नहीं है। विवरण के रूप में मॉडल दस्तावेज़ स्ट्रिंग। यदि आप अपना स्वयं का दस्तावेज़ स्ट्रिंग प्रदान नहीं करते हैं, तो आप केवल नमूना नाम प्रदान करेंगे।
  • कुछ प्रदर्शन में सुधार।

0.10.5

🐛

  • फास्टापी-पेजिनेशन # 73 में बग को ठीक करें
  • Query.all () और Queryproxall () के रिटर्न मानों में सूची से अनावश्यक वैकल्पिक # 174 निकालें
  • रन टेस्ट कवरेज दरें केवल आंतरिक पीआरएस पर जारी की जाती हैं, न कि Hub संचालन में।

0.10.4

✨ सुविधाएँ

  • पायथन शैली जोड़ें filter और order_by डंडर-सीमांकित स्ट्रिंग्स के बजाय फ़ील्ड एक्सेस का उपयोग करें। अध्याय 51
    • संपत्ति पहुंच के माध्यम से फ़ील्ड तक पहुंचना (dot chain) का उपयोग फ़िल्टरग्रुप्स के निर्माण के लिए किया जा सकता है (ormar.and _ और ओरमार।_)
    • फील्ड एक्सेस पायथन ऑपरेटरों के एक सेट को ओवरलोड करता है और बातचीत की अनुमति देने के लिए कार्यों का एक सेट प्रदान करता है**Kwarमें डंडर-सीमांकित पैरामीटर नामों में एक ही कार्यक्षमता है, जो माध्य कि मॉडल एल्बम से संबंधित नमूना मॉडल ट्रैक से क्वेरी करना अब आपको अधिक विकल्प देता है:
      • सटीक - मूल्य के लिए सटीक मैच, sql कॉलम =
        • पुराना: एल्बम \ _ _नाम _\ _ सटीक = 'मालिबू'
        • नई: Track.album.name के रूप में भी लिखा जा सकता है
      • I- सटीक मैच sql कॉलम = (Not case sensitive)
        • पुराना: एल्बम \ _ _नाम _\ _ i= 'मालिबू'
        • नई: के रूप में भी लिखा जा सकता है Track.album.name.iexact('malibu')
      • शामिल करें-sql कॉलम LIKE '%% '
        • पुराना: एल्बम \ _ _नाम _\ _ में = 'माल' है
        • नई: Track.album.name 'मल' के रूप में भी लिखा जा सकता है)
        • नई: के रूप में भी लिखा जा सकता है Track.album.name.contains('Mal')
      • आइकन - sql कॉलम LIKE '%%' (केस असंवेदनशील)
        • पुराना: एल्बम \ _ _नाम _\ _ आइकन = 'माल'
        • नई: के रूप में भी लिखा जा सकता है Track.album.name.icontains('mal')
      • -sql में column IN (<VALUE1>, <VALUE2>, ...)
        • पुराना: album__name__in=['Malibu', 'Barclay']
        • नई: के रूप में भी लिखा जा सकता है Track.album.name << ['Malibu', 'Barclay']
        • नई: के रूप में भी लिखा जा सकता है Track.album.name.in_(['Malibu', 'Barclay'])
      • null - sql कॉलम Nहै (और sql कॉलम NL नहीं है)
        • पुराना: एल्बम \ _ _नाम __null = सच (isnotnullalbum __नाम _\ _ isnull = गलत)
        • नई: Track.album.name के रूप में भी लिखा जा सकता है >> कोई नहीं
        • नई: के रूप में भी लिखा जा सकता Track.album.name isnull (True)
        • नई: अशक्त भी नहीं लिखा जा सकता है Track.album.name.isnull(False)
        • नई: अशक्त नहीं ~ के रूप में भी लिखा जा सकता है Track.album.name >> कोई नहीं)
        • नई: अशक्त भी नहीं लिखा जा सकता है ~(Track.album.name.isnull(True))
      • Gt - sql कॉलम> (Greater than)
        • पुराना: स्थिति \ _ \ _ gt = 3
        • नई: Track.album.name के रूप में भी लिखा जा सकता है> 3
      • Gte - sql कॉलम> = (ग्रेटर या के बराबर
        • पुराना: स्थिति \ _ \ _ gte = 3
        • नई: Track.album.name के रूप में भी लिखा जा सकता है> = 3
      • लेफ्टिनेंट - sql कॉलम < (Lower than)
        • पुराना: स्थिति \ _ \ _ lt = 3
        • नई: Track.album.name के रूप में भी लिखा जा सकता है <3
      • Lte - sql कॉलम <= (कम या के बराबर
        • पुराना: स्थिति \ _ \ _ lte = 3
        • नई: Track.album.name के रूप में भी लिखा जा सकता है <= 3
      • स्टार्टविथ - sql कॉलम LIKE '% ' (सटीक शुरुआत मैच)
        • पुराना: एल्बम \ _ _नाम _\ _ शुरुआत = 'माल'
        • नई: के रूप में भी लिखा जा सकता है Track.album.name.startswith('Mal')
      • Itswith - sql कॉलम LIKE '% ' (केस असंवेदनशील)
        • पुराना: album__name__istartswith='mal'
        • नई: के रूप में भी लिखा जा सकता है Track.album.name.istartswith('mal')
      • Endswith - sql कॉलम LIKE '%(पूरी तरह से मैच समाप्त होता है)
        • पुराना: एल्बम \ _ _नाम _\ _ endswith = 'ibu'
        • नई: के रूप में भी लिखा जा सकता है Track.album.name.endswith('ibu')
      • Iendswith - sql कॉलम LIKE '%(Not case sensitive)
        • पुराना: एल्बम \ _ _नाम _\ _ iendswith = 'IBU'
        • नई: के रूप में भी लिखा जा सकता है Track.album.name.iendswith('IBU')
  • आप न केवल फ़िल्टर में फ़िल्टर समूह प्रदान कर सकते हैं () and except (), लेकिन यह भी:
    • जाओ ()
    • जाओ या नहीं ()
    • प्राप्त करें या बनाएं ()
    • पहला ()
    • सभी ()
    • हटाएं ()
  • वाया फ़िल्टरग्रुप्स (ormar.and _ और ओरमार।_), अब आप उपयोग कर सकते हैं:
    • & - अगले स्तर के घोंसले के शिकार के बजाय और \ _
    • | - अगले स्तर के घोंसले के शिकार के बजाय "या \ _" के रूप में
    • ~ - फिल्टर समूह की उपेक्षा के रूप में
  • फ़िल्टर के कई सेटों को शर्तों के एक सेट में संयोजित करने के लिए, उपयोग करें और (sql AND) और | (sql OR).

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    # निम्नलिखित प्रश्न समान हैं:
    #sql: product.name = 'टेस्ट' और product.rating> = 3.0)
    
    #ormar विकल्प 1 - Oएक
    t.फिल्टर (नाम = 'टेस्ट', रेटिंग __ gte = 3.0).गेट ()
    
    # ओमार विकल्प 2 - एक पुराना
    t.फ़िल्टर (ormar.and_ (नाम = 'टेस्ट', रेटिंग __ gte = 3.0)).गेट ()
    
    # ओमार विकल्प 3 - नया एक (field access)
    t.फ़िल्टर Product.name = = 'टेस्ट') और (उत्पादक.रेटिंग> = 3.0)).गेट ()
    
  • यही बात नेस्टेड कॉम्प्लेक्स फिल्टर पर भी लागू होती है

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    # निम्नलिखित प्रश्न समान हैं:
    #sql: product.name = 'टेस्ट' और product.rating> = 3.0)
    #OR categories.name ('Toys', 'Books'))
    
    #ormar विकल्प 1 - Oएक
    t.फ़िल्टर (ormar. or _)
                              Ormar.and_ (नाम = 'टेस्ट', रेटिंग __ gte = 3.0),
                              श्रेणियां __ नाम __ में = ['खिलौने', 'किताबें'])
                          )। प्राप्त करें ()
    
    #ormar OPTION 2 - नया एक (नेस्टेड या`|` का उपयोग करने के बजाय)
    t.फ़िल्टर (
                          Ormar.and_ (नाम = 'टेस्ट', रेटिंग __ gte = 3.0) |
                          Ormar। और _ (श्रेणियां __ नाम __ इन = ['खिलौने', 'किताबें'])
                          )। प्राप्त करें ()
    
    # ओमार विकल्प 3 - नया एक (field access)
    t.फ़िल्टर (
                          ((Product.name = 'टेस्ट') और (उत्पादक.रेटिंग> = 3.0)) |
                          Product.categories.name <<['खिलौने', 'किताबें'])
                          )। प्राप्त करें ()
    
  • अब आप \ _ by () को आदेश प्रदान करने के लिए फ़ील्ड एक्सेस क्रमबद्ध करना भी उपयोग कर सकते हैं

    • आरोही क्रमबद्ध करना में:
      • पुराना: Product.objects.order_by("name").all()
      • नई: Product.objects.order_by(Product.name.asc()).all()
    • क्रमबद्ध करना उतरना:
      • पुराना: Product.objects.order_by("-name").all()
      • नई: Product.objects.order_by(Product.name.desc()).all()
    • बेशक, आप विभिन्न मॉडलों और कई आदेशों को भी जोड़ सकते हैं \ _ द्वारा: Product.objects.order_by([Product.category.name.asc(), Product.name.desc()]).all()

🐛 मरम्मत

  • वास्तव में एक बग नहीं है, लेकिन एक असंगति है। नेस्टेड मॉडल के साथ एक फिल्टर प्रदान करें, अर्थात् एल्बम \ _ _श्रेणी _\ _ नाम = 'AA' जाँच रहा है कि क्या एल्बम और श्रेणी मॉडल चुनिंदा \ में शामिल हैंlated () में, यदि नहीं, तो वे स्वचालित रूप से वहां जोड़े जाते हैं। एक ही फ़ंक्शन terपर लागू नहीं होता है (and _ और या \ ), अब यह काम करता है (पायथन शैली फिल्टर के साथ भी काम करता है जो फ़िल्टरग्रुप लौटाता है)।

0.10.3

✨ सुविधा

  • और MToअब स्किप \ _ रिवर्स का समर्थन करते हैं: बूल = गलत झंडा # 118। यदि आप स्किप \ _ रिवर्स फ्लैग को आंतरिक रूप से सेट करते हैं, तो फ़ील्ड अभी भी रिश्ते के दूसरे छोर पर पंजीकृत है, इसलिए आप कर सकते हैं:

    • रिवर्स में प्रासंगिक नमूना फ़ील्ड द्वारा फ़िल्टर नमूना
    • रिवर्स मॉडल में संबंधित मॉडल फील्ड्स द्वारा ऑर्डर \ _

    लेकिन आप नहीं कर सकते:

    • रिवर्स नमूना से संबंधित फ़ील्ड तक पहुँचने के लिए संबंधित \ _ नाम का उपयोग करें
    • यहां तक कि अगर आप नमूना के रिवर्स साइड से सहसंबंध का चयन करते हैं, तो लौटाए गए नमूना रिवर्स उदाहरण में आबादी नहीं होगी (कनेक्शन को ब्लॉक नहीं करेगा, इसलिए आप अभी भी फ़िल्टर कर सकते हैं और क्रमबद्ध करना सकते हैं)
    • यह रिश्ता डिक्ट में आबाद नहीं है () and json ()
    • नेस्टेड संबंधित वस्तुओं को डिक्ट से आबादी होने पर पारित नहीं किया जा सकता है () or json () (also via fastapi). pydकॉन्फ़िगरेशन में अतिरिक्त सेटिंग्स के आधार पर, इसे अनदेखा कर दिया जाएगा या एक त्रुटि फेंक दी जाएगी।
    • Model.save \ _ lated () अब पूरे डेटा ट्री को एक बार # माध्य बचा सकता है:

    • यह जानता है कि रिश्ते को संरक्षित करने के लिए मास्टर नमूना या संबंधित मॉडल को पहले बचाया जाना चाहिए या नहीं

    • यह मास्टर को बचाता नमूना अगर

      • यह परिरक्षित नहीं है।
      • कोई पीके मान नहीं
      • या सहेजें \ _ all = सही ध्वज सेट है

      इन मामलों में, आपको सेव को दो कॉल में विभाजित करने की आवश्यकता नहीं है (save () और सहेजें \ _ lated ())

    • यह कई-से-कई रिश्तों का भी समर्थन करता है

    • यह m2m संबंधों के लिए वैकल्पिक थ्रू नमूना मूल्यों का भी समर्थन करता है

  • नमूना संबंध फ़ील्ड नामों द्वारा अनुकूलित करने की संभावना जोड़ी गई।

  • डिफ़ॉल्ट रूप से, संबंधित नमूना नाम नमूना संबंध नाम से कम है। तो इस तरह एक उदाहरण में:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    ... ## पाठ्यक्रम घोषणा छोड़ दी गई
    कक्षा का छात्र (ormar. Model):
        कक्षा मेटा:
            डेटाबेस = डेटाबेस
            मेटाडेटा = मेटाडेटा
    
        आईडी: int = ormar। पूर्णांक (primary_key = True)
        नाम: str = ormar। स्ट्रिंग (max_length = 100)
        पाठ्यक्रम = ormar। MTo(कोर्स)
    
    ## डिफ़ॉल्ट का उत्पादन करेगा नमूना इस प्रकार है (example simplified)
    क्लास स्टूडेंटकोर्स (ormar. Model):
        कक्षा मेटा:
            डेटाबेस = डेटाबेस
            मेटाडेटा = मेटाडेटा
            टेबलनाम = "छात्र_कोर्स"
    
        आईडी: int = ormar। पूर्णांक (primary_key = True)
        छात्र = ormar। विदेशी (छात्र) ## डिफ़ॉल्ट नाम
        कोर्स = ormar। विदेशी कुंजी (कोर्स) # डिफ़ॉल्ट नाम
    
  • थ्रू नमूना में फ़ील्ड / संबंध नामों को अनुकूलित करने के लिए, अब आप MToके नए मापदंडों का उपयोग कर सकते हैं:

    • \ _ संबंध \ _ नाम के माध्यम से - क्षेत्र का नाम MToघोषित करने नमूना लिए अग्रणी है
    • \ _ रिवर्स \ _ संबंध \ _ नाम के माध्यम से - उस नमूना के फ़ील्ड नाम के लिए जो MToकी ओर जाता है

    उदाहरण:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    ... # पाठ्यक्रम घोषणा छोड़ दी गई
    कक्षा का छात्र (ormar. Model):
        कक्षा मेटा:
            डेटाबेस = डेटाबेस
            मेटाडेटा = मेटाडेटा
    
        आईडी: int = ormar। पूर्णांक (primary_key = True)
        नाम: str = ormar। स्ट्रिंग (max_length = 100)
        पाठ्यक्रम = ormar। MTo(पाठ्यक्रम,
                                   थ्रू_रिलेशन_नाम = "स्टूडेंट_आईडी",
                                   थ्रू_रिवर्स_रिलेशन_नाम = "कोर्स_आईडी")
    
    # इस प्रकार नमूना के माध्यम से डिफ़ॉल्ट उत्पादन करेगा (example simplified)
    क्लास स्टूडेंटकोर्स (ormar. Model):
        कक्षा मेटा:
            डेटाबेस = डेटाबेस
            मेटाडेटा = मेटाडेटा
            टेबलनाम = "छात्र_कोर्स"
    
        आईडी: int = ormar। पूर्णांक (primary_key = True)
        student_id = ormar। विदेशी (छात्र) #set by _relation_name
        कोर्स_आईडी = ormar। विदेशी कुंजी (कोर्स) #set by _reverset_relation_name
    

🐛 मरम्मत

  • कमजोर संदर्भ # को ठीक करें
  • pydCon.= "मनाया" सेट करते समय फ़ील्ड के माध्यम से फेंके गए बग को ठीक करें
  • पाइडेंटिक ठीक करें। ater \ _ \ में नहीं_इनिट _\ _ आरंभीकरण त्रुटि #
  • में पाइडेंटिक-प्रकार बहिष्करण त्रुटि ठीक करें (), और \ _ _सभी _\ _ कुंजी काम नहीं करता है

💬अन्य

  • मॉडल पेश करने sqlalchemistry-to-ormar लिए स्वचालित अनुवादक से लिंक करें
  • Fपारिस्थितिकी तंत्र पुस्तकालय के लिए एक लिंक प्रदान करें जो ormar का समर्थन करता है
  • दस्तावेज़ में लेनदेन जोड़ें (database support)

0.10.2

✨ सुविधा

  • Model.save_related(follow=False) अब दो अतिरिक्त पैरामीटर भी स्वीकार किए जाते हैं: Model.save_related(follow=False, save_all=False, exclude=None) ...
    • सहेजें \ _ all: b-> डिफ़ॉल्ट रूप से (so save \ _ all = False) ormar केवल अपडेट किए गए मॉडल सम्मिलित करता है (so new or updated model), के साथ \ _ all = सभी प्रासंगिक मॉडल सहेजे गए स्थिति की परवाह किए बिना सहेजे जाते हैं, जो निम्नलिखित मामलों में बहुत उपयोगी हो सकते हैं अपडेट किए गए नमूना को एपीआई से कहा जाता है, इसलिए यह बैकएंड पर नहीं बदलता है।
    • exclude: Union[Set, Dict, None] -> सेट / शब्दकोश संबंध सहेजने से बाहर करने के लिए, भले ही निम्नलिखित = सत्य और सहेजें \ _ सभी = सत्य का उपयोग किया जाता है। नेस्टेड संबंधों को बाहर करने के लिए, नेस्टेड शब्दकोश पास करें, उदाहरण के लिए: exclude={"child":{"sub_child": {"exclude_sub_child_realtion"}}} अनुमत मान फ़ील्ड का अनुसरण करते हैं / \ _ फ़ील्ड को बाहर करते हैं (from QuerySet) mएथोड स्कीमा, इसलिए जब संदेह हो, तो आप क्वेरी में प्रलेखन को संदर्भित कर सकते हैं -> वर्ड सेट का चयन करें -> फ़ील्ड
  • Mo.() विधि अब \ _ स्तंभों को स्वीकार करती है: सूची \ [str ] = कोई भी पैरामीटर नहीं है, जो अपडेट करने के लिए कॉलम नामों की सूची स्वीकार करता है। यदि पारित किया जाता है, तो डेटाबेस में केवल उन स्तंभों को अपडेट किया जाएगा। ध्यान दें कि अपडेट () आपके नमूना के उदाहरणों को ताज़ा नहीं करता है, इसलिए यदि आप \ _ कॉलम सूची में पास होने से अधिक कॉलम बदलते हैं, तो आपके नमूना उदाहरण का डेटाबेस से अलग मूल्य होगा!
  • Mo.\ _ () विधि में पहले केवल सीधे संबंधित मॉडल या नेस्टेड मॉडल शामिल थे (यदि वे गैर-अशक्त थे और आभासी नहीं थे), अब सभी संबंधित मॉडल जो पहले लूप के बिना एक्सेस नहीं किए गए थे, डिक्ट () में निहित हैं। यह नहीं टूटना चाहिए क्योंकि अधिक डेटा को शब्दकोश में डंप किया जाएगा, लेकिन इसे खोना नहीं चाहिए।
  • QuerySet.delete(each=False, **kwargs) पहले, आपको एक फ़िल्टर पास करने के लिए कहा गया था (via **Kwarया तो एक अलग फिल्टर के रूप में () call) oआर सेटिंग प्रत्येक = ट्रू अब अनन्य () कॉल को भी स्वीकार करता है जो फ़िल्टर उत्पन्न नहीं करते हैं। इसलिए, आपको पूरी तालिका को हटाने के लिए प्रत्येक = ट्रू को सेट करने की आवश्यकता है या कम से कम एक फ़िल्टर / क्लॉज को बाहर करें।
  • यही बात लागू होती है QuerySet.update(each=False, **kwargs) आपको एक फ़िल्टर पास करना भी आवश्यक है (via **Kwarया तो एक अलग फिल्टर के रूप में () call) or सेटिंग प्रत्येक = सत्य अब भी स्वीकार करता है () कॉल को छोड़कर जो फ़िल्टर उत्पन्न नहीं करते हैं। इसलिए, आपको संपूर्ण तालिका या कम से कम एक फ़िल्टर / बहिष्कृत खंड को अपडेट करने के लिए प्रत्येक = सत्य सेट करने की आवश्यकता है।
  • यही बात लागू होती है QuerysetProxy.update(each=False, **kwargs) आपको एक फ़िल्टर पास करना भी आवश्यक है (via **Kwarया तो एक अलग फिल्टर के रूप में () call) or सेटिंग प्रत्येक = सत्य अब भी स्वीकार करता है () कॉल को छोड़कर जो फ़िल्टर उत्पन्न नहीं करते हैं। इसलिए, आपको संपूर्ण तालिका या कम से कम एक फ़िल्टर / बहिष्कृत खंड को अपडेट करने के लिए प्रत्येक = सत्य सेट करने की आवश्यकता है।

🐛 मरम्मत

  • QueryProमें गलत संबंधपरक फ़ील्ड रिज़ॉल्यूशन को ठीक करें यदि fk कॉलम में एक अलग डेटाबेस उपनाम है।
  • डिक्ट () कहते समय छोरों के साथ बहुत जटिल नमूना संरचनाओं के साथ एक पुनरावर्ती बग फिक्स्ड।
  • एक बग फिक्स्ड जब दो गैर-संबंधपरक फ़ील्ड विलय किए गए थे (appeded) क्वेरी परिणामों में जब वे संबंधपरक नहीं थे (i.e. JSON)
  • एक बग फिक्स्ड जो सूची से शब्दकोश में अनुवाद के दौरान श्रृंखला में एक ही संबंधपरक नाम का उपयोग करता था, लेकिन परिणामस्वरूप विभिन्न मॉडल थे
  • संपत्ति \ _ फ़ील्ड डेकोरेटर और pydफ़ील्ड को बचाने की कोशिश करते समय बल्क \ _ त्रुटि बनाएं
  • रिवर्स रिलेशनशिप के साथ गहरे नेस्टेड चेन के खराब मर्ज को ठीक करें

💬अन्य

  • प्रदर्शन अनुकूलन
  • परीक्षण क्षेत्रों के आधार पर पैकेजों में विभाजित परीक्षण

0.10.1

सुविधा

  • \ _ या \ _ कोई नहीं मिलेगा (**Kwargs) विधि Queryऔर QueryProमें जोड़ा गया। यह के साथ काम करता है (**Kwargs) बिल्कुल समान है, लेकिन अगर कोई डेटाबेस रिकॉर्ड स्थिति से मेल नहीं खाता है, तो \ _ या \ _ प्राप्त करें कोई भी एक ormar नहीं उठाता है। Noअपवाद और बस कोई नहीं लौटाता है।

मरम्मत

  • एक समस्या को ठीक करें जहां क्रमबद्ध करना में बोली से संबंधित कॉलम नाम और तालिका नाम संदर्भ \ _ by क्लॉज पोस्टग्रेस में ठीक से काम नहीं करते हैं।

0.10.0

ब्रेक

  • लंबे समय से पदावनत फ़ील्ड परिभाषा संकेतन के लिए हटाए गए समर्थन जहां आप एक प्रकार संकेत के रूप में ormar फ़ील्ड का उपयोग करते हैं, अर्थात् test_field: ormar.Integger() = None
  • बेहतर प्रकार के संकेत -> pyy संबंधित नमूना क्षेत्रों को सही ढंग से हल कर सकता है (ForeignKey and ManyToMany) साथ ही Queryविधि का रिटर्न प्रकार। जिन लोगों का उल्लेख किया गया है वे अब सही नमूना (i.e. Book) ऑर्मर के बजाय। मॉडल प्रकार। QueryProविधि के संबंध और रिवर्स में अभी भी मुद्दे हैं, प्रकार संकेत को कम करने के लिए जो अब कोई भी लौटाता है। आंशिक फिक्स # 112।

सुविधा

  • जोड़ें select_all(follow: bool = False) Queryऔर QueryProके तरीके। यह नमूना के लोड \ _ all () विधि के समान है, लेकिन सीधे क्वेरी में उपयोग किया जा सकता है। डिफ़ॉल्ट रूप से \ _ all () केवल सीधे संबंधित मॉडल जोड़ता है, और यदि अनुसरण करें = सत्य भी संबंध में लूपिंग के बिना संबंधित मॉडल के संबंधित मॉडल जोड़ता है। ध्यान दें कि यह नहीं है और अतुल्यकालिक नमूना को समाप्त करता है, इसलिए आपको अभी भी प्राप्त करना है (), all (), आदि, क्योंकि \ _ all () एक क्वेरीसेट लौटाता है (or proxy) जैसे फ़ील्ड () या क्रमबद्ध करना \ _ by ()।

आंतरिक संरचना

  • Marफ़ील्ड अब में एक वर्ग के रूप में संग्रहीत नहीं है, लेकिन एक उदाहरण के रूप में।

0.9.9

सुविधा

  • रिश्तों और मॉडलों की डिफ़ॉल्ट क्रमबद्ध करना बदलने की संभावना जोड़ें।
    • ऑर्डरिंग नमूना बदलने के लिए, ऑर्डर पास करें \ _ by = \ [columns] जहां कॉलम: सूची \ [str ] मेटाक्लास नमूना
    • संबंध क्रमबद्ध करना बदलने के लिए, क्रमबद्ध करना पास करें \ _ by = \ [columns] जहां कॉलम: सूची \ [str ]
    • रिवर्स क्रमबद्ध करना को बदलने के लिए \ _ पास संबंधित \ _ आदेश \ _ by = \ [कॉलम ] जहां कॉलम: सूची \ [str ]
    • पैरामीटर स्तंभ नाम हो सकते हैं या -{col_name} अवरोही क्रमबद्ध करना
    • एक रिश्ते में, आप केवल सीधे संबंधित नमूना स्तंभों द्वारा सॉर्ट कर सकते हैं, या कई-से-कई स्तंभों के लिए, आप नमूना स्तंभों द्वारा भी सॉर्ट कर सकते हैं "{through_field_name}__{column_name}"
    • आदेश \ _ द्वारा खंड निम्नलिखित क्रमबद्ध करना में लागू किए जाते हैं:
      • क्वेरी में क्रमबद्ध करना \ _ by () कॉल को स्पष्ट रूप से पास करें
      • यदि आदेशों द्वारा कोई संबंध है \ _ by
      • मॉडल मेटाक्लास आदेश \ _ द्वारा
      • मॉडल प्राथमिक कुंजी कॉलम एएससी (फॉलबैक, यदि उपरोक्त में से कोई भी प्रदान नहीं किया गया है तो उपयोग किया जाता है)
  • चार नए कुल फ़ंक्शन जोड़ें -> मिनट, अधिकतम, योग और एवीजी उनके संबंधित एसक्यूएल समकक्ष हैं।
    • आप संबंधित स्तंभों सहित एक या अधिक स्तंभ नाम पास कर सकते हैं।
    • अब तक, पारित प्रत्येक कॉलम को अलग से एकत्र किया जाता है (so su)m (col1 + col2) संभव नहीं है, आप सु का उपयोग कर सकते हैंm (col1, col2) और फिर अजगर में लौटे 2 का योग जोड़ें)।
    • आप गैर-संख्यात्मक स्तंभों को योग और औसत नहीं कर सकते
    • यदि एक कॉलम एकत्र किया जाता है, तो परिणाम के रूप में एक एकल मान सीधे वापस आ जाता है
    • यदि आप कई स्तंभों को एकत्र करते हैं, तो स्तंभ के साथ एक शब्दकोश लौटाएं: परिणाम जोड़ी
  • 4 नए सिग्नल जोड़ता है -> पूर्व \ _ संबंध \ _ जोड़ें, पोस्ट \ _ संबंध \ _ जोड़ें, पूर्व \ _ संबंध \ _ निकालें और पोस्ट \ _ संबंध \ _ निकालें
    • से नया जोड़ा गया संकेत MToसंबंध के विपरीत उत्सर्जित होता है (both parties) और विदेशी संबंध (सार्वजनिक QueryProके समान)।
    • सिग्नल निम्नलिखित पैरामीटर प्राप्त करता है: प्रेषक: प्रकार \ [मॉडल ] - प्रेषक वर्ग, उदाहरण: मॉडल - संबंधित नमूना का उदाहरण जोड़ें, बच्चा: मॉडल - मॉडल जोड़ा जा रहा है, संबंध \ _ नाम: str - बच्चे को जोड़ने के लिए संबंध का नाम, उदाहरण के लिए, ऐड सिग्नल भी पास हुआ \ _ kwargs: शब्दकोश - kwarशब्दकोश को जोड़ने के लिए पारित किया गया ()

परिवर्तन

  • अब, बनाने, हटाने और अपडेट करते समय कई-से-कई संबंधों के नमूना को तुरंत करके, आप न केवल प्राथमिक कुंजी के रूप में एक ऑटो-वेतन वृद्धि int प्रदान कर सकते हैं, बल्कि डिफ़ॉल्ट कार्यक्षमता के साथ कोई भी कॉलम प्रकार भी प्रदान कर सकते हैं।
  • चूंकि थ्रू नमूना अब तत्काल हो गया है, इसलिए आप थ्रू नमूना से पहले / बाद में संकेतों को सहेजने / अपडेट करने / हटाने के लिए भी सदस्यता ले सकते हैं
  • पूर्व \ _ अपडेट सिग्नल रिसीवर को अब पास \ _ arपैरामीटर भी मिलता है, जो एक शब्दकोश है (if any) oएफ मान अद्यतन फ़ंक्शन को पारित किया गया (अन्यथा एक खाली शब्दकोश)

मरम्मत

  • अब मान प्राप्त करने से पहले पूर्व \ _ अपडेट सिग्नल भेजें ताकि आप पारित उदाहरण को संशोधित कर सकें और संशोधित फ़ील्ड मान डेटाबेस में परिलक्षित होंगे
  • k \ _ अपडेट अब UUID प्राथमिक कुंजी कॉलम प्रकार का भी सही उपयोग कर सकता है

0.9.8

सुविधा

  • डेटाबेस में चयनित फ़ील्ड एन्क्रिप्ट करने की संभावना जोड़ें
    • कम से कम आपको एन्क्रिप्ट \ _ गुप्त और एन्क्रिप्ट \ _ बैकएंड प्रदान करने की आवश्यकता है
    • एन्क्रिप्ट \ _ बैकएंड ormar में से एक हो सकता है। एन्क्रिप्टबैकेंड्स एन्यूमरेशन (NONE, FERNET, HASH, CUSTOM) - चूक: कोई नहीं
    • कस्टम बैकएंड चुनते समय, आपको एक बैकएंड क्लास प्रदान करने की आवश्यकता होती है जो ormar.ds को उपवर्ग करता है। Entend
    • आप प्राथमिक \ _ कुंजी स्तंभों और संबंधपरक श्रृंखला को एन्क्रिप्ट नहीं कर सकते (FK and M2M).
    • दो बैकएंड प्रदान करता है: HASH और FERNET
      • HASH एक तरफ़ा हैश है (like a password) पुनर्प्राप्त होने पर इसे कभी डिक्रिप्ट नहीं किया जाता है
      • FERNET एक दो-तरफ़ा एन्क्रिप्शन / डिक्रिप्शन बैकएंड है
    • कृपया ध्यान दें कि FERNET बैकएंड में, आप पूरी तरह से फ़िल्टरिंग की संभावना खो देते हैं क्योंकि एन्क्रिप्टेड मान का हिस्सा टाइमस्टैम्प है।
    • कृपया ध्यान दें कि HASH बैकएंड में, आप पूर्ण मान से फ़िल्टर कर सकते हैं, लेकिन इसमें एक फ़िल्टर काम नहीं करेगा क्योंकि एन्क्रिप्टेड मानों की तुलना की जाती है
    • ध्यान दें कि एन्क्रिप्ट \ _ बैकएंड जोड़ने से डेटाबेस कॉलम प्रकार TEमें बदल जाता है, जिसे माइग्रेशन या मैनुअल परिवर्तनों द्वारा db में परिलक्षित करने की आवश्यकता होती है

मरम्मत

  • (advanced/internal) बंद काम कर रहे कस्टम sqlalchप्रकार फ़ंक्शन को पुनर्स्थापित करता है (प्रकारों के माध्यम से। peorउपवर्ग), इसलिए प्रक्रिया \ _ परिणाम \ _ मूल्य

0.9.7

सुविधा

  • फ़िल्टर करने और विधियों को बाहर करने के लिए isnull ऑपरेटर जोड़ें।

    1
    2
    एल्बम __ नाम __ isnull = सच # (sql: album.name शून्य है)
    एल्बम __ नाम __ isnull = गलत # (sql: album.name शून्य नहीं है))
    
  • ormar.or \ जोड़ें जिसका उपयोग संयोजनों के लिए किया जा सकता है_ और ormar। और _ फ़ंक्शन, नेस्टेड स्थितियों के साथ एक जटिल क्वेरी। उदाहरण क्वेरी:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    किताबें = (
        प्रतीक्षा करें
        । फिल्टर (
            ओरमार। और _ (
                ओरमार। या _ (वर्ष __ gt = 1960, वर्ष __ lt = 1940),
                लेखक __ नाम = "जे.आर.आर. टोल्किन",
            )
        )
        । सभी ()
    )
    

    क्वेरी में अद्यतन दस्तावेजों के लिए जाँच करें -> फ़िल्टर और सॉर्ट -> जटिल फ़िल्टर

अन्य

  • या MToपर एक डिफ़ॉल्ट मान सेट करना एक Moअपवाद उठाता है क्योंकि यह है (and was) समर्थित नहीं है

0.9.6

महत्वपूर्ण

  • कई से कई संबंधपरक नमूना से गुजरना अब वैकल्पिक है। यह एक बड़ा बदलाव नहीं है क्योंकि यदि आप इसे प्रदान करते हैं, तो सब कुछ पहले की तरह ही काम करेगा। इसलिए यदि आप नमूना पर किसी भी अन्य क्षेत्र से "गुजरना" नहीं चाहते हैं या आवश्यकता नहीं है, तो आप इसे छोड़ सकते हैं। कृपया ध्यान दें कि यह स्वचालित रूप से आपके लिए बनाया जाएगा और अभी भी एलेम्बिक माइग्रेशन के उदाहरण में शामिल किया जाना चाहिए। यदि आप किसी मौजूदा डेटाबेस को हटाना चाहते हैं, तो मौजूदा डेटाबेस संरचना को समायोजित करने के लिए डिफ़ॉल्ट नामकरण सम्मेलन की जांच करें।

    ध्यान दें कि यदि आप थ्रू नमूना या डेटाबेस और टेबल नाम को अनुकूलित करना चाहते हैं, तो आपको अभी भी इसे प्रदान करने की आवश्यकता है।

सुविधा

  • QueryProमें एक अद्यतन विधि जोड़ी गई, इसलिए संबंधित मॉडल अब सीधे माता-पिता नमूना से MToसंबंध के साथ-साथ रिवर्स विदेशी कुंजी संबंध से अपडेट किए जा सकते हैं। ध्यान दें कि Queryमें अपडेट अपडेट किए गए मॉडल की संख्या लौटाते हैं और मूल नमूना पर संबंधित मॉडल अपडेट नहीं करते हैं। मूल नमूना पर ताज़ा डेटा प्राप्त करने के लिए, आपको संबंधित नमूना को ताज़ा करने की आवश्यकता है (यानी await model_instance.related.all() )
  • जोड़ें load_all(follow=False, exclude=None) नमूना विधि, जो नमूना और सभी संबंधित मॉडलों के वर्तमान उदाहरण को एक ही कॉल में लोड करने की अनुमति देती है। डिफ़ॉल्ट रूप से, यह केवल सीधे संबंधित मॉडल को लोड करता है, लेकिन सेटिंग का पालन करें = ट्रू पेड़ को ट्रेस करने का कारण बनता है (avoiding loops). आप Query.\ _ () विधि के समान बहिष्करण मापदंडों को भी पास कर सकते हैं।
  • कई रिश्तों के थ्रू नमूना पर अधिक फ़ील्ड जोड़ने की संभावना को जोड़ा गया:
    • थ्रू नमूना का नाम थ्रू क्लास का लोअरकेस नाम है
    • आप ऐड को कॉल कर सकते हैं (child, **Kwargs) अन्य क्षेत्रों से गुजरते समय (on QuerysetProxy)
    • जब कीवर्ड तर्कों में से एक मूल्य शब्दकोश के साथ एक नमूना नाम होना चाहिए, तो आप रिश्ते पर () कॉल कर सकते हैं (on QuerysetProxy).**Kwargs) जब अन्य क्षेत्रों से गुजर रहे हैं
    • आप इस क्षेत्र के माध्यम से क्रमबद्ध करना नमूना क्षेत्र के माध्यम से देख सकते हैं।
    • आप फ़ील्ड नमूना फ़िल्टर कर सकते हैं
    • आप नमूना द्वारा फ़ील्ड को शामिल और बाहर कर सकते हैं
    • मॉडल के माध्यम से केवल संबंधित मॉडल में जोड़ें (यानी, यदि आप A से B तक क्वेरी करते हैं -> केवल B पर)
    • कृपया ध्यान दें कि पास-थ्रू नमूना स्पष्ट रूप से रिश्तों के बिना लोड किया गया है -> रिश्ते MToक्षेत्र में आबाद हैं।
    • ध्यान दें कि इससे पहले कि आप नमूना के माध्यम से संबंधपरक क्षेत्रों की घोषणा नहीं कर सकते, वे आपके लिए ormar द्वारा आबाद होंगे, लेकिन अब यदि आप ऐसा करने की कोशिश करते हैं, तो यह ModelDefinitionError फेंक देगा
    • अधिक जानकारी के लिए अद्यतन MToसंबंध प्रलेखन की जाँच करें

अन्य

  • अद्यतन प्रलेखन और एपीआई प्रलेखन
  • रिफैक्टरिंग और ऑप्टिमाइज़ेशन में मुख्य रूप से फिल्टर, बहिष्करण और छँटाई मानदंड शामिल हैं

0.9.5

मरम्मत

  • संस्करण > = 1.8 में pydको अपडेट करने के बाद pydबनाने के मुद्दे को ठीक करें
  • भविष्य में ऐसी स्थितियों से बचने के लिए आवश्यक निर्भरता संस्करणों को ठीक किया

0.9.4

मरम्मत

  • स्वचालित प्रलेखन के लिए फिक्स्ड फास्टापी स्कीमा पीढ़ी जब कई मॉडल एक ही संबंधित नमूना को संदर्भित करते हैं

0.9.3

मरम्मत

  • एक मुद्दा फिक्स्ड जहां आरंभीकरण के बाद मान निर्धारित करते समय JSफ़ील्ड डबल बच गए थे
  • एक समस्या को ठीक करें जहां JSफ़ील्ड pydआंतरिक संरचना के कारण खाली फ़ील्ड सेटिंग्स का अनुपालन नहीं करते हैं
  • JSफ़ील्ड के लिए चयन सत्यापन ठीक करें
  • उन विकल्पों को ठीक करें जो आरंभीकरण के बाद गुण सेट करते समय मान्य नहीं थे
  • क्वेरीसेट अपडेट कॉल के दौरान मान्य नहीं किए गए विकल्पों को ठीक करें

0.9.2

अन्य

  • प्रलेखन / readme फ़ाइल में त्वरित प्रारंभ अपडेट किया गया
  • क्वेरी सबपेज के लिंक के साथ अद्यतन प्रलेखन
  • कोड जलवायु और डाउनलोड के लिए बैज जोड़े गए

0.9.1

सुविधा

  • परिणामी स्कीमा में एक देशी Enum फ़ील्ड की तरह दिखने के लिए विनिर्देश में विकल्प मान जोड़ें।

मरम्मत

  • जब एक विशेष क्षेत्र को आरंभीकृत नहीं किया गया है, लेकिन एक स्ट्रिंग आदि के रूप में पारित किया गया है, तो चयन व्यवहार को ठीक करने के लिए फास्टापी का उपयोग करें।

0.9.0

महत्वपूर्ण

  • ब्रेक फिक्स: संस्करण 0.8.0 एक बग पेश किया है जो डेटाबेस में विदेशी \ _ कुंजी बाधाओं को उत्पन्न होने से रोकता है, या तो एलेम्बिक में या sqlal.engine के माध्यम से निर्माण के दौरान।
  • इसलिए, यदि आप संस्करण> = 0.8.0 का उपयोग करते हैं, तो यह दृढ़ता से अनुशंसा की जाती है कि आप अपडेट करें, क्योंकि यद्यपि अधिकांश ormar फ़ंक्शन चल रहे हैं, ormar के साथ बनाए गए डेटाबेस (or ormar + alembic) प्रासंगिक नहीं हैं और प्रदर्शन और डेटा अखंडता से पीड़ित होंगे।
  • यदि आप किसी मौजूदा डेटाबेस से कनेक्ट करने के लिए ormar का उपयोग करते हैं, तो आपका प्रदर्शन और अखंडता अच्छी होनी चाहिए, लेकिन आपको नमूना में सभी भविष्य के स्कीमा अपडेट को प्रतिबिंबित करने के लिए अपडेट करना चाहिए।

ब्रेक

  • ब्रेकथ्रू: सभी विदेशी कुंजियों और अद्वितीय बाधाओं का अब एक नाम है, इसलिए एलेम्बिक डेटाबेस के आधार पर डेटाबेस में उन्हें पहचान सकता है
  • ब्रोकन: नमूना निर्माण के दौरान, यदि नमूना के मेटाक्लास में मेटाडेटा या डेटाबेस नहीं है, तो ModelDefinitionError अब जेनेरिक tributeके बजाय उठाया जाएगा।
  • ब्रोकन: प्रश्नों को चलाने के लिए उपयोग किए जाने वाले कोड / डेटाबेस में SQLite बैकएंड के लिए कनेक्शन पूल नहीं है, जो माध्य कि प्रत्येक क्वेरी एक नए कनेक्शन के साथ चलाई जाती है, और मजबूर विदेशी कुंजी बाधाओं को सक्षम नहीं किया जा सकता है क्योंकि वे डिफ़ॉल्ट रूप से बंद हो जाते हैं प्रत्येक कनेक्शन। यह ormar में बदल गया है> = 0.9.0 है, जहां डिफ़ॉल्ट रूप से हर sqe3 क्वेरी में "PRAGMAforeign \ _ keys = 1;" चल रहा है, ताकि हर sqe3 कनेक्शन अब डिफ़ॉल्ट रूप से विदेशी कुंजी बाधाओं को लागू करता है, जिसमें कैस्केडिंग भी शामिल है।

अन्य

  • एपीआई प्रलेखन अपडेट करें।
  • डेटाबेस में fk बनाने और डेटाबेस में कैस्केडिंग कनेक्शन के लिए परीक्षण जोड़ें

0.8.1

सुविधा

  • रिश्तों में ForRकी हैंडलिंग का वर्णन करता है। अब आप स्व-संदर्भित मॉडल बना सकते हैं - विदेशी कुंजी और कई-से-कई रिश्ते। ForRका उपयोग और के साथ किया जा सकता है।
  • जटिल संबंधों को संभालने के लिए क्रमबद्ध करना में एक ही क्वेरी में दो समान संबंधपरक जुड़ाव करने की संभावना का परिचय दें, जैसे:

    1
    2
    3
    4
    5
    6
    7
        बी = एक्स = वाई
      //
     ए
      \
        C = X = Y <= इससे पहले कि आप X से Y तक केवल एक क्वेरी में लिंक कर सकें
                     जब तक दो अलग-अलग संबंधों का उपयोग नहीं किया गया
                     (विभिन्न नामों के साथ दो संबंध क्षेत्र)
    
  • एक पेजिंग विधि का परिचय देता है जो पृष्ठ और पृष्ठ \ _ आकार द्वारा सीमा / ऑफसेट की अनुमति देता है। Queryऔर QueryProके लिए उपलब्ध है।

अन्य

  • प्रश्नों और जॉइन में रिफैक्टरिंग और प्रदर्शन अनुकूलन।
  • परीक्षण और सेटिंग्स में पायथन 3.9 जोड़ें।
  • अद्यतन एपीआई प्रलेखन और प्रलेखन -> , जो क्वेरी दस्तावेज़ का एक विभाजन है।

0.8.0

ब्रेक

  • ब्रेकिंग में बच्चे के माता-पिता: निकालें () रिवर्स विदेशी कुंजी संबंध को अब एक रिश्ते का नाम पारित करने की आवश्यकता है क्योंकि एक ही नमूना को कई बार पंजीकृत किया जा सकता है, और ormar को यह जानना होगा कि माता-पिता के किस रिश्ते को आप हटाना चाहते हैं बच्चे से।
  • ब्रेक: डिफ़ॉल्ट रूप से, शामिल होने से पहले केवल मुख्य तालिका में चुनिंदा \ _ lated लागू सीमाओं और ऑफसेट का उपयोग करें -> जिसका अर्थ है कि पंक्तियों की कुल संख्या सीमित नहीं है, लेकिन केवल मास्टर मॉडल की संख्या (क्वेरी में पहला, इसका निर्माण करने के लिए उपयोग किया जाता है)। आप अभी भी सीमा \ _ कच्चे \ _ sql = सीमा या ऑफसेट पर सही ध्वज का उपयोग कर सकते हैं (or both) डेटाबेस प्रतिक्रिया में सभी पंक्तियों को सीमित करने के लिए
  • ब्रेकिंग: पहले जारी करना () अब प्राथमिक कुंजी asc द्वारा क्रमबद्ध पहली पंक्ति प्राप्त करता है (इसलिए पहली पंक्ति डाली गई है (गैर-संख्यात्मक प्राथमिक कुंजी के लिए अलग हो सकती है - यानी स्ट्रिंग क्रमबद्ध करना वर्णक्रम)
  • ब्रेकिंग: किसी भी फिल्टर के बिना प्राप्त करना () अब प्राथमिक कुंजी c द्वारा क्रमबद्ध पहली पंक्ति प्राप्त करेगा (इसलिए यह अंतिम सम्मिलित पंक्ति होनी चाहिए (गैर-संख्यात्मक प्राथमिक कुंजी के लिए अलग हो सकता है - यानी स्ट्रिंग क्रमबद्ध करना वर्णक्रम)
  • विनाश (आंतरिक): जो sqlalchकॉलम में रहता है, वह अब तालिका से बाध्य नहीं है, इसलिए आप सीधे कॉलम को वहां से पुनः प्राप्त नहीं कर सकते हैं

सुविधा

  • विरासत का परिचय दें। वर्तमान में दो प्रकार की विरासत हैं जो संभव हैं:
    • मिक्सिंस - उपवर्ग ormar नहीं है। मॉडल, बस उन फ़ील्ड को परिभाषित करें जो बाद में विभिन्न मॉडलों (जैसे प्रत्येक सबमॉडल पर निर्मित \ _ दिनांक और अद्यतन \ _ तिथि) पर उपयोग किए जाते हैं, केवल वास्तविक नमूना तालिका बनाता है, लेकिन उन फ़ील्ड को मिश्रण में जोड़ें
    • कंक्रीट तालिका विरासत - माध्य कि माता-पिता को सार के रूप में चिह्नित किया गया है = मेटा वर्ग में सच है, और प्रत्येक बच्चे के पास माता-पिता और अपने स्वयं के बच्चे के स्तंभों के साथ अपनी तालिका है, कुछ हद तक मिक्सिंस के समान है, लेकिन माता-पिता भी एक है (abstract) नमूना
    • अधिक जानने के लिए, मॉडल -> विरासत अनुभाग पर प्रलेखन देखें।
  • Queryपहले () का उपयोग pre\ _ lated के साथ किया जा सकता है

मरम्मत

  • क्रमबद्ध करना में मामूली बग को ठीक करें \ _ मुख्य नमूना क्रमबद्ध करना
  • एक ही नमूना के लिए कई संबंधित \ _ नाम pre\ _ क्वेरी ठीक करें।
  • एक समस्या को ठीक करें जहां विभिन्न मॉडलों पर एक ही संबंधित \ _ नाम का उपयोग करने से एक ही संबंधित मॉडल एक दूसरे को अधिलेखित करने का कारण बनता है, अब ModelDefinitionError उठाता है और आपको नाम बदलने की आवश्यकता है।
  • एक समस्या फिक्स्ड जहां एक ही तालिका में कई जॉइन लागू करते समय ओवरराइड स्थिति द्वारा क्रमबद्ध करना है।

दस्तावेज़

  • दस्तावेजों को विभाजित करना और साफ करना:
    • नमूना को छोटे भागों में विभाजित करें
    • संबंध अनुभाग को उपखंडों में विभाजित करें
    • क्षेत्र भाग को छोटे भागों में विभाजित करें
  • नमूना अनुभाग जोड़ें
  • एपीआई (बीटा) प्रलेखन जोड़ें

0.7.5

  • कई \ _ से \ _ कई कनेक्शनों में गलत संबंधपरक श्रृंखला नाम (fix #73)

0.7.4

  • एक ही संबंधित नमूना / तालिका में कई संबंधों की अनुमति देता है।
  • कई \ _ से \ _ कई कनेक्शनों में उपयोग की जाने वाली त्रुटि स्तर श्रृंखला तय की गई (Fix #73)
  • M2M रिश्तों के लिए एक गलत संबंध आबादी तय की जब एक ही नमूना में FK संबंध भी होता है।
  • यदि किसी नमूना पर एक ही तालिका पर कई संबंध हैं, तो यह देखने के लिए चेक जोड़ें कि उपयोगकर्ता संबंधित \ _ नाम प्रदान करता है या नहीं।
  • अधिक उत्सुकता से मृत कमजोर प्रॉक्सी मॉडल को साफ करें।

0.7.3

  • UUpk सेटिंग का उपयोग करके संबंधित मॉडल लाने के साथ एक समस्या तय की, जहां UUpk एक कच्चा स्ट्रिंग है (fix #71)

0.7.2

  • एक मुद्दा फिक्स्ड जहां संबंधित मॉडल को अधिलेखित करने के लिए केवल पीके का उपयोग किया गया था Model.update() with fields passed as parameters (Repair #70)

0.7.1

  • केवल Model.save में pk का उपयोग करके ओवरराइडिंग संबंधित मॉडल को ठीक करें () (fix #68)

0.7.0

  • Break: Queryk \ _ अपडेट विधि अब ModelPersistenceError के बजाय पारित किए गए बिना सहेजे गए मॉडल पर QueryDefinitionError
  • ब्रेकथ्रू: अज्ञात फ़ील्ड नामों के साथ मॉडल आरंभीकरण अब के बजाय Moउठाता है
  • पूर्वनिर्धारित सूची संकेतों और सज्जाकारों के साथ जोड़े गए संकेत: पोस्ट \ _ हटाएं, पोस्ट \ _ सहेजें, पोस्ट \ _ अद्यतन, पूर्व \ _ हटाएं, पूर्व \ _ सहेजें, पूर्व \ _ अद्यतन
  • py.जोड़ें और pyy का समर्थन करने के लिए setup.py संशोधित करें
  • प्रदर्शन अनुकूलन
  • दस्तावेज़ अपडेट करें

0.6.2

  • प्रदर्शन अनुकूलन
  • एक बग फिक्स्ड जो pyd\ _ केवल फ़ील्ड की आवश्यकता है
  • संपत्ति \ _ फ़ील्ड डेकोरेटर जोड़ें, फ़ंक्शन को एक संपत्ति के रूप में पंजीकृत करें, जो मॉडल.मॉडल \ _ डंप () और फास्टापी प्रतिक्रियाओं में शामिल किया जाएगा
  • दस्तावेज़ अपडेट करें

0.6.1

  • स्पष्ट रूप से सेट करें pydसेटिंग डिफ़ॉल्ट मानों से बचने के लिए अशक्त फ़ील्ड को बाहर करने के लिए कोई नहीं (fix #60).

0.6.0

  • ब्रेकिंग: कॉलिंग इंस्टेंस.लोड () डेटाबेस से एक उदाहरण पंक्ति को हटाते समय अब valeके बजाय Noउठाता है
  • ब्रेक: seसंबंध पर जोड़ें और निकालें कॉलिंग अब डेटाबेस सेटिंग्स को अपडेट करता है / fk कॉलम में सबमॉडल को हटाता है
  • सफलता: seसंबंध अब QueryProको उजागर करता है जैसे MToसंबंध
  • टूटा: MToसे संबंधित मॉडल क्वेरी करना मूल नमूना पर लोड किए गए संबंधित मॉडल की सूची को साफ करता है:
    • उदाहरण: .पहले () 1 संबंधित मॉडल की सूची में .सेट करेगा -> पहले द्वारा लौटाया नमूना ()
    • उदाहरण 2: यदि किसी पोस्ट में 4 श्रेणियां हैं, तो लेन (post.categories) == 4 कॉल post.categories.limit(2).all() -> अब केवल 2 बाल प्रक्रियाएं लोड की जाएंगी assert len(post.categories) == 2
  • जोड़ा गया \ _ या \ _ बनाएं, अपडेट करें \ _ या \ _ बनाएं, फ़ील्ड बनाएं, \ _ फ़ील्ड को बाहर करें, बहिष्करण, प्रीफ़ेच \ _ लेटेड, और क्रमबद्ध करना \ _ क्वेरीसेटप्रॉक्सी तक, ताकि आप अब इन तरीकों का उपयोग सीधे रिश्ते से कर सकें
  • दस्तावेज़ अपडेट करें

0.5.5

  • UUID स्तंभों को माइग्रेट करने के लिए फिक्स्ड एलेम्बिक ऑटोजेनेरेशन मुद्दा। यह केवल sqlalchCHAR उत्पन्न करना चाहिए (32) or CHAR (36).
  • इस कार्य के लिए क्रमबद्ध करना में, आपको उपयोगकर्ता \ _ मॉड्यूल \ _ उपसर्ग = 'सा' सेट करना होगा। (sqlalchemy \ _ मॉड्यूल \ _ उपसर्ग विकल्प के बराबर होना चाहिए (default is "sa".))

0.5.4

  • अपने सहेजने वाले प्रारूप को बदलने के लिए UUID फ़ील्ड में एक id \ _ प्रारूप ("हेक्साडेसिमल" (default) या "स्ट्रिंग") की अनुमति देता है। डिफ़ॉल्ट रूप से, फ़ील्ड हेक्साडेसिमल प्रारूप में सहेजे जाते हैं (32 वर्णों की छंटनी की जाती है) (without dashes)), लेकिन आप 36 का उपयोग करने के लिए प्रारूप = 'स्ट्रिंग' पास कर सकते हैं (with dashes) मौजूदा डेटाबेस या अन्य पुस्तकालयों को समायोजित करने के लिए।

    नमूना:

    • हेक्साडेसिमल मान = c616ab438cce49dbbf4380d109251dce
    • स्ट्रिंग मान = c616ab43-8cce-49db-bf43-80d109251dce

0.5.3

  • Mo.\ _ () विधि में एक बग फिक्स्ड जिसने बहिष्करण मापदंडों को नजरअंदाज कर दिया और शब्दकोश मापदंडों को शामिल नहीं किया।

0.5.2

  • अलग-अलग प्रश्नों में बाद के मॉडल लोड करने के लिए pre\ _ lated विधि जोड़ी गई।
  • दस्तावेज़ अपडेट करें

0.5.1

  • ट्रैविस के बजाय गिथुब क्रियाओं पर स्विच करें
  • दस्तावेज़ में बैज अपडेट करें

0.5.0

  • जोड़ा गया सहेजें स्थिति -> आप जांच सकते हैं कि क्या नमूना Mo.संपत्ति का उपयोग करके सहेजा गया है
    • इंटरनेट पर सम्मिलन विधि को सहेजने / अपडेट करने / लोड करने / अपडेट करने के बाद नमूना नमूना पर सम्मिलन विधि को सहेजने / अपडेट करने / लोड करने / अपडेट करने के बाद छवि सहेजें
    • नमूना के बाद create/get/first/all/get_or_create/update_or_create विधि
    • मॉडल सहेजे जाते हैं जब थोक \ _ अद्यतन और थोक \ _ बनाने के लिए पारित किया जाता है
    • कई Toसंबंधित वस्तुओं को जोड़ने / हटाने के बाद नमूना सहेजें (स्वचालित रूप से सहेजें / नमूना उदाहरण के माध्यम से हटाएं)
    • नमूना अपने स्वयं के किसी भी क्षेत्र को बदलने के बाद सहेजा नहीं जाता है (एक Model.pk उपनाम के रूप में पीके सहित)
    • से संबंधित वस्तुओं को जोड़ने/हटाने के बाद मॉडल सहेजा नहीं गया (fk column not saved)
    • उपयोग __इनिट _\ _ इंस्टेंटेशन के बाद नमूना को न सहेजें (QuerySet.का उपयोग किए बिना या कॉल करने से पहले)
  • जोड़ा गया मॉडल.upsert (**Kwargs), यदि pk सेट नहीं है, तो सहेजें (), अन्यथा अद्यतन करें (**Kwargs)
  • अतिरिक्त Model.save_related(follow=False) सभी संबंधों में सभी संबंधित वस्तुओं पर Iterऔर जाँच करता है कि क्या वे सहेजे गए हैं। यदि नहीं, तो यह प्रत्येक वस्तु पर upsert () कहता है।
  • ब्रेक: यदि आप एक सहेजा नहीं गया जोड़ें / निकालें (pk is None) नमूना संबंध के लिए, एक अपवाद फेंकता है
  • फ़ील्ड और \ _ फ़ील्ड को छोड़कर शब्दकोश और संग्रह पास करने की अनुमति देता है
  • स्वचालित रूप से फ़ील्ड के लिए शब्दकोशों में str और सूचियों अनुवाद और \ _ फ़ील्ड को छोड़कर
  • ब्रेक: लक्ष्य नमूना नाम के बजाय संबंधित विदेशी कुंजी नाम द्वारा अब फ़ील्ड और अतिरिक्त \ _ फ़ील्ड में नेस्टेड मॉडल पास करना
  • प्रदर्शन अनुकूलन - मॉडलप्रॉक्सी में, न्यूबेसमॉडल - क्वेरी कमी>, कुछ गुणों को नमूना पर कैश किया जाता है
  • अप्रयुक्त संबंधपरक कोड को साफ करें
  • वैकल्पिक प्रदर्शन निर्भरता orjson जोड़ें (अत्यधिक अनुशंसित)
  • दस्तावेज़ अपडेट करें

0.4.4

  • SQL से फ़ील्ड को बाहर करने के लिए \ _ फ़ील्ड () विधि को छोड़कर जोड़ें
  • रिफैक्टर कॉलम नाम सेटिंग्स (उपनाम)
  • ठीक करें कि उपनाम वाले कॉलम कैसे सॉर्ट किए जाते हैं
  • फ़ील्ड के लिए अतिरिक्त परीक्षण और \ _ फ़ील्ड को छोड़कर
  • दस्तावेज़ अपडेट करें

0.4.3

  • मॉडल में गुण शामिल हैं। मॉडल \ _ डंप () और मॉडल.मॉडल \ _ डंप \ _ json ()

0.4.2

  • केवल पीके के साथ आबादी वाले संबंधित मॉडलों की वापसी की अनुमति देने के लिए पाइडेंटिक मॉडल के निर्माण को संशोधित करें

0.4.1

  • क्रमबद्ध करना की अनुमति देने के लिए क्वेरी सेट पर विधि द्वारा \ _ जोड़ें
  • दस्तावेज़ अपडेट करें

0.4.0

  • नमूना परिभाषा में परिवर्तित संकेतन -> अब नाम = ormar का उपयोग करता है। फ़ील्ड () नाम के बजाय: ormar। फ़ील्ड ()
    • कृपया ध्यान दें कि पुराने संकेतन अभी भी समर्थित है, लेकिन पदावनत है और स्थैतिक चेकर्स जैसे कि pypy और pydpyप्लगइन के साथ अच्छी तरह से काम नहीं करता है
  • प्रॉम्प्ट दस्तावेज़ दर्ज करें और इसका परीक्षण करें
  • आप परीक्षण के लिए खस्ता का उपयोग नहीं कर सकते, आप केवल ormar पैकेज का उपयोग कर सकते हैं
  • अधिकतम \ _ अंकों और दशमलव \ _ स्थानों pydक्षेत्रों का उपयोग करके पैमाने और सटीक रूपांतरणों को ठीक करें
  • प्रलेखन अद्यतन करना - निर्भरता जोड़ने के लिए सर्वोत्तम अभ्यास
  • प्रकार संकेत का बेहतर उपयोग करने के लिए रिफैक्टर मेटाक्लासेस और नमूना _ फ़ील्ड
  • प्रलेखन में pypy और pydप्लगइन जोड़ें
  • कई-से-कई रिश्तों पर प्रलेखन का विस्तार करें

0.3.11

  • अजगर में डिफ़ॉल्ट फ़ील्ड मान के रूप में सेटिंग सर्वर \ _ डिफ़ॉल्ट को ठीक करें

0.3.10

  • अपवाद से बचने के लिए पोस्टग्रेसल चेक को ठीक करें जहां विभिन्न बैकएंड का उपयोग करते समय ड्राइवर स्थापित नहीं होते हैं

0.3.9

  • 19 से JSस्कीमा पीढ़ी को ठीक करें

  • ormar की फास्टापी कॉपी में एक unMToसंबंध के साथ एक मुद्दा तय किया। मॉडल
  • Fउपयोग पर अद्यतन प्रलेखन
  • यह सत्यापित करने के लिए परीक्षण जोड़ें कि फास्टापी / डॉक्स सही ढंग से उत्पन्न हुए हैं

0.3.8

  • सभी फ़ील्ड के लिए नाम मापदंडों के साथ वैकल्पिक डेटाबेस कॉलम नाम प्रदान करने की संभावना को जोड़ा गया।
  • एक बग फिक्स्ड जो खेतों का उपयोग करता था () प्रासंगिक MToफ़ील्ड का चयन करने के लिए यदि वे खाली थे।
  • दस्तावेज़ अपडेट करें

0.3.7

  • प्रलेखन प्रकाशित करें और रीडमी फ़ाइलों को अपडेट करें

0.3.6

  • डेटाबेस में चयनित स्तंभों को प्रतिबंधित करने के लिए फ़ील्ड () विधि जोड़ें - केवल अशक्त स्तंभों को बाहर रखा जा सकता है।
  • स्तंभों की सूची में अद्वितीय बाधाओं का निर्माण करने के लिए नमूना तत्व में Uniऔर बाधाओं की एक सूची जोड़ी जाती है।
  • चार (32) कॉलम प्रकार के आधार पर एक UUID फ़ील्ड प्रकार जोड़ा गया।

0.3.5

  • कई ऑब्जेक्ट्स पर संचालन के लिए बल्क \ _ क्रिएट और बल्क \ _ अपडेट जोड़ा गया।

0.3.4

क्वेरी सेट स्तर विधि जोड़ें

  • हटाएं
  • अद्यतन
  • प्राप्त करें या बनाएं
  • अपडेट या बनाएं

0.3.3

  • अतिरिक्त फ़िल्टर जोड़ें - शुरुआत और अंत

0.3.2

  • सभी फ़ील्ड में विकल्प पैरामीटर जोड़ें - प्रदान किए गए मानों को सीमित करें

0.3.1

  • फ़िल्टर में बहिष्करण जोड़ा गया जहां नहीं।
  • SQL और gres के लिए परीक्षण जोड़े गए, और gres तय किए।
  • राफेक्टर्स और सफाई।

0.3.0

  • MToफ़ील्ड जोड़े गए और कई-से-कई रिश्तों का समर्थन करता है