अपने प्रोजेक्ट में, मैं डेटा को स्थानीय डेटाबेस में संग्रहीत कर रहा हूँ। उसके लिए मैं रूम लाइब्रेरी का उपयोग कर रहा हूँ। Android प्रलेखन के अनुसार मैंने एक इकाई वर्ग, एक सार डेटाबेस वर्ग, एक दाओ इंटरफ़ेस बनाया है। मैंने डेटा को सफलतापूर्वक संग्रहीत और पुनर्प्राप्त किया है।
लेकिन अब मैं इकाई (मॉडल क्लास) में एक फ़ील्ड जोड़ना चाहता हूं। उस वर्ग को अद्यतन करने के बाद और जब मैं डेटाबेस में डेटा सहेज रहा हूं, यह क्रैश हो रहा है। यह Dao_Impl वर्ग में कुछ त्रुटि दिखाता है। वास्तव में यह एक स्वतः उत्पन्न वर्ग है। मैं इस त्रुटि को कैसे हल करूं?
क्या कोई इस मुद्दे को हल करने में मेरी मदद कर सकता है? अग्रिम में धन्यवाद।
2 जवाब
तालिका संरचना जैसे डेटा हेरफेर भाषा (डीएमएल) में किसी भी बदलाव के लिए आपको एक माइग्रेशन रणनीति प्रदान करनी होगी
Room.databaseBuilder(getApplicationContext(), MyDb.class, "YOUR_DATABASE_NAME")
.addMigrations(MIGRATION_1_2).build();
static final Migration MIGRATION_1_2 = new Migration(1, 2) {
@Override
public void migrate(SupportSQLiteDatabase database) {
database.execSQL("ALTER TABLE YOUR_TABLE_NAME ADD COLUMN YOUR_NEW_COLUMN_NAME TEXT");
}
};
यहां 1 आपका पुराना डेटाबेस संस्करण है और 2 वर्तमान डेटाबेस संस्करण है। अपने निकाय वर्ग में फ़ील्ड जोड़ना न भूलें।
आपको अपने डेटाबेस के लिए माइग्रेशन लिखना होगा। https://developer.android.com/training/data -स्टोरेज/रूम/माइग्रेटिंग-डीबी-संस्करण
संबंधित सवाल
नए सवाल
android
एंड्रॉइड Google का मोबाइल ऑपरेटिंग सिस्टम है, जिसका उपयोग प्रोग्रामिंग या डिजिटल डिवाइस (स्मार्टफोन, टैबलेट, ऑटोमोबाइल्स, टीवी, वियर, ग्लास, IoT) को विकसित करने के लिए किया जाता है। एंड्रॉइड से संबंधित विषयों के लिए, एंड्रॉइड-विशिष्ट टैग जैसे कि एंड्रॉइड-इरादे, एंड्रॉइड-गतिविधि, एंड्रॉइड-एडॉप्टर आदि का उपयोग करें। विकास या प्रोग्रामिंग के अलावा अन्य प्रश्नों के लिए, लेकिन एंड्रॉइड फ्रेमवर्क से संबंधित हैं, इस लिंक का उपयोग करें: https: // android.stackexchange.com।