Local deployment issue

I got a problem while installing tutor in local deployment

python manage.py install_es_indexes
2020-04-12 15:38:54,267 INFO 26 [course_discovery.apps.core.management.commands.install_es_indexes] /openedx/discovery/course_discovery/apps/core/management/commands/install_es_indexes.py:19 - Attempting to establish initial connection to Elasticsearch host [http://elasticsearch:9200]...
2020-04-12 15:38:54,268 INFO 26 [course_discovery.apps.core.management.commands.install_es_indexes] /openedx/discovery/course_discovery/apps/core/management/commands/install_es_indexes.py:21 - ...success!
2020-04-12 15:38:54,268 INFO 26 [course_discovery.apps.core.utils] /openedx/discovery/course_discovery/apps/core/utils.py:18 - Making sure alias [catalog] exists...
2020-04-12 15:38:54,272 WARNING 26 [elasticsearch] /openedx/venv/lib/python3.5/site-packages/elasticsearch/connection/base.py:82 - HEAD /_alias/catalog [status:404 request:0.003s]
2020-04-12 15:38:54,272 WARNING 26 [elasticsearch] /openedx/venv/lib/python3.5/site-packages/elasticsearch/connection/base.py:82 - HEAD /_alias/catalog [status:404 request:0.003s]
2020-04-12 15:38:54,534 INFO 26 [course_discovery.apps.core.utils] /openedx/discovery/course_discovery/apps/core/utils.py:53 - ...index [catalog_20200412_153854] created.
2020-04-12 15:38:54,559 INFO 26 [course_discovery.apps.core.utils] /openedx/discovery/course_discovery/apps/core/utils.py:33 - ...alias updated.
2020-04-12 15:38:55,983 INFO 31 [course_discovery.apps.core.management.commands.create_or_update_partner] /openedx/discovery/course_discovery/apps/core/management/commands/create_or_update_partner.py:141 - Partner created with code dev
2020-04-12 15:38:57,412 INFO 36 [course_discovery.apps.core.management.commands.create_or_update_partner] /openedx/discovery/course_discovery/apps/core/management/commands/create_or_update_partner.py:141 - Partner created with code dev8381
Traceback (most recent call last):
  File "/openedx/venv/lib/python3.5/site-packages/django/db/models/query.py", line 480, in update_or_create
    obj = self.select_for_update().get(**lookup)
  File "/openedx/venv/lib/python3.5/site-packages/django/db/models/query.py", line 380, in get
    self.model._meta.object_name
django.contrib.sites.models.DoesNotExist: Site matching query does not exist.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/openedx/venv/lib/python3.5/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/openedx/venv/lib/python3.5/site-packages/django/db/backends/mysql/base.py", line 101, in execute
    return self.cursor.execute(query, args)
  File "/openedx/venv/lib/python3.5/site-packages/MySQLdb/cursors.py", line 250, in execute
    self.errorhandler(self, exc, value)
  File "/openedx/venv/lib/python3.5/site-packages/MySQLdb/connections.py", line 42, in defaulterrorhandler
    raise errorvalue
  File "/openedx/venv/lib/python3.5/site-packages/MySQLdb/cursors.py", line 247, in execute
    res = self._query(query)
  File "/openedx/venv/lib/python3.5/site-packages/MySQLdb/cursors.py", line 411, in _query
    rowcount = self._do_query(q)
  File "/openedx/venv/lib/python3.5/site-packages/MySQLdb/cursors.py", line 374, in _do_query
    db.query(q)
  File "/openedx/venv/lib/python3.5/site-packages/MySQLdb/connections.py", line 270, in query
    _mysql.connection.query(self, query)
_mysql_exceptions.IntegrityError: (1062, "Duplicate entry 'discovery.localhost' for key 'django_site_domain_a2e37b91_uniq'")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "./manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "/openedx/venv/lib/python3.5/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/openedx/venv/lib/python3.5/site-packages/django/core/management/__init__.py", line 356, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/openedx/venv/lib/python3.5/site-packages/django/core/management/base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/openedx/venv/lib/python3.5/site-packages/django/core/management/base.py", line 330, in execute
    output = self.handle(*args, **options)
  File "/openedx/discovery/course_discovery/apps/core/management/commands/create_or_update_partner.py", line 121, in handle
    site, __ = Site.objects.update_or_create(defaults=defaults, **lookup)
  File "/openedx/venv/lib/python3.5/site-packages/django/db/models/manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/openedx/venv/lib/python3.5/site-packages/django/db/models/query.py", line 482, in update_or_create
    obj, created = self._create_object_from_params(lookup, params)
  File "/openedx/venv/lib/python3.5/site-packages/django/db/models/query.py", line 506, in _create_object_from_params
    six.reraise(*exc_info)
  File "/openedx/venv/lib/python3.5/site-packages/django/utils/six.py", line 686, in reraise
    raise value
  File "/openedx/venv/lib/python3.5/site-packages/django/db/models/query.py", line 498, in _create_object_from_params
    obj = self.create(**params)
  File "/openedx/venv/lib/python3.5/site-packages/django/db/models/query.py", line 394, in create
    obj.save(force_insert=True, using=self.db)
  File "/openedx/venv/lib/python3.5/site-packages/django/db/models/base.py", line 808, in save
    force_update=force_update, update_fields=update_fields)
  File "/openedx/venv/lib/python3.5/site-packages/django/db/models/base.py", line 838, in save_base
    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
  File "/openedx/venv/lib/python3.5/site-packages/django/db/models/base.py", line 924, in _save_table
    result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
  File "/openedx/venv/lib/python3.5/site-packages/django/db/models/base.py", line 963, in _do_insert
    using=using, raw=raw)
  File "/openedx/venv/lib/python3.5/site-packages/django/db/models/manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/openedx/venv/lib/python3.5/site-packages/django/db/models/query.py", line 1076, in _insert
    return query.get_compiler(using=using).execute_sql(return_id)
  File "/openedx/venv/lib/python3.5/site-packages/django/db/models/sql/compiler.py", line 1112, in execute_sql
    cursor.execute(sql, params)
  File "/openedx/venv/lib/python3.5/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/openedx/venv/lib/python3.5/site-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/openedx/venv/lib/python3.5/site-packages/django/utils/six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "/openedx/venv/lib/python3.5/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/openedx/venv/lib/python3.5/site-packages/django/db/backends/mysql/base.py", line 101, in execute
    return self.cursor.execute(query, args)
  File "/openedx/venv/lib/python3.5/site-packages/MySQLdb/cursors.py", line 250, in execute
    self.errorhandler(self, exc, value)
  File "/openedx/venv/lib/python3.5/site-packages/MySQLdb/connections.py", line 42, in defaulterrorhandler
    raise errorvalue
  File "/openedx/venv/lib/python3.5/site-packages/MySQLdb/cursors.py", line 247, in execute
    res = self._query(query)
  File "/openedx/venv/lib/python3.5/site-packages/MySQLdb/cursors.py", line 411, in _query
    rowcount = self._do_query(q)
  File "/openedx/venv/lib/python3.5/site-packages/MySQLdb/cursors.py", line 374, in _do_query
    db.query(q)
  File "/openedx/venv/lib/python3.5/site-packages/MySQLdb/connections.py", line 270, in query
    _mysql.connection.query(self, query)
