'Create a new course in split_mongo representing the published and draft versions of the course from the
original mongo store. And return the new CourseLocator
If the new course already exists, this raises DuplicateItemError
:param source_course_key: which course to migrate
:param user_id: the user whose action is causing this migration
:param new_org, new_course, new_run: (optional) identifiers for the new course. Defaults to
the source_course_key\'s values.'

def migrate_mongo_course(self, source_course_key, user_id, new_org=None, new_course=None, new_run=None, fields=None, **kwargs):

    original_course = self.source_modulestore.get_course(source_course_key, **kwargs)
    if (original_course is None):
        raise ItemNotFoundError(unicode(source_course_key))
    if (new_org is None):
        new_org = source_course_key.org
    if (new_course is None):
        new_course = source_course_key.course
    if (new_run is None):
        new_run = source_course_key.run
    new_course_key = CourseLocator(new_org, new_course, new_run, branch=ModuleStoreEnum.BranchName.published)
    with self.split_modulestore.bulk_operations(new_course_key):
        new_fields = self._get_fields_translate_references(original_course, new_course_key, None)
        if fields:
            new_fields.update(fields)
        new_course = self.split_modulestore.create_course(new_org, new_course, new_run, user_id, fields=new_fields, master_branch=ModuleStoreEnum.BranchName.published, skip_auto_publish=True, **kwargs)
        self._copy_published_modules_to_course(new_course, original_course.location, source_course_key, user_id, **kwargs)
    with self.split_modulestore.bulk_operations(new_course_key):
        self._add_draft_modules_to_course(new_course.location, source_course_key, user_id, **kwargs)
    return new_course.id
