كيف يمكنني تهاجر البيانات من نموذج واحد إلى آخر باستخدام الجنوب في Django؟

StackOverflow https://stackoverflow.com/questions/1857810

سؤال

قمت بإنشاء تطبيق Django يحتوي على نظام التصويت الداخلي الخاص به ونموذج يسمى التصويت لتتبعه. أريد إعادة تكوين نظام التصويت في تطبيقه الخاص حتى أتمكن من إعادة استخدامه. ومع ذلك، فإن التطبيق الأصلي قيد الإنتاج وأحتاج إلى إنشاء ترحيل بيانات سيستغرق كل الأصوات وأزوجها في التطبيق المنفصل.

كيف يمكنني الحصول على تطبيقين للمشاركة في الهجرة حتى أتمكن من الوصول إلى كل من نماذجها؟ لسوء الحظ، فإن التطبيقات الأصلية والمنفصلة لها نموذج يدعى التصويت الآن، لذلك أحتاج إلى أن أدرك أي صراعات.

هل كانت مفيدة؟

المحلول

هل جربت db.rename_table.?

أود أن أبدأ بإنشاء هجرة في التطبيق الجديد أو القديم الذي يبدو مثل هذا.

class Migration:

    def forwards(self, orm):
        db.rename_table('old_vote', 'new_vote')    

    def backwards(self, orm):
        db.rename_table('new_vote', 'old_vote')

إذا لم يعمل ذلك، فيمكنك ترحيل كل عنصر في حلقة مع شيء على طول هذه الخطوط:

def forwards(self, orm):
    for old in orm['old.vote'].objects.all():
        # create a new.Vote with old's data
models = {
    'old.vote' = { ... },
    'new.vote' = { ... },
}

ملاحظة: يجب عليك استخدام orm[...] للوصول إلى أي نماذج خارج التطبيق التي يتم ترحيلها حاليا. خلاف ذلك، معيار orm.Vote.objects.all() أعمال الترميز.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top