django.db.utils.IntegrityError: (1062, "Duplicate entry 'discovery.localhost' for key 'django_site_domain_a2e37b91_uniq'")
Error: Command failed with status 1: docker-compose -f /media/vndee/DATA/workspace/kamix/tutor/env/local/docker-compose.yml --project-name tutor_local exec discovery sh -e -c export DJANGO_SETTINGS_MODULE=course_discovery.settings.tutor.production

make migrate

# Creating partners: the courses-api-url and oidc-url-root need to be accessible
# from inside the discovery container in order to successfully run init.
# TODO add --ecommerce-api-url parameters
# Development partners
./manage.py create_or_update_partner  \
  --site-id 1 \
  --site-domain discovery.localhost \
  --code dev --name "Open edX - development" \
  --courses-api-url "http://lms:8000/api/courses/v1/" \
  --oidc-url-root "http://lms:8000/oauth2" \
  --oidc-key "discovery" \
  --oidc-secret "9fxvDhwd"
 
./manage.py create_or_update_partner  \
  --site-id 3 \
  --site-domain localhost \
  --code dev8381 --name "Open edX - development (localhost:8381)" \
  --courses-api-url "http://lms:8000/api/courses/v1/" \
  --oidc-url-root "http://lms:8000/oauth2" \
  --oidc-key "discovery-dev" \
  --oidc-secret "9fxvDhwd"

# Production partner
./manage.py create_or_update_partner  \
  --site-id 2 \
  --site-domain discovery.localhost \
  --code openedx --name "Open edX" \
  --courses-api-url "http://localhost/api/courses/v1/" \
  --oidc-url-root "http://localhost/oauth2" \
  --oidc-key "discovery" \
  --oidc-secret "9fxvDhwd"

./manage.py refresh_course_metadata --partner_code=dev
./manage.py update_index --disable-change-limit

Hi @vndee! It appears that you defined localhost for your LMS host. You should not do that (and I should make Tutor print a big fat warning in case people do). Instead, you should use a regular domain name (“myopenedx.com”); it does not matter if you are running locally or you don’t own this domain name, but it’s important for the rest of the platform configuration.

1 Like