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

दो django मॉडल (टेबल) को एक मॉडल (टेबल) में कैसे मर्ज करें

एक कस्टम माइग्रेशन काम करना चाहिए।

  1. आपके पास पहले से ही मॉडल A और B हैं, इसलिए मॉडल C को उन फ़ील्ड के साथ बनाएं जिन्हें आप दो मॉडलों से चाहते हैं।
  2. सामान्य स्कीमा माइग्रेशन बनाएं उदा. manage.py मेकमाइग्रेशन ... और किसी भी मौजूदा परिवर्तन के लिए आवेदन करें
  3. कस्टम माइग्रेशन बनाएं उदा. python manage.py makemigrations --empty yourappname (@2ps द्वारा साझा किया गया लिंक देखें
  4. ऊपर जेनरेट की गई फ़ाइल को संपादित करें, मैंने नीचे एक नमूना डेटा माइग्रेशन जोड़ा है।
  5. rum manage.py ऊपर चरण 4 से माइग्रेशन लागू करने के लिए माइग्रेट करें।
  6. मॉडल ए और बी ड्रॉप करें यदि आपकी इच्छा है, तो माइग्रेशन उत्पन्न करें और आवेदन करें और आपको अच्छा होना चाहिए।

    ...

    def merge_models_ab(apps, schema_editor):
        A = apps.get_model("app_name", "A")
        B = apps.get_model("app_name", "B")
        C = apps.get_model("app_name", "C")
        #come up with some interesting ways to join A and B
        #iterate over join and insert into C
        #C.objects.create(...)
    

    ...

    class Migrations(migrations.Migration):
        dependencies = [
            ('app_name', 'some_prev_migrations'),
        ]
        operations = [
            migrations.RunPython(merge_models_ab),
        ]
    


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql कॉलम को INT से TIMESTAMP में कनवर्ट करना

  2. MySQL में रिकॉर्ड के अनुक्रमिक संग्रह को कैसे रिकॉर्ड करें

  3. 1 एसक्यूएल क्वेरी में 4 टेबल से डेटा कैसे प्राप्त करें?

  4. php और mysql के साथ शेष बचे समय की गणना कैसे करें?

  5. mysql में नकारात्मक रेगेक्स पैटर्न