I fixed it in this pull request:
https://github.com/edx/edx-platform/pull/15125
On Thursday, 4 May 2017 16:24:10 UTC+2, Maarten de Waard wrote:
>
> Hi all,
>
> I'm trying to export all courses, so I can have an automated backup of the
> courses my colleagues are making. I've tried running this on ficus.1 on a
> manually deployed live stack as well as on ficus.2 on the docker devstack:
>
> "source /edx/app/edxapp/edxapp_env && \
>
> python /edx/app/edxapp/edx-platform/manage.py \
>
> cms --settings=devstack_docker export_all_courses
> /edx/app/courses/export/"
>
>
> But this leads to
>
> manage.py export_all_courses: error: unrecognized arguments: /edx/app/
> courses/export/
>
> I tried fixing this problem like so:
>
> class Command(BaseCommand):
>
> """
>
> Export all courses from mongo to the specified data directory and list
> the courses which failed to export
> """
>
> help = 'Export all courses from mongo to the specified data directory
> and list the courses which failed to export'
>
>
> def add_arguments(self, parser):
>
> parser.add_argument(
>
> 'output_path',
>
> type=str,
>
> help="output path for the course export")
>
>
>
> def handle(self, *args, **options):
>
> """
>
> Execute the command
>
> """
>
> # if len(args) != 1:
>
> # raise CommandError("export requires maarten one argument:
> <output path>")
>
>
> output_path = options['output_path']
>
> courses, failed_export_courses = export_courses_to_output_path(
> output_path)
>
>
> print "=" * 80
>
> print u"=" * 30 + u"> Export summary"
>
> print u"Total number of courses to export: {0}".format(len(courses
> ))
> print u"Total number of courses which failed to export: {0}".
> format(len(failed_export_courses))
> print u"List of export failed courses ids:"
>
> print u"\n".join(failed_export_courses)
>
> print "=" * 80
>
> But now I have a new error!
>
> Traceback (most recent call last):
> File "/edx/app/edxapp/edx-platform/manage.py", line 116, in <module>
> execute_from_command_line([sys.argv[0]] + django_args)
> File
> "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/management/__init__.py"
> , line 354, in execute_from_command_line
> utility.execute()
> File
> "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/management/__init__.py"
> , line 346, in execute
> self.fetch_command(subcommand).run_from_argv(self.argv)
> File
> "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/management/base.py"
> , line 394, in run_from_argv
> self.execute(*args, **cmd_options)
> File
> "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/management/base.py"
> , line 445, in execute
> output = self.handle(*args, **options)
> File
> "/edx/app/edxapp/edx-platform/cms/djangoapps/contentstore/management/commands/export_all_courses.py"
> , line 30, in handle
> courses, failed_export_courses = export_courses_to_output_path(
> output_path)
> File
> "/edx/app/edxapp/edx-platform/cms/djangoapps/contentstore/management/commands/export_all_courses.py"
> , line 48, in export_courses_to_output_path
> courses = module_store.get_courses()
> File
> "/edx/app/edxapp/edx-platform/common/lib/xmodule/xmodule/modulestore/mixed.py"
> , line 90, in inner
> retval = func(field_decorator=strip_key_collection, *args, **kwargs)
> File
> "/edx/app/edxapp/edx-platform/common/lib/xmodule/xmodule/modulestore/mixed.py"
> , line 322, in get_courses
> course_id = self._clean_locator_for_mapping(course.id)
> AttributeError: 'HiddenDescriptorWithMixins' object has no attribute 'id'
>
>
>
>
> Any ideas? Did this work at some point and is it broken, or is it just me?
>
--
You received this message because you are subscribed to the Google Groups
"General Open edX discussion" group.
To view this discussion on the web visit
https://groups.google.com/d/msgid/edx-code/bf865432-cb50-4b40-9535-f75f439e5c14%40googlegroups.com.