#!/bin/env python import sys sys.path.append('.') import subprocess from migrate_data.env import get_app_env, get_data_dir, get_data_filename, python, pythonpath, manage_py, models app_env = get_app_env() env = { 'DJANGO_GALLERY_ENVIRONMENT': app_env, 'PYTHONPATH': pythonpath, } subprocess.call(['mkdir', '-p', get_data_dir(app_env)]) for model in models: filename = get_data_filename(app_env, model) print "dumping %s to %s" % (model, filename) output = open(filename, 'w') subprocess.Popen([python, manage_py, 'dumpdata', '--indent', '2', model], env=env, stdout=output) output.close()
pk_map = {} file_re = re.compile('^(?P<prefix>\D*)(?P<pk>\d+)(?P<suffix>.*)$') error_objs = [] for name in models: #for name in ['lti.user', 'artwork.artwork', 'exhibitions.exhibition', 'submissions.submission', 'votes.vote']: (app_label, model_name) = name.split('.') model = apps.get_model(app_label, model_name) if model.objects.count(): last_obj = model.objects.latest('id') next_id = last_obj.id + 1 else: next_id = 1 # Read JSON data file filename = get_data_filename(source_env, name) print "Reading %s from %s" % (name, filename) input_file = open(filename, 'r') input_objs = json.load(input_file) input_file.close() print "load %s %s objs, starting at %s" % (len(input_objs), name, next_id) pk_map[name] = {} for obj in input_objs: fields = copy.copy(obj['fields']) mfields = model_fields.get(name, {}) try: if (name == 'lti.user') and (fields.get('username', '') == edge_user.username): new_obj = edge_user
pk_map = {} file_re = re.compile('^(?P<prefix>\D*)(?P<pk>\d+)(?P<suffix>.*)$') error_objs = [] for name in models: #for name in ['lti.user', 'artwork.artwork', 'exhibitions.exhibition', 'submissions.submission', 'votes.vote']: (app_label, model_name) = name.split('.') model = apps.get_model(app_label, model_name) if model.objects.count(): last_obj = model.objects.latest('id') next_id = last_obj.id + 1 else: next_id = 1 # Read JSON data file filename = get_data_filename(source_env, name) print "Reading %s from %s" % (name, filename) input_file = open(filename, 'r') input_objs = json.load(input_file) input_file.close() print "load %s %s objs, starting at %s" % (len(input_objs), name, next_id) pk_map[name] = {} for obj in input_objs: fields = copy.copy(obj['fields']) mfields = model_fields.get(name, {}) try: if (name == 'lti.user') and (fields.get('username', '') == edge_user.username): new_obj = edge_user else: