2015-09-18 22 views
6

मेरे पास मेरी रीयल योजना में Gift तालिका है। अब मुझे Gift.class को UserBonus.class का नाम बदलने और कुछ नए पैराम (एक प्रोब नहीं) जोड़ने की आवश्यकता है। ऐसा करने का सही तरीका क्या है?रीयलम टेबल का नाम बदलें

मुझे पता है कि realm.getTable() मुझे मेज लौट सकते हैं, समस्या यह है कि वर्ष Gift स्कीमा में मौजूद है, लेकिन इस तथ्य पर मैं न Gift.class (अब यह UserBonus और getTable() मुझे नई बनाई गई तालिका वापस आ जाएगी) तो मैं पुराने प्राप्त नहीं कर सकते है उपहार तालिका मूल्यों और उन्हें नई बोनस तालिका में ले जाएं।

एकमात्र तरीका जिसे मैं इसे देखता हूं, खाली Gift.class छोड़कर इसे माइग्रेशन के लिए उपयोग करता हूं।

किसी भी सलाह के लिए धन्यवाद,
Yakiv

उत्तर

2

वर्तमान में मैं इस प्रकार इसे लागू किया:

  • जोड़े गए नए UserBonus.class
  • Gift से Gift.class
  • प्रतिलिपि सभी डेटा को @Deprecated जोड़ा तालिका UserBonus तालिका

    // added bonus types 
    Table userBonus = realm.getTable(UserBonus.class); 
    userBonus.addColumn(ColumnType.STRING, "localId"); 
    userBonus.addColumn(ColumnType.INTEGER, "type"); 
    userBonus.addColumn(ColumnType.INTEGER, "date"); 
    userBonus.addColumn(ColumnType.STRING, "userName"); 
    userBonus.addColumn(ColumnType.STRING, "userNumber"); 
    userBonus.addColumn(ColumnType.STRING, "credits"); 
    
    // move Gift to UserBonus 
    RealmResults<Gift> gifts = realm.where(Gift.class).findAll(); 
    for (Gift gift :gifts) { 
        userBonus.add(
          gift.getLocalId(), 
          UserBonus.TYPE_FRIEND, 
          gift.getDate(), 
          gift.getUserName(), 
          gift.getUserNumber(), 
          gift.getCredits() 
        ); 
    } 
    realm.where(Gift.class).findAll().clear(); 
    
4

हो सकता है कि मेरा उत्तर पुराने हो जाएंगे, लेकिन अब Android पर क्षेत्र में एक विधि 'नाम बदलें' है, जो इस योजना में तालिका (मॉडल) का नाम बदल सकते है। कोड इस तरह होगा:

RealmSchema schema = Realm.getInstance().getSchema(); 
schema.rename("OldModelName", "NewModelName"); 

और यह काम करना चाहिए!

इसके अलावा आप माइग्रेशन (25 जून 2015 से) में सभी सुविधाएं देख सकते हैं - https://github.com/realm/realm-java/pull/1239

संबंधित मुद्दे