diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000000..5cf5aed0a8 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,100 @@ +# *************************** +# ** DO NOT EDIT THIS FILE ** +# *************************** +# +# This file was generated by edx-lint: https://github.com/openedx/edx-lint +# +# If you want to change this file, you have two choices, depending on whether +# you want to make a local change that applies only to this repo, or whether +# you want to make a central change that applies to all repos using edx-lint. +# +# Note: If your .editorconfig file is simply out-of-date relative to the latest +# .editorconfig in edx-lint, ensure you have the latest edx-lint installed +# and then follow the steps for a "LOCAL CHANGE". +# +# LOCAL CHANGE: +# +# 1. Edit the local .editorconfig_tweaks file to add changes just to this +# repo's file. +# +# 2. Run: +# +# $ edx_lint write .editorconfig +# +# 3. This will modify the local file. Submit a pull request to get it +# checked in so that others will benefit. +# +# +# CENTRAL CHANGE: +# +# 1. Edit the .editorconfig file in the edx-lint repo at +# https://github.com/openedx/edx-lint/blob/master/edx_lint/files/.editorconfig +# +# 2. install the updated version of edx-lint (in edx-lint): +# +# $ pip install . +# +# 3. Run (in edx-lint): +# +# $ edx_lint write .editorconfig +# +# 4. Make a new version of edx_lint, submit and review a pull request with the +# .editorconfig update, and after merging, update the edx-lint version and +# publish the new version. +# +# 5. In your local repo, install the newer version of edx-lint. +# +# 6. Run: +# +# $ edx_lint write .editorconfig +# +# 7. This will modify the local file. Submit a pull request to get it +# checked in so that others will benefit. +# +# +# +# +# +# STAY AWAY FROM THIS FILE! +# +# +# +# +# +# SERIOUSLY. +# +# ------------------------------ +# Generated by edx-lint version: 5.2.5 +# ------------------------------ +[*] +end_of_line = lf +insert_final_newline = true +charset = utf-8 +indent_style = space +indent_size = 4 +max_line_length = 120 +trim_trailing_whitespace = true + +[{Makefile, *.mk}] +indent_style = tab +indent_size = 8 + +[*.{yml,yaml,json}] +indent_size = 2 + +[*.js] +indent_size = 2 + +[*.diff] +trim_trailing_whitespace = false + +[.git/*] +trim_trailing_whitespace = false + +[COMMIT_EDITMSG] +max_line_length = 72 + +[*.rst] +max_line_length = 79 + +# f2f02689fced7a2e0c62c2f9803184114dc2ae4b diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000000..760d2f59c7 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,5 @@ +---- + +I've completed each of the following or determined they are not applicable: + +- [ ] Made a plan to communicate any major developer interface changes (or N/A) diff --git a/.github/workflows/add-depr-ticket-to-depr-board.yml b/.github/workflows/add-depr-ticket-to-depr-board.yml new file mode 100644 index 0000000000..250e394abc --- /dev/null +++ b/.github/workflows/add-depr-ticket-to-depr-board.yml @@ -0,0 +1,19 @@ +# Run the workflow that adds new tickets that are either: +# - labelled "DEPR" +# - title starts with "[DEPR]" +# - body starts with "Proposal Date" (this is the first template field) +# to the org-wide DEPR project board + +name: Add newly created DEPR issues to the DEPR project board + +on: + issues: + types: [opened] + +jobs: + routeissue: + uses: openedx/.github/.github/workflows/add-depr-ticket-to-depr-board.yml@master + secrets: + GITHUB_APP_ID: ${{ secrets.GRAPHQL_AUTH_APP_ID }} + GITHUB_APP_PRIVATE_KEY: ${{ secrets.GRAPHQL_AUTH_APP_PEM }} + SLACK_BOT_TOKEN: ${{ secrets.SLACK_ISSUE_BOT_TOKEN }} diff --git a/.github/workflows/add-remove-label-on-comment.yml b/.github/workflows/add-remove-label-on-comment.yml new file mode 100644 index 0000000000..0f369db7d2 --- /dev/null +++ b/.github/workflows/add-remove-label-on-comment.yml @@ -0,0 +1,20 @@ +# This workflow runs when a comment is made on the ticket +# If the comment starts with "label: " it tries to apply +# the label indicated in rest of comment. +# If the comment starts with "remove label: ", it tries +# to remove the indicated label. +# Note: Labels are allowed to have spaces and this script does +# not parse spaces (as often a space is legitimate), so the command +# "label: really long lots of words label" will apply the +# label "really long lots of words label" + +name: Allows for the adding and removing of labels via comment + +on: + issue_comment: + types: [created] + +jobs: + add_remove_labels: + uses: openedx/.github/.github/workflows/add-remove-label-on-comment.yml@master + diff --git a/.github/workflows/cli-tests.yml b/.github/workflows/cli-tests.yml new file mode 100644 index 0000000000..e50b4b13f5 --- /dev/null +++ b/.github/workflows/cli-tests.yml @@ -0,0 +1,70 @@ +# CLI tests: Check that various Makefile targets behave as expected +# (without going deeper into provisioning and such) + +name: CLI tests + +on: + push: + branches: [master] + pull_request: + branches: + - '**' + +jobs: + + run_ci: + runs-on: ${{ matrix.os.image }} + env: + DEVSTACK_WORKSPACE: /tmp + SHALLOW_CLONE: 1 + # Don't report metrics as real usage + DEVSTACK_METRICS_TESTING: ci + strategy: + matrix: + os: + - name: linux + image: ubuntu-20.04 # Focal Fossa + - name: mac + image: macos-12 + python-version: + - '3.8' + fail-fast: false + + steps: + - uses: actions/checkout@v2 + - name: setup python + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: Docker installation - Linux + if: ${{ matrix.os.name == 'linux' }} + run: | + docker version + sudo apt-get update + sudo apt install apt-transport-https ca-certificates curl software-properties-common + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - + sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal test" + sudo apt update + sudo apt install docker-ce + docker version + docker-compose --version + + # Note: we cannot use Docker Desktop because it has not been licensed for use in GithubActions + - name: Docker installation - Mac + if: ${{ matrix.os.name == 'mac' }} + run: | + brew install lima docker + limactl start --name=default template://docker + echo "DOCKER_HOST=unix:///Users/runner/.lima/default/sock/docker.sock" >> $GITHUB_ENV + + - name: Install Python dependencies + run: make requirements + + # proactively download and extract the image to avoid test timeouts in tests/metrics.py + # this should be moved into a test setup + - name: Pull redis docker image + run: make dev.pull.redis + + - name: CLI tests + run: pytest -s ./tests/*.py diff --git a/.github/workflows/commitlint.yml b/.github/workflows/commitlint.yml new file mode 100644 index 0000000000..fec11d6c25 --- /dev/null +++ b/.github/workflows/commitlint.yml @@ -0,0 +1,10 @@ +# Run commitlint on the commit messages in a pull request. + +name: Lint Commit Messages + +on: + - pull_request + +jobs: + commitlint: + uses: openedx/.github/.github/workflows/commitlint.yml@master diff --git a/.github/workflows/pr-automerge-open-release.yml b/.github/workflows/pr-automerge-open-release.yml new file mode 100644 index 0000000000..25af91e052 --- /dev/null +++ b/.github/workflows/pr-automerge-open-release.yml @@ -0,0 +1,24 @@ +# Enable automerging for named release branches. +# See the reusable workflow for details: +# https://github.com/openedx/.github/.github/workflows/pr-automerge-open-release.yml + +name: Automerge BTR open-release PRs + +on: + issue_comment: + branches: + - open-release/* + types: + - created + - edited + pull_request_target: + branches: + - open-release/* + types: + - opened + - edited + - ready_for_review + +jobs: + automerge: + uses: openedx/.github/.github/workflows/pr-automerge-open-release.yml@master diff --git a/.github/workflows/provisioning-tests.yml b/.github/workflows/provisioning-tests.yml new file mode 100644 index 0000000000..c07f44be18 --- /dev/null +++ b/.github/workflows/provisioning-tests.yml @@ -0,0 +1,103 @@ +# Core tests: Provision and bring up various services on devstack + +name: Provisioning tests + +on: + push: + branches: [master] + pull_request: + branches: + - '**' + schedule: + # run at 7:30 am M-F + - cron: '30 11 * * 1-5' + +jobs: + + run_ci: + runs-on: ${{ matrix.os }} + env: + DEVSTACK_WORKSPACE: /tmp + SHALLOW_CLONE: 1 + # Don't report metrics as real usage + DEVSTACK_METRICS_TESTING: ci + strategy: + matrix: + os: + - ubuntu-20.04 # Ubuntu 20.04 "Focal Fossa" + python-version: [ '3.8' ] + services: [ discovery+lms+forum ,registrar+lms, ecommerce+lms, edx_notes_api+lms, credentials+lms, xqueue] + fail-fast: false # some services can be flaky; let others run to completion even if one fails + + steps: + - uses: actions/checkout@v2 + - name: setup python + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: installations and version upgrades + run: | + docker version + sudo apt-get update + sudo apt install apt-transport-https ca-certificates curl software-properties-common + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - + sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal test" + sudo apt update + sudo apt install docker-ce + docker version + docker-compose --version + + - name: free up disk space + run: sudo apt remove --purge -y ghc-* azure-cli google-cloud-sdk hhvm llvm-* dotnet-* powershell mono-* php* ruby* + + - name: set up requirements + run: make requirements + + - name: clone repositories + run: make dev.clone.https + + - name: pull images and print + run: | + make dev.pull.${{matrix.services}} + docker images --digests | grep latest | sort + + - name: provision + run: make dev.provision.${{matrix.services}} + + - name: dev.up + run: make dev.up.${{matrix.services}} + + - name: dev.check + run: make dev.check.${{matrix.services}} + + - name: notify on failure + if: ${{ failure() && github.ref == 'refs/heads/master' }} + uses: dawidd6/action-send-mail@v3 + with: + server_address: email-smtp.us-east-1.amazonaws.com + server_port: 465 + username: ${{secrets.EDX_SMTP_USERNAME}} + password: ${{secrets.EDX_SMTP_PASSWORD}} + subject: 'Failure: Devstack provisioning tests for ${{matrix.services}} #${{github.run_id}}' + to: devstack-provisioning-tests@2u-internal.opsgenie.net + from: github-actions + body: | + Devstack provisioning tests in ${{github.repository}} for ${{matrix.services}} failed! For details see . + Runbook url: https://2u-internal.atlassian.net/wiki/spaces/AT/pages/16384920/Failure+Devstack+provisioning+tests+-+Runbook + + - name: close alerts on success + if: ${{ !failure() && github.ref == 'refs/heads/master' }} + uses: dawidd6/action-send-mail@v3 + with: + server_address: email-smtp.us-east-1.amazonaws.com + server_port: 465 + username: ${{secrets.EDX_SMTP_USERNAME}} + password: ${{secrets.EDX_SMTP_PASSWORD}} + subject: 'Back to normal: Devstack provisioning tests for ${{matrix.services}} #${{github.run_id}}' + to: devstack-provisioning-tests@2u-internal.opsgenie.net + from: github-actions + body: Devstack provisioning tests in ${{github.repository}} are back to normal for ${{matrix.services}} + + - name: docs + run: make docs diff --git a/.github/workflows/self-assign-issue.yml b/.github/workflows/self-assign-issue.yml new file mode 100644 index 0000000000..37522fd57b --- /dev/null +++ b/.github/workflows/self-assign-issue.yml @@ -0,0 +1,12 @@ +# This workflow runs when a comment is made on the ticket +# If the comment starts with "assign me" it assigns the author to the +# ticket (case insensitive) + +name: Assign comment author to ticket if they say "assign me" +on: + issue_comment: + types: [created] + +jobs: + self_assign_by_comment: + uses: openedx/.github/.github/workflows/self-assign-issue.yml@master diff --git a/.github/workflows/upgrade-python-requirements.yml b/.github/workflows/upgrade-python-requirements.yml new file mode 100644 index 0000000000..e0ba6d02d0 --- /dev/null +++ b/.github/workflows/upgrade-python-requirements.yml @@ -0,0 +1,24 @@ +name: Upgrade Requirements + +on: + schedule: + - cron: "0 2 * * 3" + workflow_dispatch: + inputs: + branch: + description: 'Target branch to create requirements PR against' + required: true + default: 'master' +jobs: + call-upgrade-python-requirements-workflow: + with: + branch: ${{ github.event.inputs.branch }} + team_reviewers: "arbi-bom" + email_address: arbi-bom@edx.org + send_success_notification: false + secrets: + requirements_bot_github_token: ${{ secrets.REQUIREMENTS_BOT_GITHUB_TOKEN }} + requirements_bot_github_email: ${{ secrets.REQUIREMENTS_BOT_GITHUB_EMAIL }} + edx_smtp_username: ${{ secrets.EDX_SMTP_USERNAME }} + edx_smtp_password: ${{ secrets.EDX_SMTP_PASSWORD }} + uses: openedx/.github/.github/workflows/upgrade-python-requirements.yml@master diff --git a/.gitignore b/.gitignore index 0b63bac295..d7ea3b685a 100644 --- a/.gitignore +++ b/.gitignore @@ -99,3 +99,9 @@ ENV/ # Personal makefile extensions local.mk + +# Local option overrides +options.local.mk + +# emacs +*~ \ No newline at end of file diff --git a/.readthedocs.yml b/.readthedocs.yml new file mode 100644 index 0000000000..0f029d2fd3 --- /dev/null +++ b/.readthedocs.yml @@ -0,0 +1,15 @@ +# .readthedocs.yml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +# Build documentation in the docs/ directory with Sphinx +sphinx: + configuration: docs/conf.py + +python: + version: 3.8 + install: + - requirements: requirements/doc.txt diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 2c584d39b0..0000000000 --- a/.travis.yml +++ /dev/null @@ -1,36 +0,0 @@ -sudo: required - -language: python - -python: - - "3.5" - -env: - - DEVSTACK_WORKSPACE=/tmp DOCKER_COMPOSE_VERSION=1.13.0 SHALLOW_CLONE=1 DEVSTACK='lms' - - DEVSTACK_WORKSPACE=/tmp DOCKER_COMPOSE_VERSION=1.13.0 SHALLOW_CLONE=1 DEVSTACK='analytics_pipeline' - -services: - - docker - -before_install: - # Upgrade Docker to the latest version - - docker version - - sudo apt-get update - - sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce - - docker version - - # Upgrade Docker Compose to the latest version - - docker-compose --version - - sudo rm /usr/local/bin/docker-compose - - curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose - - chmod +x docker-compose - - sudo mv docker-compose /usr/local/bin - - docker-compose --version - - - make requirements - - make dev.clone - - if [[ $DEVSTACK == 'lms' ]]; then make pull; fi - - if [[ $DEVSTACK == 'analytics_pipeline' ]]; then make dev.up.analytics_pipeline; fi - -script: - - "./.travis/run.sh" diff --git a/.travis/run.sh b/.travis/run.sh deleted file mode 100755 index e94a716a62..0000000000 --- a/.travis/run.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -set -e -set -x - -if [[ $DEVSTACK == 'lms' ]]; then - make dev.provision - make dev.up - sleep 60 # LMS needs like 60 seconds to come up - make healthchecks - make validate-lms-volume - # Disable e2e-tests until either: - # * tests are less flaky - # * We have a way to test the infrastructure for testing but ignore the test results. - # See PLAT-1712 - # - make e2e-tests - make up-marketing-detached -fi - -if [[ $DEVSTACK == 'analytics_pipeline' ]]; then - make dev.provision.analytics_pipeline - make dev.up.analytics_pipeline - sleep 30 # hadoop services need some time to be fully functional and out of safemode - make analytics-pipeline-devstack-test -fi diff --git a/Makefile b/Makefile index a844eb7398..10aaa1a281 100644 --- a/Makefile +++ b/Makefile @@ -1,276 +1,636 @@ -######################################################################################################################## -# -# When adding a new target: -# - If you are adding a new service make sure the dev.reset target will fully reset said service. -# -######################################################################################################################## -.DEFAULT_GOAL := help -.PHONY: requirements +# This Makefile serves as the primary command-line interface to interacting with Devstack. + +# Almost all targets take the form: +# make dev.ACTION.SERVICES +# where ACTION could be 'up', 'pull.without-deps', 'attach', and so on, +# and SERVICES is a plus-sign-separated list of services. +# Examples: +# make dev.attach.credentials +# make dev.pull.registrar+studio +# make dev.up.lms +# make dev.up.without-deps.lms+forum+discovery+mysql57+elasticsearch+memcached +# make dev.restart-container.mysql57+lms + +# There are also "prefix-form" targets, which are simply an alternate way to spell +# the 'dev.' targets. +# Specifically: +# make dev.ACTION.SERVICE +# can be spelled as: +# make SERVICE-ACTION +# For example: +# make dev.up.registrar +# can be spelled: +# make registrar-up + +# Additionally, this file pulls in default configuration variables from `options.mk` +# as well as local overrides in `options.local.mk`, if present. +# Finally, extra targets from `compatibility.mk` and `local.mk` (if present) +# are pulled into this Makefile. + +# Housekeeping Rules: +# * Put new targets under an appropriate header comment. +# * Prefix targets with 'dev.' if and only if they are meant to be part +# of the general developer interface. +# * Consider adding "prefix-form" versions of new targets +# for consistency/convenience of interface. +# * Add brief ##-prefixed comments on same line as targets to include them +# in the `make help` message. Avoid adding descriptions that are overly long, +# redundant with other targets, or irrelevant to users. -DEVSTACK_WORKSPACE ?= $(shell pwd)/.. +.DEFAULT_GOAL := help +# All devstack targets are "PHONY" in that they do not name actual files. +# Thus, all non-parameterized targets should be added to this declaration. +.PHONY: build-courses \ + create-test-course dev.attach dev.backup dev.cache-programs dev.check \ + dev.check-memory dev.checkout dev.clone dev.clone.https dev.clone.ssh \ + dev.dbshell dev.destroy dev.down dev.drop-db dev.kill dev.logs \ + dev.migrate dev.migrate.lms dev.migrate.studio \ + devpi-password dev.provision dev.ps dev.pull dev.pull.without-deps \ + dev.reset dev.reset-repos dev.restart-container dev.restart-devserver \ + dev.restart-devserver.forum dev.restore dev.rm-stopped dev.shell \ + dev.shell.credentials dev.shell.discovery \ + dev.shell.ecommerce dev.shell.lms dev.shell.lms_watcher \ + dev.shell.registrar dev.shell.studio \ + dev.shell.studio_watcher dev.shell.xqueue dev.shell.xqueue_consumer \ + dev.static dev.static.lms dev.static.studio dev.stats dev.status \ + dev.stop dev.up dev.up.attach dev.up.shell \ + dev.up.without-deps dev.up.without-deps.shell dev.up.with-programs \ + dev.up.with-watchers dev.validate docs e2e-tests e2e-tests.with-shell \ + help requirements impl-dev.clone.https impl-dev.clone.ssh impl-dev.provision \ + impl-dev.pull impl-dev.pull.without-deps impl-dev.up impl-dev.up.attach \ + impl-dev.up.without-deps selfcheck upgrade upgrade \ + validate-lms-volume vnc-passwords + +# Load up options (configurable through options.local.mk). +include options.mk + +# The `COMPOSE_FILE` environment variable tells Docker Compose which YAML +# files to use when `docker-compose` is called without specifying any YAML files. +# These files include definitions of services and volumes. + +# Files for use with local volume mounting (default). +COMPOSE_FILE := docker-compose-host.yml +COMPOSE_FILE := $(COMPOSE_FILE):docker-compose-themes.yml +COMPOSE_FILE := $(COMPOSE_FILE):docker-compose-watchers.yml +COMPOSE_FILE := docker-compose.yml:$(COMPOSE_FILE) + +# Tell Docker Compose that the Compose file list uses a colon as the separator. +COMPOSE_PATH_SEPARATOR := : + +# All runnable services, separated by plus signs. +ALL_SERVICES := $(EDX_SERVICES)+$(THIRD_PARTY_SERVICES) + +# These `*_SERVICES_LIST` variables are equivalent to their `*_SERVICES` counterparts, +# but with spaces for separators instead of plus signs. +EDX_SERVICES_LIST := $(subst +, ,$(EDX_SERVICES)) +DB_SERVICES_LIST := $(subst +, ,$(DB_SERVICES)) +ASSET_SERVICES_LIST := $(subst +, ,$(ASSET_SERVICES)) +DEFAULT_SERVICES_LIST := $(subst +, ,$(DEFAULT_SERVICES)) +THIRD_PARTY_SERVICES_LIST := $(subst +, ,$(THIRD_PARTY_SERVICES)) +ALL_SERVICES_LIST := $(subst +, ,$(ALL_SERVICES)) + +# Get information on host operating system via the `uname` command. OS := $(shell uname) -COMPOSE_PROJECT_NAME=devstack +# Need to run some things under winpty in a Windows git-bash shell +# (but not when calling bash from a command shell or PowerShell). +ifneq (,$(MINGW_PREFIX)) + WINPTY := winpty +else + WINPTY := +endif + +# Don't try redirecting to /dev/null in any Windows shell +ifneq (,$(findstring MINGW,$(OS))) + DEVNULL := +else + DEVNULL := >/dev/null +endif + +# Export Makefile variables to recipe shells. +export -export DEVSTACK_WORKSPACE -export COMPOSE_PROJECT_NAME +# Include aliases from old Devstack commands to the ones in this Makefile. +# This allows us to evolve and tidy up the Devstack interface without removing support +# for existing scripts and workflows. +include compatibility.mk -include *.mk +# Include local, git-ignored Makefile with additional targets. +-include local.mk # Prefix with hyphen to tolerate absence of file. + + +######################################################################################## +# Targets for managing the Devstack repo itself. +######################################################################################## # Generates a help message. Borrowed from https://github.com/pydanny/cookiecutter-djangopackage. -help: ## Display this help message +help: ## Display this help message. @echo "Please use \`make ' where is one of" - @perl -nle'print $& if m{^[\.a-zA-Z_-]+:.*?## .*$$}' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m %-25s\033[0m %s\n", $$1, $$2}' + @awk -F ':.*?## ' '/^[a-zA-Z]/ && NF==2 {printf "\033[36m %-28s\033[0m %s\n", $$1, $$2}' Makefile | sort -requirements: ## Install requirements - pip install -r requirements/base.txt +requirements: ## install development environment requirements + pip install -r requirements/dev.txt -upgrade: ## Upgrade requirements with pip-tools +upgrade: export CUSTOM_COMPILE_COMMAND=make upgrade +upgrade: ## Upgrade requirements with pip-tools. pip install -qr requirements/pip-tools.txt + pip-compile --allow-unsafe --rebuild --upgrade -o requirements/pip.txt requirements/pip.in pip-compile --upgrade -o requirements/pip-tools.txt requirements/pip-tools.in + pip install -qr requirements/pip.txt + pip install -qr requirements/pip-tools.txt pip-compile --upgrade -o requirements/base.txt requirements/base.in - bash post-pip-compile.sh \ - requirements/pip-tools.txt \ - requirements/base.txt \ + pip-compile --upgrade -o requirements/doc.txt requirements/doc.in + pip-compile --upgrade -o requirements/test.txt requirements/test.in + pip-compile --upgrade -o requirements/dev.txt requirements/dev.in + +selfcheck: ## Check that the Makefile is free of Make syntax errors. + @echo "The Makefile is well-formed." -dev.clone: ## Clone service repos to the parent directory + +######################################################################################## +# Developer interface: Repository management. +######################################################################################## + +dev.reset-repos: ## Attempt to reset the local repo checkouts to the default branch working state. + $(WINPTY) bash ./repo.sh reset + +dev.status: ## Prints the status of all git repositories. + $(WINPTY) bash ./repo.sh status + +dev.checkout: ## Check out "openedx-release/$OPENEDX_RELEASE" in each repo if set, use default branch otherwise. + ./repo.sh checkout + +dev.clone: dev.clone.ssh ## Clone service repos to the parent directory. + +impl-dev.clone.https: ## Clone service repos using HTTPS method to the parent directory. ./repo.sh clone -dev.provision.run: ## Provision all services with local mounted directories - DOCKER_COMPOSE_FILES="-f docker-compose.yml -f docker-compose-host.yml" ./provision.sh +dev.clone.https: ## Clone service repos using HTTPS method to the parent directory. + @scripts/send_metrics.py wrap "$@" + +impl-dev.clone.ssh: ## Clone service repos using SSH method to the parent directory. + ./repo.sh clone_ssh + +dev.clone.ssh: ## Clone service repos using SSH method to the parent directory. + @scripts/send_metrics.py wrap "$@" + +######################################################################################## +# Developer interface: Docker image management. +######################################################################################## + +dev.prune: ## Prune dangling docker images, containers, and networks. Useful when you get the 'no space left on device' error + docker system prune -f + # See also: https://edx.readthedocs.io/projects/open-edx-devstack/en/latest/troubleshoot_general_tips.html#no-space-left-on-device + +dev.pull.without-deps: _expects-service-list.dev.pull.without-deps + +dev.pull.without-deps.%: ## Pull latest Docker images for specific services. + @scripts/send_metrics.py wrap "dev.pull.without-deps.$*" + +impl-dev.pull.without-deps.%: ## Pull latest Docker images for specific services. + docker-compose pull $$(echo $* | tr + " ") + +dev.pull: + @scripts/send_metrics.py wrap "$@" + +impl-dev.pull: + @scripts/make_warn_default_large.sh "dev.pull" + +dev.pull.large-and-slow: dev.pull.$(DEFAULT_SERVICES) ## Pull latest Docker images required by default services. + @echo # at least one statement so that dev.pull.% doesn't run too + +# Wildcards must be below anything they could match +dev.pull.%: ## Pull latest Docker images for services and their dependencies. + @scripts/send_metrics.py wrap "dev.pull.$*" + +impl-dev.pull.%: ## Pull latest Docker images for services and their dependencies. + docker-compose pull --include-deps $$(echo $* | tr + " ") + +######################################################################################## +# Developer interface: Database management. +######################################################################################## + +impl-dev.provision: ## Provision dev environment with default services, and then stop them. + # We provision all default services as well as 'e2e' (end-to-end tests). + # e2e is not part of `DEFAULT_SERVICES` because it isn't a service; + # it's just a way to tell ./provision.sh that the fake data for end-to-end + # tests should be prepared. + make dev.check-memory + $(WINPTY) bash ./provision.sh $(DEFAULT_SERVICES)+e2e + make dev.stop + +dev.provision: ## Provision dev environment with default services, and then stop them. + @scripts/send_metrics.py wrap "$@" + +impl-dev.provision.%: dev.check-memory ## Provision specified services. + echo $* + $(WINPTY) bash ./provision.sh $* + +dev.provision.%: ## Provision specified services. + @scripts/send_metrics.py wrap "dev.provision.$*" -dev.provision: | check-memory dev.clone dev.provision.run stop ## Provision dev environment with all services stopped +dev.backup: dev.up.mysql57+mongo+elasticsearch+elasticsearch7+elasticsearch710+opensearch12+coursegraph ## Write all data volumes to the host. + docker run --rm --volumes-from $$(make --silent --no-print-directory dev.print-container.mysql57) -v $$(pwd)/.dev/backups:/backup debian:jessie tar zcvf /backup/mysql57.tar.gz /var/lib/mysql + docker run --rm --volumes-from $$(make --silent --no-print-directory dev.print-container.mongo) -v $$(pwd)/.dev/backups:/backup debian:jessie tar zcvf /backup/mongo.tar.gz /data/db + docker run --rm --volumes-from $$(make --silent --no-print-directory dev.print-container.elasticsearch) -v $$(pwd)/.dev/backups:/backup debian:jessie tar zcvf /backup/elasticsearch.tar.gz /usr/share/elasticsearch/data + docker run --rm --volumes-from $$(make --silent --no-print-directory dev.print-container.elasticsearch7) -v $$(pwd)/.dev/backups:/backup debian:jessie tar zcvf /backup/elasticsearch7.tar.gz /usr/share/elasticsearch/data + docker run --rm --volumes-from $$(make --silent --no-print-directory dev.print-container.elasticsearch710) -v $$(pwd)/.dev/backups:/backup debian:jessie tar zcvf /backup/elasticsearch710.tar.gz /usr/share/elasticsearch/data + docker run --rm --volumes-from $$(make --silent --no-print-directory dev.print-container.opensearch12) -v $$(pwd)/.dev/backups:/backup debian:jessie tar zcvf /backup/opensearch12.tar.gz /usr/share/opensearch/data + docker run --rm --volumes-from $$(make --silent --no-print-directory dev.print-container.coursegraph) -v $$(pwd)/.dev/backups:/backup debian:jessie tar zcvf /backup/coursegraph.tar.gz /data -dev.provision.xqueue: | check-memory dev.provision.xqueue.run stop stop.xqueue +dev.restore: dev.up.mysql57+mongo+elasticsearch+elasticsearch7+elasticsearch710+opensearch12+coursegraph ## Restore all data volumes from the host. WILL OVERWRITE ALL EXISTING DATA! + docker run --rm --volumes-from $$(make --silent --no-print-directory dev.print-container.mysql57) -v $$(pwd)/.dev/backups:/backup debian:jessie tar zxvf /backup/mysql57.tar.gz + docker run --rm --volumes-from $$(make --silent --no-print-directory dev.print-container.mongo) -v $$(pwd)/.dev/backups:/backup debian:jessie tar zxvf /backup/mongo.tar.gz + docker run --rm --volumes-from $$(make --silent --no-print-directory dev.print-container.elasticsearch) -v $$(pwd)/.dev/backups:/backup debian:jessie tar zxvf /backup/elasticsearch.tar.gz + docker run --rm --volumes-from $$(make --silent --no-print-directory dev.print-container.elasticsearch7) -v $$(pwd)/.dev/backups:/backup debian:jessie tar zxvf /backup/elasticsearch7.tar.gz + docker run --rm --volumes-from $$(make --silent --no-print-directory dev.print-container.elasticsearch710) -v $$(pwd)/.dev/backups:/backup debian:jessie tar zxvf /backup/elasticsearch710.tar.gz + docker run --rm --volumes-from $$(make --silent --no-print-directory dev.print-container.opensearch12) -v $$(pwd)/.dev/backups:/backup debian:jessie tar zxvf /backup/opensearch12.tar.gz + docker run --rm --volumes-from $$(make --silent --no-print-directory dev.print-container.coursegraph) -v $$(pwd)/.dev/backups:/backup debian:jessie tar zxvf /backup/coursegraph.tar.gz -dev.provision.xqueue.run: - DOCKER_COMPOSE_FILES="-f docker-compose.yml -f docker-compose-xqueue.yml" ./provision-xqueue.sh +# List of Makefile targets to run database migrations, in the form dev.migrate.$(service) +# Services will only have their migrations added here +# if the service is present in both $(DEFAULT_SERVICES_LIST) and $(DB_SERVICES_LIST). +_db_migration_targets = \ +$(foreach db_service,$(DB_SERVICES_LIST),\ + $(if $(filter $(db_service), $(DEFAULT_SERVICES_LIST)),\ + dev.migrate.$(db_service))) -dev.reset: | down dev.repo.reset pull dev.up static update-db ## Attempts to reset the local devstack to a the master working state +dev.migrate: | $(_db_migration_targets) ## Run migrations for applicable default services. -dev.status: ## Prints the status of all git repositories - ./repo.sh status +dev.migrate.studio: + docker-compose exec -T -u root lms bash -e -c '/edx/app/edxapp/venvs/edxapp/bin/python manage.py cms showmigrations --database default --traceback --pythonpath=. --settings devstack_docker' + docker-compose exec -T -u root lms bash -e -c '/edx/app/edxapp/venvs/edxapp/bin/python manage.py cms migrate --database default --noinput --traceback --pythonpath=. --settings devstack_docker' -dev.repo.reset: ## Attempts to reset the local repo checkouts to the master working state - ./repo.sh reset +dev.migrate.lms: + docker-compose exec -T -u root lms bash -e -c '/edx/app/edxapp/venvs/edxapp/bin/python manage.py lms showmigrations --database default --traceback --pythonpath=. --settings devstack_docker' + docker-compose exec -T -u root lms bash -e -c '/edx/app/edxapp/venvs/edxapp/bin/python manage.py lms migrate --database default --noinput --traceback --pythonpath=. --settings devstack_docker' -dev.up: | check-memory ## Bring up all services with host volumes - docker-compose -f docker-compose.yml -f docker-compose-host.yml up -d - @# Comment out this next line if you want to save some time and don't care about catalog programs - ./programs/provision.sh cache >/dev/null +dev.migrate.%: ## Run migrations on a service. + docker-compose exec $* bash -c 'source /edx/app/$*/$*_env && cd /edx/app/$*/$*/ && make migrate' -dev.up.watchers: | check-memory ## Bring up asset watcher containers - docker-compose -f docker-compose-watchers.yml up -d +dev.drop-db: _expects-database.dev.drop-db -dev.up.xqueue: | check-memory ## Bring up xqueue, assumes you already have lms running - docker-compose -f docker-compose.yml -f docker-compose-xqueue.yml -f docker-compose-host.yml up -d +dev.drop-db.%: ## Irreversably drop the contents of a MySQL database in each mysql container. + docker-compose exec -T mysql57 bash -c "mysql --execute=\"DROP DATABASE $*;\"" -dev.up.all: | dev.up dev.up.watchers ## Bring up all services with host volumes, including watchers -dev.sync.daemon.start: ## Start the docker-sycn daemon - docker-sync start +######################################################################################## +# Developer interface: Container management. +######################################################################################## -dev.sync.provision: | dev.sync.daemon.start dev.provision ## Provision with docker-sync enabled +dev.up.attach: _expects-service.dev.up.attach -dev.sync.requirements: ## Install requirements - gem install docker-sync +impl-dev.up.attach.%: ## Bring up a service and its dependencies + and attach to it. + docker-compose up $* -dev.sync.up: dev.sync.daemon.start ## Bring up all services with docker-sync enabled - docker-compose -f docker-compose.yml -f docker-compose-sync.yml up -d +dev.up.attach.%: ## Bring up a service and its dependencies + and attach to it. + @scripts/send_metrics.py wrap "dev.up.attach.$*" -provision: | dev.provision ## This command will be deprecated in a future release, use dev.provision - echo "\033[0;31mThis command will be deprecated in a future release, use dev.provision\033[0m" +dev.up.shell: _expects-service.dev.up.shell -stop: ## Stop all services - (test -d .docker-sync && docker-sync stop) || true ## Ignore failure here +dev.up.shell.%: ## Bring up a service and its dependencies + shell into it. + make dev.up.$* + make dev.shell.$* + +dev.up.with-programs: dev.up dev.cache-programs ## Bring up default services + cache programs in LMS. + +dev.up.with-programs.%: dev.up.$* dev.cache-programs ## Bring up services and their dependencies + cache programs in LMS. + +dev.up.with-watchers: dev.up.$(DEFAULT_SERVICES)+lms_watcher+studio_watcher ## Bring up default services + asset watcher containers. + +dev.up.with-watchers.%: ## Bring up services and their dependencies + asset watcher containers. + make dev.up.$* + make dev.up.lms_watcher+studio_watcher + +dev.up.without-deps: _expects-service-list.dev.up.without-deps + +impl-dev.up.without-deps.%: dev.check-memory ## Bring up services by themselves. + docker-compose up --d --no-deps $$(echo $* | tr + " ") + +dev.up.without-deps.%: ## Bring up services by themselves. + @scripts/send_metrics.py wrap "dev.up.without-deps.$*" + +dev.up.without-deps.shell: _expects-service.dev.up.without-deps.shell + +dev.up.without-deps.shell.%: ## Bring up a service by itself + shell into it. + make dev.up.without-deps.$* + make dev.shell.$* + +dev.up: + @scripts/make_warn_default_large.sh "$@" + +dev.up.large-and-slow: dev.up.$(DEFAULT_SERVICES) ## Bring up default services. + @echo # at least one statement so that dev.up.% doesn't run too + +impl-dev.up.%: dev.check-memory ## Bring up services and their dependencies. + docker-compose up -d $$(echo $* | tr + " ") +ifeq ($(ALWAYS_CACHE_PROGRAMS),true) + make dev.cache-programs +endif + +# Wildcards must be below anything they could match +dev.up.%: + @scripts/send_metrics.py wrap "dev.up.$*" + +dev.ps: ## View list of created services and their statuses. + docker-compose ps + +dev.print-container.%: ## Get the ID of the running container for a given service. + @# Can be run as ``make --silent --no-print-directory dev.print-container.$service`` for just ID. + @echo $$(docker-compose ps --quiet $*) + +dev.restart-container: ## Restart all service containers. + docker-compose restart $$(echo $* | tr + " ") + +dev.restart-container.%: ## Restart specific services' containers. + docker-compose restart $$(echo $* | tr + " ") + +dev.stop: ## Stop all running services. docker-compose stop -stop.watchers: ## Stop asset watchers - docker-compose -f docker-compose-watchers.yml stop +dev.stop.%: ## Stop specific services. + docker-compose stop $$(echo $* | tr + " ") -stop.all: | stop.analytics_pipeline stop stop.watchers ## Stop all containers, including asset watchers +dev.kill: ## Kill all running services. + docker-compose stop -stop.xqueue: - docker-compose -f docker-compose-xqueue.yml stop +dev.kill.%: ## Kill specific services. + docker-compose kill $$(echo $* | tr + " ") -down: ## Remove all service containers and networks - (test -d .docker-sync && docker-sync clean) || true ## Ignore failure here - docker-compose -f docker-compose.yml -f docker-compose-watchers.yml -f docker-compose-xqueue.yml -f docker-compose-analytics-pipeline.yml down +dev.rm-stopped: ## Remove stopped containers. Does not affect running containers. + docker-compose rm --force -destroy: ## Remove all devstack-related containers, networks, and volumes - ./destroy.sh +dev.down: ## Documentation for a change to naming + @echo "dev.down has been renamed to dev.remove-containers. If this doesn't seem like what you were looking for, you probably want to be using dev.stop instead. See docs for more details." -logs: ## View logs from containers running in detached mode - docker-compose -f docker-compose.yml -f docker-compose-analytics-pipeline.yml logs -f +dev.down.%: + @echo "dev.down has been renamed to dev.remove-containers. If this doesn't seem like what you were looking for, you probably want to be using dev.stop instead. See docs for more details." -%-logs: ## View the logs of the specified service container - docker-compose -f docker-compose.yml -f docker-compose-analytics-pipeline.yml logs -f --tail=500 $* +dev.remove-containers: ## Stop and remove containers and networks for all services. + docker-compose down -xqueue-logs: ## View logs from containers running in detached mode - docker-compose -f docker-compose-xqueue.yml logs -f xqueue +dev.remove-containers.%: ## Stop and remove containers for specific services. + docker-compose rm --force --stop $$(echo $* | tr + " ") -xqueue_consumer-logs: ## View logs from containers running in detached mode - docker-compose -f docker-compose-xqueue.yml logs -f xqueue_consumer -pull: ## Update Docker images - docker-compose pull --parallel +######################################################################################## +# Developer interface: System queries and checks. +######################################################################################## -pull.xqueue: ## Update XQueue Docker images - docker-compose -f docker-compose-xqueue.yml pull --parallel +dev.check-memory: ## Check if enough memory has been allocated to Docker. + @if [ `docker info --format '{{.MemTotal}}'` -lt 2095771648 ]; then echo "\033[0;31mWarning, System Memory is set too low!!! Increase Docker memory to be at least 2 Gigs\033[0m"; fi || exit 0 -validate: ## Validate the devstack configuration - docker-compose config +dev.stats: ## Get per-container CPU and memory utilization data. + docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}" -backup: ## Write all data volumes to the host. - docker run --rm --volumes-from edx.devstack.mysql -v $$(pwd)/.dev/backups:/backup debian:jessie tar zcvf /backup/mysql.tar.gz /var/lib/mysql - docker run --rm --volumes-from edx.devstack.mongo -v $$(pwd)/.dev/backups:/backup debian:jessie tar zcvf /backup/mongo.tar.gz /data/db - docker run --rm --volumes-from edx.devstack.elasticsearch -v $$(pwd)/.dev/backups:/backup debian:jessie tar zcvf /backup/elasticsearch.tar.gz /usr/share/elasticsearch/data +dev.check: dev.check.$(DEFAULT_SERVICES) ## Run checks for the default service set. -restore: ## Restore all data volumes from the host. WARNING: THIS WILL OVERWRITE ALL EXISTING DATA! - docker run --rm --volumes-from edx.devstack.mysql -v $$(pwd)/.dev/backups:/backup debian:jessie tar zxvf /backup/mysql.tar.gz - docker run --rm --volumes-from edx.devstack.mongo -v $$(pwd)/.dev/backups:/backup debian:jessie tar zxvf /backup/mongo.tar.gz - docker run --rm --volumes-from edx.devstack.elasticsearch -v $$(pwd)/.dev/backups:/backup debian:jessie tar zxvf /backup/elasticsearch.tar.gz +dev.check.%: # Run checks for a given service or set of services. + $(WINPTY) bash ./check.sh $* -# TODO: Print out help for this target. Even better if we can iterate over the -# services in docker-compose.yml, and print the actual service names. -%-shell: ## Run a shell on the specified service container - docker exec -it edx.devstack.$* /bin/bash +dev.validate: ## Print effective Docker Compose config, validating files in COMPOSE_FILE. + docker-compose config -credentials-shell: - docker exec -it edx.devstack.credentials env TERM=$(TERM) bash -c 'source /edx/app/credentials/credentials_env && cd /edx/app/credentials/credentials && /bin/bash' -discovery-shell: ## Run a shell on the discovery container - docker exec -it edx.devstack.discovery env TERM=$(TERM) /edx/app/discovery/devstack.sh open +######################################################################################## +# Developer interface: Runtime service management (caching, logs, shells). +######################################################################################## -ecommerce-shell: ## Run a shell on the ecommerce container - docker exec -it edx.devstack.ecommerce env TERM=$(TERM) /edx/app/ecommerce/devstack.sh open +dev.cache-programs: ## Copy programs from Discovery to Memcached for use in LMS. + $(WINPTY) bash ./programs/provision.sh cache -e2e-shell: ## Start the end-to-end tests container with a shell - docker run -it --network=devstack_default -v ${DEVSTACK_WORKSPACE}/edx-e2e-tests:/edx-e2e-tests -v ${DEVSTACK_WORKSPACE}/edx-platform:/edx-e2e-tests/lib/edx-platform --env-file ${DEVSTACK_WORKSPACE}/edx-e2e-tests/devstack_env edxops/e2e env TERM=$(TERM) bash +dev.restart-devserver: _expects-service.dev.restart-devserver -%-update-db: ## Run migrations for the specified service container - docker exec -t edx.devstack.$* bash -c 'source /edx/app/$*/$*_env && cd /edx/app/$*/$*/ && make migrate' +dev.restart-devserver.forum: + docker-compose exec -T forum bash -c 'kill $$(ps aux | grep "ruby app.rb" | egrep -v "while|grep" | awk "{print \$$2}")' -studio-update-db: ## Run migrations for the Studio container - docker exec -t edx.devstack.studio bash -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform/ && paver update_db' +dev.forum.build-indices: ## Build indices for forum service + docker-compose exec -T forum bash -c "cd forum && source ruby_env && source devstack_forum_env && cd cs_comments_service/ && bin/rake search:rebuild_indices" -lms-update-db: ## Run migrations LMS container - docker exec -t edx.devstack.lms bash -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform/ && paver update_db' +dev.restart-devserver.%: ## Kill an edX service's development server. Watcher should restart it. + # Applicable to Django services only. + docker-compose exec -T $* bash -c 'kill $$(ps aux | egrep "manage.py ?\w* runserver" | egrep -v "while|grep" | awk "{print \$$2}")' -update-db: | studio-update-db lms-update-db discovery-update-db ecommerce-update-db credentials-update-db ## Run the migrations for all services +dev.logs: ## View logs from running containers. + docker-compose logs -f -lms-shell: ## Run a shell on the LMS container - docker exec -it edx.devstack.lms env TERM=$(TERM) /edx/app/edxapp/devstack.sh open +dev.logs.%: ## View the logs of the specified service container. + docker-compose logs -f --tail=500 $* -lms-watcher-shell: ## Run a shell on the LMS watcher container - docker exec -it edx.devstack.lms_watcher env TERM=$(TERM) /edx/app/edxapp/devstack.sh open +dev.attach: _expects-service.dev.attach -%-attach: ## Attach to the specified service container process to use the debugger & see logs. - docker attach edx.devstack.$* +dev.attach.%: ## Attach to the specified service container process for debugging & seeing logs. + docker attach "$$(make --silent --no-print-directory dev.print-container.$*)" -lms-restart: ## Kill the LMS Django development server. The watcher process will restart it. - docker exec -t edx.devstack.lms bash -c 'kill $$(ps aux | grep "manage.py lms" | egrep -v "while|grep" | awk "{print \$$2}")' +dev.shell: _expects-service.dev.shell -studio-shell: ## Run a shell on the Studio container - docker exec -it edx.devstack.studio env TERM=$(TERM) /edx/app/edxapp/devstack.sh open +dev.shell.credentials: + docker-compose exec credentials env TERM=$(TERM) bash -c 'source /edx/app/credentials/credentials_env && cd /edx/app/credentials/credentials && /bin/bash' -studio-watcher-shell: ## Run a shell on the studio watcher container - docker exec -it edx.devstack.studio_watcher env TERM=$(TERM) /edx/app/edxapp/devstack.sh open +dev.shell.discovery: + docker-compose exec discovery env TERM=$(TERM) bash -c '/bin/bash' -studio-restart: ## Kill the LMS Django development server. The watcher process will restart it. - docker exec -t edx.devstack.studio bash -c 'kill $$(ps aux | grep "manage.py cms" | egrep -v "while|grep" | awk "{print \$$2}")' +dev.shell.ecommerce: + docker-compose exec ecommerce env TERM=$(TERM) /edx/app/ecommerce/devstack.sh open -xqueue-shell: ## Run a shell on the XQueue container - docker exec -it edx.devstack.xqueue env TERM=$(TERM) /edx/app/xqueue/devstack.sh open +dev.shell.registrar: + docker-compose exec registrar env TERM=$(TERM) /bin/bash -xqueue-restart: ## Kill the XQueue development server. The watcher process will restart it. - docker exec -t edx.devstack.xqueue bash -c 'kill $$(ps aux | grep "manage.py runserver" | egrep -v "while|grep" | awk "{print \$$2}")' +dev.shell.xqueue: + docker-compose exec xqueue env TERM=$(TERM) /edx/app/xqueue/devstack.sh open -xqueue_consumer-shell: ## Run a shell on the XQueue consumer container - docker exec -it edx.devstack.xqueue_consumer env TERM=$(TERM) /edx/app/xqueue/devstack.sh open +dev.shell.lms: + docker-compose exec lms env TERM=$(TERM) bash -c '/bin/bash' -xqueue_consumer-restart: ## Kill the XQueue development server. The watcher process will restart it. - docker exec -t edx.devstack.xqueue_consumer bash -c 'kill $$(ps aux | grep "manage.py run_consumer" | egrep -v "while|grep" | awk "{print \$$2}")' +dev.shell.lms_watcher: + docker-compose exec lms_watcher env TERM=$(TERM) bash -c '/bin/bash' -%-static: ## Rebuild static assets for the specified service container - docker exec -t edx.devstack.$* bash -c 'source /edx/app/$*/$*_env && cd /edx/app/$*/$*/ && make static' +dev.shell.studio: + docker-compose exec studio env TERM=$(TERM) bash -c '/bin/bash' -lms-static: ## Rebuild static assets for the LMS container - docker exec -t edx.devstack.lms bash -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform/ && paver update_assets' +dev.shell.studio_watcher: + docker-compose exec studio_watcher env TERM=$(TERM) bash -c '/bin/bash' -studio-static: ## Rebuild static assets for the Studio container - docker exec -t edx.devstack.studio bash -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform/ && paver update_assets' +dev.shell.xqueue_consumer: + docker-compose exec xqueue_consumer env TERM=$(TERM) /edx/app/xqueue/devstack.sh open -static: | credentials-static discovery-static ecommerce-static lms-static studio-static ## Rebuild static assets for all service containers +dev.shell.analyticsapi: + docker exec -it edx.devstack.analyticsapi env TERM=$(TERM) bash -c '/bin/bash' -healthchecks: ## Run a curl against all services' healthcheck endpoints to make sure they are up. This will eventually be parameterized - ./healthchecks.sh +dev.shell.insights: + docker-compose exec insights env TERM=$(TERM) bash -c 'eval $$(source /edx/app/insights/insights_env; echo PATH="$$PATH";) && /bin/bash' -e2e-tests: ## Run the end-to-end tests against the service containers - docker run -t --network=devstack_default -v ${DEVSTACK_WORKSPACE}/edx-e2e-tests:/edx-e2e-tests -v ${DEVSTACK_WORKSPACE}/edx-platform:/edx-e2e-tests/lib/edx-platform --env-file ${DEVSTACK_WORKSPACE}/edx-e2e-tests/devstack_env edxops/e2e env TERM=$(TERM) bash -c 'paver e2e_test --exclude="whitelabel\|enterprise"' +dev.shell.%: ## Run a shell on the specified service's container. + docker-compose exec $* /bin/bash -validate-lms-volume: ## Validate that changes to the local workspace are reflected in the LMS container - touch $(DEVSTACK_WORKSPACE)/edx-platform/testfile - docker exec edx.devstack.lms ls /edx/app/edxapp/edx-platform/testfile - rm $(DEVSTACK_WORKSPACE)/edx-platform/testfile +dev.dbshell: + docker-compose exec mysql57 bash -c "mysql" -vnc-passwords: ## Get the VNC passwords for the Chrome and Firefox Selenium containers - @docker logs edx.devstack.chrome 2>&1 | grep "VNC password" | tail -1 - @docker logs edx.devstack.firefox 2>&1 | grep "VNC password" | tail -1 +dev.dbshell.%: ## Run a SQL shell on the given database. + docker-compose exec mysql57 bash -c "mysql $*" -devpi-password: ## Get the root devpi password for the devpi container - docker-compose exec devpi bash -c "cat /data/server/.serverpassword" +# List of Makefile targets to run static asset generation, in the form dev.static.$(service) +# Services will only have their asset generation added here +# if the service is present in both $(DEFAULT_SERVICES) and $(ASSET_SERVICES). +_asset_compilation_targets = \ +$(foreach asset_service,$(ASSET_SERVICES_LIST),\ + $(if $(filter $(asset_service), $(DEFAULT_SERVICES_LIST)),\ + dev.static.$(asset_service))) -mysql-shell: ## Run a shell on the mysql container - docker-compose exec mysql bash +dev.static: | $(_asset_compilation_targets) -mysql-shell-edxapp: ## Run a mysql shell on the edxapp database - docker-compose exec mysql bash -c "mysql edxapp" +dev.static.lms: + docker-compose exec -T lms bash -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform/ && paver update_assets lms' + +dev.static.studio: + docker-compose exec -T studio bash -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform/ && paver update_assets studio' -mongo-shell: ## Run a shell on the mongo container - docker-compose exec mongo bash +dev.static.%: ## Rebuild static assets for the specified service's container. + docker-compose exec -T $* bash -c 'source /edx/app/$*/$*_env && cd /edx/app/$*/$*/ && make static' -### analytics pipeline commands -dev.provision.analytics_pipeline: | check-memory dev.provision.analytics_pipeline.run stop.analytics_pipeline stop ## Provision analyticstack dev environment with all services stopped +######################################################################################## +# Developer interface: Commands that do a combination of things. +######################################################################################## + -dev.provision.analytics_pipeline.run: - DOCKER_COMPOSE_FILES="-f docker-compose.yml -f docker-compose-host.yml -f docker-compose-analytics-pipeline.yml" ./provision-analytics-pipeline.sh +dev.reset: dev.remove-containers dev.reset-repos dev.prune dev.pull.large-and-slow dev.up.large-and-slow dev.static dev.migrate ## Attempt to reset the local devstack to the default branch working state without destroying data. -analytics-pipeline-shell: ## Run a shell on the analytics pipeline container - docker exec -it edx.devstack.analytics_pipeline env TERM=$(TERM) /edx/app/analytics_pipeline/devstack.sh open +dev.destroy.coursegraph: dev.remove-containers.coursegraph ## Remove all coursegraph data. + docker volume rm ${COMPOSE_PROJECT_NAME}_coursegraph_data -dev.up.analytics_pipeline: | check-memory ## Bring up analytics pipeline services - docker-compose -f docker-compose.yml -f docker-compose-analytics-pipeline.yml -f docker-compose-host.yml up -d analyticspipeline +dev.destroy: ## Irreversibly remove all devstack-related containers, networks, and volumes. + $(WINPTY) bash ./destroy.sh + +######################################################################################## +# Support for "prefix-form" commands: +# $service-$action instead of dev.$action.$services +# For example, the command: +# make dev.attach.registrar +# can be expressed as: +# make registrar-attach +# This form may be quicker to type and more amenable to tab-completion. +######################################################################################## -pull.analytics_pipeline: ## Update analytics pipeline docker images - docker-compose -f docker-compose.yml -f docker-compose-analytics-pipeline.yml pull --parallel +# Implementation notes: +# The weird syntax here is a way to generate generic targets from existing generic targets. +# For example: +# $(addsuffix -migrate, $(DB_SERVICES_LIST)) +# Takes the list of all DB-backed services and appends '-migrate', yielding a list like: +# credentials-migrate discovery-migrate ecommerce-migrate ...(and so on) +# Then: +# : %-migrate: dev.migrate.% +# Tells Make to match against the aforementioned list, and given an occurance like: +# SERVICE-migrate +# define it as a target with no recipe but with a single prerequisite: +# dev.migrate.SERVICE +# Effectively, 'SERVICE-migrate' is aliased to 'dev.migrate.SERVICE' for +# all values of SERVICE in $(DB_SERVICES_LIST). + +$(addsuffix -pull, $(ALL_SERVICES_LIST)): %-pull: dev.pull.% +$(addsuffix -pull-without-deps, $(ALL_SERVICES_LIST)): %-pull-without-deps: dev.pull.without-deps.% +$(addsuffix -migrate, $(DB_SERVICES_LIST)): %-migrate: dev.migrate.% +$(addsuffix -up, $(ALL_SERVICES_LIST)): %-up: dev.up.% +$(addsuffix -up-attach, $(ALL_SERVICES_LIST)): %-up-attach: dev.up.attach.% +$(addsuffix -up-shell, $(ALL_SERVICES_LIST)): %-up-shell: dev.up.shell.% +$(addsuffix -up-with-programs, $(EDX_SERVICES_LIST)): %-up-with-programs: dev.up.with-programs.% +$(addsuffix -up-with-watchers, $(ALL_SERVICES_LIST)): %-up-with-watchers: dev.up.with-watchers.% +$(addsuffix -up-without-deps, $(ALL_SERVICES_LIST)): %-up-without-deps: dev.up.without-deps.% +$(addsuffix -up-without-deps-shell, $(ALL_SERVICES_LIST)): %-up-without-deps-shell: dev.up.without-deps.shell.% +$(addsuffix -print-container, $(ALL_SERVICES_LIST)): %-print-container: dev.print-container.% +$(addsuffix -restart-container, $(ALL_SERVICES_LIST)): %-restart-container: dev.restart-container.% +$(addsuffix -stop, $(ALL_SERVICES_LIST)): %-stop: dev.stop.% +$(addsuffix -kill, $(ALL_SERVICES_LIST)): %-kill: dev.kill.% +$(addsuffix -down, $(ALL_SERVICES_LIST)): %-down: dev.down.% +$(addsuffix -check, $(EDX_SERVICES_LIST)): %-check: dev.check.% +$(addsuffix -restart-devserver, $(EDX_SERVICES_LIST)): %-restart-devserver: dev.restart-devserver.% +$(addsuffix -logs, $(ALL_SERVICES_LIST)): %-logs: dev.logs.% +$(addsuffix -attach, $(ALL_SERVICES_LIST)): %-attach: dev.attach.% +$(addsuffix -shell, $(ALL_SERVICES_LIST)): %-shell: dev.shell.% +$(addsuffix -static, $(ASSET_SERVICES_LIST)): %-static: dev.static.% + + +######################################################################################## +# Helper targets for other targets to use. +######################################################################################## + +# Many targets allow service(s) to be passed in as a suffix. +# For example, make dev.up.lms` is a more specific form of `make dev.up`. +# For some targets, it is invalid NOT to pass in a service as a suffix. +# For example, `make dev.attach.lms` is valid, but `make dev.attach` is not. +# For such targets, we still want to define the invalid stub target in this Makefile +# for the purpose of including it in command-line completion. +# These _expects-* targets can be used to define those stub targets such that they +# print out something useful. See `dev.attach` for an example usage. + +_expects-service.%: + @echo "'make $*' on its own has no effect." + @echo "It expects a service as a suffix." + @echo "For example:" + @echo " make $*.lms" + +_expects-service-list.%: + @echo "'make $*' on its own has no effect." + @echo "It expects one or more services as a suffix, separated by plus signs." + @echo "For example:" + @echo " make $*.lms" + @echo "Or:" + @echo " make $*.registrar+ecommerce+studio" + +_expects-database.%: + @echo "'make $*' on its own has no effect." + @echo "It expects a database as a suffix." + @echo "For example:" + @echo " make $*.edxapp" + + +######################################################################################## +# Convenient ways to opt in or out of devstack usage metrics reporting +######################################################################################## + +metrics-opt-in: ## To opt into basic data collection to help improve devstack + @./scripts/send_metrics.py opt-in + +metrics-opt-out: ## To opt out of metrics data collection + @./scripts/send_metrics.py opt-out + + +######################################################################################## +# Miscellaneous targets. +# These are useful, but don't fit nicely to the greater Devstack interface. +######################################################################################## + +docs: ## generate Sphinx HTML documentation, including API docs + tox -e docs + +e2e-tests: dev.up.lms+studio+firefox+chrome ## Run the end-to-end tests against the service containers. + docker run -t --network=$(COMPOSE_PROJECT_NAME)_default -v $(DEVSTACK_WORKSPACE)/edx-e2e-tests:/edx-e2e-tests --env-file $(DEVSTACK_WORKSPACE)/edx-e2e-tests/devstack_env edxops/e2e env TERM=$(TERM) bash -c 'paver e2e_test' + +e2e-tests.with-shell: dev.up.lms+studio+firefox+chrome ## Start the end-to-end tests container with a shell. + docker run -it --network=$(COMPOSE_PROJECT_NAME)_default -v $(DEVSTACK_WORKSPACE)/edx-e2e-tests:/edx-e2e-tests --env-file $(DEVSTACK_WORKSPACE)/edx-e2e-tests/devstack_env edxops/e2e env TERM=$(TERM) bash + +validate-lms-volume: ## Validate that changes to the local workspace are reflected in the LMS container. + touch $(DEVSTACK_WORKSPACE)/edx-platform/testfile + docker-compose exec -T lms ls /edx/app/edxapp/edx-platform/testfile + rm $(DEVSTACK_WORKSPACE)/edx-platform/testfile -analytics-pipeline-devstack-test: ## Run analytics pipeline tests in travis build - docker exec -u hadoop -i edx.devstack.analytics_pipeline bash -c 'sudo chown -R hadoop:hadoop /edx/app/analytics_pipeline && source /edx/app/hadoop/.bashrc && make develop-local && make docker-test-acceptance-local ONLY_TESTS=edx.analytics.tasks.tests.acceptance.test_internal_reporting_database && make docker-test-acceptance-local ONLY_TESTS=edx.analytics.tasks.tests.acceptance.test_user_activity' +vnc-passwords: ## Get the VNC passwords for the Chrome and Firefox Selenium containers. + @docker-compose logs chrome 2>&1 | grep "VNC password" | tail -1 + @docker-compose logs firefox 2>&1 | grep "VNC password" | tail -1 -stop.analytics_pipeline: ## Stop analytics pipeline services - docker-compose -f docker-compose.yml -f docker-compose-analytics-pipeline.yml stop - docker-compose up -d mysql ## restart mysql as other containers need it +devpi-password: ## Get the root devpi password for the devpi container. + docker-compose exec devpi bash -c "cat /data/server/.serverpassword" -hadoop-application-logs-%: ## View hadoop logs by application Id - docker exec -it edx.devstack.analytics_pipeline.nodemanager yarn logs -applicationId $* +hadoop-application-logs-%: ## View hadoop logs by application Id. + docker-compose exec nodemanager yarn logs -applicationId $* -# Provisions studio, ecommerce, and marketing with course(s) in test-course.json -# Modify test-course.json before running this make target to generate a custom course -create-test-course: ## NOTE: marketing course creation is not available for those outside edX - ./course-generator/create-courses.sh --studio --ecommerce --marketing course-generator/test-course.json +create-test-course: ## Provisions studio, and ecommerce with course(s) in test-course.json. + $(WINPTY) bash ./course-generator/create-courses.sh --studio --ecommerce course-generator/test-course.json -# Run the course json builder script and use the outputted course json to provision studio, ecommerce, and marketing -# Modify the list of courses in build-course-json.sh beforehand to generate custom courses -build-courses: ## NOTE: marketing course creation is not available for those outside edX - ./course-generator/build-course-json.sh course-generator/tmp-config.json - ./course-generator/create-courses.sh --studio --ecommerce --marketing course-generator/tmp-config.json +build-courses: ## Build course and provision studio, and ecommerce with it. + # Modify test-course.json before running this make target to generate a custom course + $(WINPTY) bash ./course-generator/build-course-json.sh course-generator/tmp-config.json + $(WINPTY) bash ./course-generator/create-courses.sh --studio --ecommerce course-generator/tmp-config.json rm course-generator/tmp-config.json -check-memory: ## Check if enough memory has been allocated to Docker - @if [ `docker info --format '{{json .}}' | python -c "from __future__ import print_function; import sys, json; print(json.load(sys.stdin)['MemTotal'])"` -lt 2095771648 ]; then echo "\033[0;31mWarning, System Memory is set too low!!! Increase Docker memory to be at least 2 Gigs\033[0m"; fi || exit 0 - -stats: ## Get per-container CPU and memory utilization data - docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}" diff --git a/Makefile.edx b/Makefile.edx index fd9f8ac83d..99c3f31902 100644 --- a/Makefile.edx +++ b/Makefile.edx @@ -14,7 +14,7 @@ dev.clone_whitelabel: ## Clone edx-themes repo to the parent directory ./repo.sh whitelabel dev.up.e2e_wl_tests: | check-memory dev.clone_whitelabel ## Bring up all services with edx-themes repo mounted for whitelabel tests. - docker-compose -f docker-compose.yml -f docker-compose-host.yml -f docker-compose-themes.yml -f ${DEVSTACK_WORKSPACE}/edx-themes/edx-platform/devstack_hostnames.yml up -d + docker-compose -f docker-compose.yml -f docker-compose-host.yml -f docker-compose-themes.yml -f docker-compose-themes.yml -f ${DEVSTACK_WORKSPACE}/edx-themes/edx-platform/devstack_hostnames.yml up -d dev.provision.whitelabel: ${DEVSTACK_WORKSPACE}/edx-themes/edx-platform/devstack_provision_wl.sh @@ -23,8 +23,8 @@ dev.provision.whitelabel: # The containers must be started with the 'dev.up.e2e_wl_tests' target. # AND the test must be setup using the 'dev.provision.whitelabel' target. whitelabel-tests: - docker run -d --name=devstack.whitelabel --network=devstack_default -v ${DEVSTACK_WORKSPACE}/edx-e2e-tests:/edx-e2e-tests -v ${DEVSTACK_WORKSPACE}/edx-platform:/edx-e2e-tests/lib/edx-platform --env-file ${DEVSTACK_WORKSPACE}/edx-e2e-tests/devstack_env edxops/e2e - docker cp ${DEVSTACK_WORKSPACE}/edx-themes/edx-platform/run_whitelabel_tests.sh devstack.whitelabel:/tmp/run_whitelabel_tests.sh + docker run -d --name=devstack.whitelabel --network=${COMPOSE_PROJECT_NAME:-devstack}_default -v ${DEVSTACK_WORKSPACE}/edx-e2e-tests:/edx-e2e-tests -v ${DEVSTACK_WORKSPACE}/edx-platform:/edx-e2e-tests/lib/edx-platform --env-file ${DEVSTACK_WORKSPACE}/edx-e2e-tests/devstack_env edxops/e2e + docker cp ${DEVSTACK_WORKSPACE}/edx-themes/edx-platform/run_whitelabel_tests.sh $(make --silent --no-print-directory dev.print-container.devstack.whitelabel)":/tmp/run_whitelabel_tests.sh docker exec -t devstack.whitelabel env TEST_ENV=devstack TERM=$(TERM) bash /tmp/run_whitelabel_tests.sh whitelabel-cleanup: diff --git a/README-windows.rst b/README-windows.rst new file mode 100644 index 0000000000..8e349373f9 --- /dev/null +++ b/README-windows.rst @@ -0,0 +1,30 @@ +Open edX Devstack on Windows (Alpha) +==================================== + +System Requirements +------------------- + +* Windows 10 1803 (Spring 2018) + + * This has been tested on the Spring 2018 release of Windows 10 only + +* NTFS file system (symlinks and MSYS2 won't work on FAT* partitions) + +* Developer Mode enabled https://docs.microsoft.com/en-us/windows/uwp/get-started/enable-your-device-for-development + + * Needed to allow git to create symlinks + +* Docker for Windows + +* Git and Git bash from https://git-scm.com/ + +* Make from ezwinports installed + + * Download make without guile from https://sourceforge.net/projects/ezwinports/files/ + + * Copy the contents of the make zip file into C:\\Program Files\\Git\\mingw64 + +Provisioning Devstack +--------------------- + +Follow the instructions in the main README. Run the make commands in git bash. Skip the "make requirements" step. diff --git a/README.rst b/README.rst index 7b7f2926ca..51b965b5b9 100644 --- a/README.rst +++ b/README.rst @@ -1,28 +1,84 @@ -Open edX Devstack |Build Status| -================================ +Open edX Devstack |Build Status provisioning| |Build Status CLI| |docs| +======================================================================= -Get up and running quickly with Open edX services. +Devstack is the local Docker-based environment for developing in the Open edX +platform. Use it to get up and running quickly with Open edX services. -If you are seeking info on the Vagrant-based devstack, please see -https://openedx.atlassian.net/wiki/display/OpenOPS/Running+Devstack. This -project is meant to replace the traditional Vagrant-based devstack with a -multi-container approach driven by `Docker Compose`_. It is still in the -beta testing phase. +Documentation is on `Read the Docs`_. Code repository is on `GitHub`_. -Support +.. _Read the Docs: https://edx.readthedocs.io/projects/open-edx-devstack/en/latest/ +.. _GitHub: https://github.com/openedx/devstack + +The Devstack runs as multiple containers with `Docker Compose`_ at its core. + +A Devstack installation includes the following Open edX components by default: + +* The Learning Management System (LMS) +* The Learning micro-frontend (A.K.A the new Courseware experience) +* Open Response Assessments (ORA2), among other LMS plug-ins. +* Open edX Studio +* Discussion Forums +* E-Commerce +* Credentials +* Notes +* Course Discovery +* Open edX Search +* A demonstration Open edX course +* The Publisher and Gradebook micro-frontends + +It also includes the following extra components: + +* XQueue +* The Program Console micro-frontend +* The Library Authoring micro-frontend +* edX Registrar service. +* The course-authoring micro-frontend +* The enhanced staff grader (ora-grading) micro-frontend + + +.. contents:: **Table of Contents:** + +Where to Find Help +------------------ + +There are a number of places to get help, including mailing lists and real-time chat. Please choose an appropriate venue for your question. This helps ensure that you get good prompt advice, and keeps discussion focused. For details of your options, see the `Community`_ pages. + +- See the `most common development workflow`_ (after you've finished `Getting Started`_). +- See the `Devstack Interface`_ +- See some `helpful troubleshooting tips`_. +- See the `Frequently Asked Questions`_. +- Or learn about `testing and debugging your code in devstack`_. +- If you get confused about any of the terms used in these docs, see `edX Glossary`_ + +You can also browse all the documentation in `Read the Docs`_. + +.. _most common development workflow: https://edx.readthedocs.io/projects/open-edx-devstack/en/latest/workflow.html +.. _Devstack Interface: https://edx.readthedocs.io/projects/open-edx-devstack/en/latest/devstack_interface.html +.. _helpful troubleshooting tips: https://edx.readthedocs.io/projects/open-edx-devstack/en/latest/troubleshoot_general_tips.html +.. _Frequently Asked Questions: https://edx.readthedocs.io/projects/open-edx-devstack/en/latest/devstack_faq.html +.. _testing and debugging your code in devstack: +.. _testing_and_debugging.rst: https://edx.readthedocs.io/projects/open-edx-devstack/en/latest/testing_and_debugging.html +.. _edX Glossary: https://openedx.atlassian.net/wiki/spaces/AC/pages/28967341/edX+Glossary + +.. _Read the Docs: https://edx.readthedocs.io/projects/open-edx-devstack/en/latest/ + +Notices ------- -Tickets or issues should be filed in Jira under the platform project: -https://openedx.atlassian.net/projects/PLAT/issues +**NOTE:** LMS is now using MySql 5.7 by default. You have to run ``make dev.pull.lms`` and ``make dev.provision.lms`` (more details in `Getting Started`_) to fetch latest images and reprovision local copies of databases in order for an existing devstack setup to keep working. -FYI ---- -You should run any ``make`` targets described below on your local machine, *not* -from within a VM. +Getting Started +--------------- Prerequisites -------------- +~~~~~~~~~~~~~ + +You will need to have the following installed: + +- make +- Python 3.8 +- Docker This project requires **Docker 17.06+ CE**. We recommend Docker Stable, but Docker Edge should work as well. @@ -32,54 +88,53 @@ settings. Don't forget to restore your memory setting and be prepared to provision. For macOS users, please use `Docker for Mac`_. Previous Mac-based tools (e.g. -boot2docker) are *not* supported. +boot2docker) are *not* supported. Please be aware that the `licensing terms`_ for +Docker for Mac (aka Docker Desktop) may mean that it is no longer +free for your organization's use. + +Since a Docker-based devstack runs many containers, +you should configure Docker with a sufficient +amount of resources. We find that `configuring Docker for Mac`_ +with a minimum of **2 CPUs, 8GB of memory, and a disk image size of 96GB** +does work. `Docker for Windows`_ may work but has not been tested and is *not* supported. -Linux users should *not* be using the ``overlay`` storage driver. ``overlay2`` -is tested and supported, but requires kernel version 4.0+. Check which storage -driver your docker-daemon is configured to use: +If you are using Linux, use the ``overlay2`` storage driver, kernel version +4.0+ and *not* ``overlay``. To check which storage driver your +``docker-daemon`` uses, run the following command. .. code:: sh docker info | grep -i 'storage driver' -You will also need the following installed: - -- make -- python pip (optional for MacOS) - -Using the Latest Images ------------------------ +Please note +~~~~~~~~~~~ -New images for our services are published frequently. Assuming that you've followed the steps in `Getting Started`_ -below, run the following sequence of commands if you want to use the most up-to-date versions of the devstack images. +You should run all ``make`` commands described below on your local machinge, *not* +from within a Virtual Machine, as these commands are meant to stand up a VM-like environment using +Docker containers. -.. code:: sh +However, you may want to run the ``make`` commands from within a Python 3 virtual +environment, as described in `Getting Started`_. This will keep the Python packages required for Devstack separate from +the ones installed globally on your system. - make down - make pull - make dev.up +Directions to setup devstack +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -This will stop any running devstack containers, pull the latest images, and then start all of the devstack containers. +The default devstack services can be run by following the steps below. -Getting Started ---------------- +**Note:** This will set up a large number of services, more than you are likely to need to work with, but that's only necessary for first-time provisioning. See `Service List`_ and the `most common development workflow`_ for how to run and update devstack with just the services you need, rather than the ``large-and-slow`` default set. -All of the services can be run by following the steps below. For analyticstack, follow `Getting Started on Analytics`_. - -**NOTE:** Since a Docker-based devstack runs many containers, -you should configure Docker with a sufficient -amount of resources. We find that `configuring Docker for Mac`_ with -a minimum of 2 CPUs and 6GB of memory works well. - -1. Install the requirements inside of a `Python virtualenv`_. +#. Install the requirements inside of a `Python virtualenv`_. .. code:: sh make requirements -2. The Docker Compose file mounts a host volume for each service's executing + This will install docker-compose and other utilities into your virtualenv. + +#. The Docker Compose file mounts a host volume for each service's executing code. The host directory defaults to be a sibling of this directory. For example, if this repo is cloned to ``~/workspace/devstack``, host volumes will be expected in ``~/workspace/course-discovery``, @@ -88,15 +143,26 @@ a minimum of 2 CPUs and 6GB of memory works well. .. code:: sh - make dev.clone + make dev.clone # or, `make dev.clone.https` if you don't have SSH keys set up. You may customize where the local repositories are found by setting the - DEVSTACK\_WORKSPACE environment variable. - - Be sure to share the cloned directories in the Docker -> Preferences... -> - File Sharing box. + ``DEVSTACK_WORKSPACE`` environment variable. + + (macOS only) Share the cloned service directories in Docker, using + **Docker -> Preferences -> File Sharing** in the Docker menu. + +#. Pull any changes made to the various images on which the devstack depends. + + .. code:: sh + + make dev.pull.large-and-slow + + Note - + If you are setting up devstack to develop on Open edx named releases, see this `document on developing on named releases`_ before following this step 3. -3. Run the provision command, if you haven't already, to configure the various + .. _document on developing on named releases: https://edx.readthedocs.io/projects/open-edx-devstack/en/latest/developing_on_named_release_branches.html + +#. Run the provision command, if you haven't already, to configure the various services with superusers (for development without the auth service) and tenants (for multi-tenancy). @@ -113,38 +179,31 @@ a minimum of 2 CPUs and 6GB of memory works well. make dev.provision - Provision using `docker-sync`_: - - .. code:: sh + This is expected to take a while, produce a lot of output from a bunch of steps, and finally end with ``Provisioning complete!`` - make dev.sync.provision +#. Start the desired services. This command will mount the repositories under the + ``DEVSTACK_WORKSPACE`` directory. -4. Start the services. This command will mount the repositories under the - DEVSTACK\_WORKSPACE directory. - - **NOTE:** it may take up to 60 seconds for the LMS to start, even after the ``make dev.up`` command outputs ``done``. + **NOTE:** it may take up to 60 seconds for the LMS to start, even after the ``dev.up.*`` command outputs ``done``. Default: .. code:: sh - make dev.up - - Start using `docker-sync`_: - - .. code:: sh - - make dev.sync.up + make dev.up.large-and-slow +To stop a service, use ``make dev.stop.``, and to both stop it +and remove the container (along with any changes you have made +to the filesystem in the container) use ``make dev.down.``. After the services have started, if you need shell access to one of the -services, run ``make -shell``. For example to access the +services, run ``make dev.shell.``. For example to access the Catalog/Course Discovery Service, you can run: .. code:: sh - make discovery-shell + make dev.shell.discovery To see logs from containers running in detached mode, you can either use "Kitematic" (available from the "Docker for Mac" menu), or by running the @@ -152,26 +211,30 @@ following: .. code:: sh - make logs + make dev.logs -To view the logs of a specific service container run ``make -logs``. +To view the logs of a specific service container run ``make dev.logs.``. For example, to access the logs for Ecommerce, you can run: .. code:: sh - make ecommerce-logs + make dev.logs.ecommerce -To reset your environment and start provisioning from scratch, you can run: +For information on the supported ``make`` commands, you can run: .. code:: sh - make destroy + make help + +Devstack collects some basic usage metrics to help gain a better understanding of how devstack is used and to surface any potential issues on local devstack environments. To learn more, read `0003-usage-metrics.rst ADR <./docs/decisions/0003-usage-metrics.rst>`_. -For information on all the available ``make`` commands, you can run: +This data collection is behind a consent flag, so please help devstack's maintainers by enabling metrics collection by running the following: .. code:: sh - make help + make metrics-opt-in + +Now that you're up and running, read about the `most common development workflow`_. Usernames and Passwords ----------------------- @@ -187,798 +250,169 @@ The provisioning script creates a Django superuser for every service. The LMS also includes demo accounts. The passwords for each of these accounts is ``edx``. -+------------+------------------------+ -| Username | Email | -+============+========================+ -| audit | audit@example.com | -+------------+------------------------+ -| honor | honor@example.com | -+------------+------------------------+ -| staff | staff@example.com | -+------------+------------------------+ -| verified | verified@example.com | -+------------+------------------------+ - -Getting Started on Analytics ----------------------------- - -Analyticstack can be run by following the steps below. - -**NOTE:** Since a Docker-based devstack runs many containers, you should configure -Docker with a sufficient amount of resources. We find that -`configuring Docker for Mac`_ with a minimum of 2 CPUs and 6GB of memory works -well for **analyticstack**. If you intend on running other docker services besides -analyticstack ( e.g. lms, studio etc ) consider setting higher memory. - -1. Follow steps `1` and `2` from `Getting Started`_ section. - -2. Before running the provision command, make sure to pull the relevant - docker images from dockerhub by running the following commands: - - .. code:: sh - - make pull - make pull.analytics_pipeline - -3. Run the provision command to configure the analyticstack. - - .. code:: sh - - make dev.provision.analytics_pipeline - -4. Start the analytics service. This command will mount the repositories under the - DEVSTACK\_WORKSPACE directory. - - **NOTE:** it may take up to 60 seconds for Hadoop services to start. - - .. code:: sh - - make dev.up.analytics_pipeline - -5. To access the analytics pipeline shell, run the following command. All analytics - pipeline job/workflows should be executed after accessing the shell. - - .. code:: sh - - make analytics-pipeline-shell - - - To see logs from containers running in detached mode, you can either use - "Kitematic" (available from the "Docker for Mac" menu), or by running the - following command: - - .. code:: sh - - make logs - - - To view the logs of a specific service container run ``make -logs``. - For example, to access the logs for Hadoop's namenode, you can run: - - .. code:: sh - - make namenode-logs - - - To reset your environment and start provisioning from scratch, you can run: - - .. code:: sh - - make destroy - - **NOTE:** Be warned! This will remove all the containers and volumes - initiated by this repository and all the data ( in these docker containers ) - will be lost. - - - For information on all the available ``make`` commands, you can run: - - .. code:: sh - - make help - -6. For running acceptance tests on docker analyticstack, follow the instructions in the - `Running analytics acceptance tests in docker`_ guide. -7. For troubleshooting docker analyticstack, follow the instructions in the - `Troubleshooting docker analyticstack`_ guide. - -Service URLs + .. list-table:: + :widths: 20 60 + :header-rows: 1 + + * - Account + - Description + * - ``staff@example.com`` + - An LMS and Studio user with course creation and editing permissions. + This user is a course team member with the Admin role, which gives + rights to work with the demonstration course in Studio, the LMS, and + Insights. + * - ``verified@example.com`` + - A student account that you can use to access the LMS for testing + verified certificates. + * - ``audit@example.com`` + - A student account that you can use to access the LMS for testing course + auditing. + * - ``honor@example.com`` + - A student account that you can use to access the LMS for testing honor + code certificates. + +Service List ------------ -Each service is accessible at ``localhost`` on a specific port. The table below -provides links to the homepage of each service. Since some services are not -meant to be user-facing, the "homepage" may be the API root. - -+---------------------+-------------------------------------+ -| Service | URL | -+=====================+=====================================+ -| Credentials | http://localhost:18150/api/v2/ | -+---------------------+-------------------------------------+ -| Catalog/Discovery | http://localhost:18381/api-docs/ | -+---------------------+-------------------------------------+ -| E-Commerce/Otto | http://localhost:18130/dashboard/ | -+---------------------+-------------------------------------+ -| LMS | http://localhost:18000/ | -+---------------------+-------------------------------------+ -| Notes/edx-notes-api | http://localhost:18120/api/v1/ | -+---------------------+-------------------------------------+ -| Studio/CMS | http://localhost:18010/ | -+---------------------+-------------------------------------+ - -Useful Commands ---------------- - -Sometimes you may need to restart a particular application server. To do so, -simply use the ``docker-compose restart`` command: - -.. code:: sh - - docker-compose restart - -```` should be replaced with one of the following: - -- credentials -- discovery -- ecommerce -- lms -- edx_notes_api -- studio - -If you'd like to add some convenience make targets, you can add them to a ``local.mk`` file, ignored by git. - -Payments --------- - -The ecommerce image comes pre-configured for payments via CyberSource and PayPal. Additionally, the provisioning scripts -add the demo course (``course-v1:edX+DemoX+Demo_Course``) to the ecommerce catalog. You can initiate a checkout by visiting -http://localhost:18130/basket/add/?sku=8CF08E5 or clicking one of the various upgrade links in the LMS. The following -details can be used for checkout. While the name and address fields are required for credit card payments, their values -are not checked in development, so put whatever you want in those fields. - -- Card Type: Visa -- Card Number: 4111111111111111 -- CVN: 123 (or any three digits) -- Expiry Date: 06/2025 (or any date in the future) - -PayPal (same for username and password): devstack@edx.org - -Marketing Site --------------- - -Docker Compose files useful for integrating with the edx.org marketing site are -available. This will NOT be useful to those outside of edX. For details on -getting things up and running, see -https://openedx.atlassian.net/wiki/display/OpenDev/Marketing+Site. - -How do I build images? ----------------------- - -There are `Docker CI Jenkins jobs`_ on tools-edx-jenkins that build and push new -Docker images to DockerHub on code changes to either the configuration repository or the IDA's codebase. These images -are tagged ``latest``. Images that require tags other than ``latest`` are built and pushed by hand (see NOTES below). -If you want to build the images on your own, the Dockerfiles are available in the ``edx/configuration`` repo. - -NOTES: - -1. edxapp and IDAs use the ``latest`` tag since their configuration changes have been merged to master branch of - ``edx/configuration``. -2. The elasticsearch used in devstack is built using elasticsearch-devstack/Dockerfile and the ``devstack`` tag. - -BUILD COMMANDS: - -.. code:: sh - - git checkout master - git pull - docker build -f docker/build/edxapp/Dockerfile . -t edxops/edxapp:latest - -.. code:: sh - - git checkout master - git pull - docker build -f docker/build/ecommerce/Dockerfile . -t edxops/ecommerce:devstack - -The build commands above will use your local configuration, but will pull -application code from the master branch of the application's repository. If you -would like to use code from another branch/tag/hash, modify the ``*_VERSION`` -variable that lives in the ``ansible_overrides.yml`` file beside the -``Dockerfile``. Note that edx-platform is an exception; the variable to modify is ``edx_platform_version`` -and not ``EDXAPP_VERSION``. - -For example, if you wanted to build tag ``release-2017-03-03`` for the -E-Commerce Service, you would modify ``ECOMMERCE_VERSION`` in -``docker/build/ecommerce/ansible_overrides.yml``. - -How do I create database dumps? -------------------------------- -We use database dumps to speed up provisioning and generally spend less time running migrations. These dumps should be -updated occasionally - when database migrations take a prolonged amount of time *or* we want to incorporate changes that -require manual intervention. - -To update the database dumps: - -1. Destroy and/or backup the data for your existing devstack so that you start with a clean slate. -2. Disable the loading of the existing database dumps during provisioning by commenting out any calls to ``load-db.sh`` - in the provisioning scripts. This disabling ensures a start with a completely fresh database and incorporates any changes - that may have required some form of manual intervention for existing installations (e.g. drop/move tables). -3. Provision devstack with ``make provision``. -4. Dump the databases and open a pull request with your updates: - -.. code:: sh - - ./dump-db.sh ecommerce - ./dump-db.sh edxapp - ./dump-db.sh edxapp_csmh - -How do I keep my database up to date? -------------------------------------- - -You can run Django migrations as normal to apply any changes recently made -to the database schema for a particular service. For example, to run -migrations for LMS, enter a shell via ``make lms-shell`` and then run: - -.. code:: sh - - paver update_db - -Alternatively, you can discard and rebuild the entire database for all -devstack services by re-running ``make dev.provision`` or -``make dev.sync.provision`` as appropriate for your configuration. Note that -if your branch has fallen significantly behind master, it may not include all -of the migrations included in the database dump used by provisioning. In these -cases, it's usually best to first rebase the branch onto master to -get the missing migrations. - -How do I make migrations? -------------------------- - -Log into the LMS shell, source the ``edxapp`` virtualenv, and run the -``makemigrations`` command with the ``devstack_docker`` settings: - -.. code:: sh - - make lms-shell - source /edx/app/edxapp/edxapp_env - cd /edx/app/edxapp/edx-platform - ./manage.py makemigrations --settings=devstack_docker - -Also, make sure you are aware of the `Django Migration Don'ts`_ as the -edx-platform is deployed using the red-black method. - - -How do I upgrade Node.JS packages? ----------------------------------- - -JavaScript packages for Node.js are installed into the ``node_modules`` -directory of the local git repository checkout which is synced into the -corresponding Docker container. Hence these can be upgraded via any of the -usual methods for that service (``npm install``, -``paver install_node_prereqs``, etc.), and the changes will persist between -container restarts. - -How do I upgrade Python packages? ---------------------------------- - -Unlike the ``node_modules`` directory, the ``virtualenv`` used to run Python -code in a Docker container only exists inside that container. Changes made to -a container's filesystem are not saved when the container exits, so if you -manually install or upgrade Python packages in a container (via -``pip install``, ``paver install_python_prereqs``, etc.), they will no -longer be present if you restart the container. (Devstack Docker containers -lose changes made to the filesystem when you reboot your computer, run -``make down``, restart or upgrade Docker itself, etc.) If you want to ensure -that your new or upgraded packages are present in the container every time it -starts, you have a few options: - -* Merge your updated requirements files and wait for a new `edxops Docker image`_ - for that service to be built and uploaded to `Docker Hub`_. You can - then download and use the updated image (for example, via ``make pull``). - The discovery and edxapp images are buit automatically via a Jenkins job. All other - images are currently built as needed by edX employees, but will soon be built - automatically on a regular basis. See `How do I build images?`_ - for more information. -* You can update your requirements files as appropriate and then build your - own updated image for the service as described above, tagging it such that - ``docker-compose`` will use it instead of the last image you downloaded. - (Alternatively, you can temporarily edit ``docker-compose.yml`` to replace - the ``image`` entry for that service with the ID of your new image.) You - should be sure to modify the variable override for the version of the - application code used for building the image. See `How do I build images?`_. - for more information. -* You can temporarily modify the main service command in - ``docker-compose.yml`` to first install your new package(s) each time the - container is started. For example, the part of the studio command which - reads ``...&& while true; do...`` could be changed to - ``...&& pip install my-new-package && while true; do...``. -* In order to work on locally pip-installed repos like edx-ora2, first clone - them into ``../src`` (relative to this directory). Then, inside your lms shell, - you can ``pip install -e /edx/src/edx-ora2``. If you want to keep this code - installed across stop/starts, modify ``docker-compose.yml`` as mentioned - above. - -How do I rebuild static assets? -------------------------------- - -Optimized static assets are built for all the Open edX services during -provisioning, but you may want to rebuild them for a particular service -after changing some files without re-provisioning the entire devstack. To -do this, run the make target for the appropriate service. For example: - -.. code:: sh - - make credentials-static - -To rebuild static assets for all service containers: - -.. code:: sh - - make static - -Switching branches ------------------- - -You can usually switch branches on a service's repository without adverse -effects on a running container for it. The service in each container is -using runserver and should automatically reload when any changes are made -to the code on disk. However, note the points made above regarding -database migrations and package updates. - -When switching to a branch which differs greatly from the one you've been -working on (especially if the new branch is more recent), you may wish to -halt the existing containers via ``make down``, pull the latest Docker -images via ``make pull``, and then re-run ``make dev.provision`` or -``make dev.sync.provision`` in order to recreate up-to-date databases, -static assets, etc. - -If making a patch to a named release, you should pull and use Docker images -which were tagged for that release. - -Changing LMS/CMS settings -------------------------- -The LMS and CMS read many configuration settings from the container filesystem -in the following locations: - -- ``/edx/app/edxapp/lms.env.json`` -- ``/edx/app/edxapp/lms.auth.json`` -- ``/edx/app/edxapp/cms.env.json`` -- ``/edx/app/edxapp/cms.auth.json`` - -Changes to these files will *not* persist over a container restart, as they -are part of the layered container filesystem and not a mounted volume. However, you -may need to change these settings and then have the LMS or CMS pick up the changes. - -To restart the LMS/CMS process without restarting the container, kill the LMS or CMS -process and the watcher process will restart the process within the container. You can -kill the needed processes from a shell within the LMS/CMS container with a single line of bash script: - -LMS: - -.. code:: sh - - kill -9 $(ps aux | grep 'manage.py lms' | egrep -v 'while|grep' | awk '{print $2}') - -CMS: - -.. code:: sh - - kill -9 $(ps aux | grep 'manage.py cms' | egrep -v 'while|grep' | awk '{print $2}') - -From your host machine, you can also run ``make lms-restart`` or -``make studio-restart`` which run those commands in the containers for you. - -PyCharm Integration -------------------- - -See the `Pycharm Integration documentation`_. - -devpi Caching -------------- - -LMS and Studio use a devpi container to cache PyPI dependencies, which speeds up several Devstack operations. -See the `devpi documentation`_. - -Debugging using PDB -------------------- - -It's possible to debug any of the containers' Python services using PDB. To do so, -start up the containers as usual with: - -.. code:: sh - - make dev.up - -This command starts each relevant container with the equivalent of the '--it' option, -allowing a developer to attach to the process once the process is up and running. - -To attach to the LMS/Studio containers and their process, use either: - -.. code:: sh - - make lms-attach - make studio-attach - -Set a PDB breakpoint anywhere in the code using: - -.. code:: sh - - import pdb;pdb.set_trace() - -and your attached session will offer an interactive PDB prompt when the breakpoint is hit. - -To detach from the container, you'll need to stop the container with: - -.. code:: sh - - make stop - -or a manual Docker command to bring down the container: - -.. code:: sh - - docker kill $(docker ps -a -q --filter="name=edx.devstack.") - -Running LMS and Studio Tests ----------------------------- - -After entering a shell for the appropriate service via ``make lms-shell`` or -``make studio-shell``, you can run any of the usual paver commands from the -`edx-platform testing documentation`_. Examples: - -.. code:: sh - - paver run_quality - paver test_a11y - paver test_bokchoy - paver test_js - paver test_lib - paver test_python - -Tests can also be run individually. Example: - -.. code:: sh - - pytest openedx/core/djangoapps/user_api - -Connecting to Browser -~~~~~~~~~~~~~~~~~~~~~ - -If you want to see the browser being automated for JavaScript or bok-choy tests, -you can connect to the container running it via VNC. - -+------------------------+----------------------+ -| Browser | VNC connection | -+========================+======================+ -| Firefox (Default) | vnc://0.0.0.0:25900 | -+------------------------+----------------------+ -| Chrome (via Selenium) | vnc://0.0.0.0:15900 | -+------------------------+----------------------+ - -On macOS, enter the VNC connection string in Safari to connect via VNC. The VNC -passwords for both browsers are randomly generated and logged at container -startup, and can be found by running ``make vnc-passwords``. - -Most tests are run in Firefox by default. To use Chrome for tests that normally -use Firefox instead, prefix the test command with -``SELENIUM_BROWSER=chrome SELENIUM_HOST=edx.devstack.chrome``. - -Running End-to-End Tests ------------------------- - -To run the base set of end-to-end tests for edx-platform, run the following -make target: - -.. code:: sh - - make e2e-tests - -If you want to use some of the other testing options described in the -`edx-e2e-tests README`_, you can instead start a shell for the e2e container -and run the tests manually via paver: - -.. code:: sh - - make e2e-shell - paver e2e_test --exclude="whitelabel\|enterprise" - -The browser running the tests can be seen and interacted with via VNC as -described above (Chrome is used by default). - -Troubleshooting: General Tips ------------------------------ - -If you are having trouble with your containers, this sections contains some troubleshooting tips. - -Check the logs -~~~~~~~~~~~~~~ - -If a container stops unexpectedly, you can look at its logs for clues:: - - docker-compose logs lms - -Update the code and images -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Make sure you have the latest code and Docker images. - -Pull the latest Docker images by running the following command from the devstack -directory: - -.. code:: sh - - make pull - -Pull the latest Docker Compose configuration and provisioning scripts by running -the following command from the devstack directory: - -.. code:: sh - - git pull - -Lastly, the images are built from the master branches of the application -repositories (e.g. edx-platform, ecommerce, etc.). Make sure you are using the -latest code from the master branches, or have rebased your branches on master. - -Clean the containers -~~~~~~~~~~~~~~~~~~~~ - -Sometimes containers end up in strange states and need to be rebuilt. Run -``make down`` to remove all containers and networks. This will **NOT** remove your -data volumes. - -Reset -~~~~~ - -Somtimes you just aren't sure what's wrong, if you would like to hit the reset button -run ``make dev.reset``. - -Running this command will perform the following steps: - -* Bring down all containers -* Reset all git repositories to the HEAD of master -* Pull new images for all services -* Compile static assets for all services -* Run migrations for all services - -It's good to run this before asking for help. - -Start over -~~~~~~~~~~ - -If you want to completely start over, run ``make destroy``. This will remove -all containers, networks, AND data volumes. - -Resetting a database -~~~~~~~~~~~~~~~~~~~~ - -In case you botched a migration or just want to start with a clean database. - -1. Open up the mysql shell and drop the database for the desired service:: - - make mysql-shell - mysql - DROP DATABASE (insert database here) - -2. From your devstack directory, run the provision script for the service. The - provision script should handle populating data such as Oauth clients and - Open edX users and running migrations:: - - ./provision-(service_name) - - -Troubleshooting: Common issues +These are the edX services that Devstack can provision, pull, run, attach to, etc. +Each service is accessible at ``localhost`` on a specific port. +The table below provides links to the homepage, API root, or API docs of each service, +as well as links to the repository where each service's code lives. + +Most developers will be best served by working with specific combinations of these services, for example ``make dev.pull.studio`` or ``make dev.up.ecommerce``. These will pull in dependencies as needed—starting ecommerce will also start lms, and lms will pull in forums, discovery, and others. If you need multiple, they can be listed like ``make dev.up.studio+ecommerce``. After the service table below there is a list of some common combinations. + +Instead of a service name or list, you can also run commands like ``make dev.provision`` / ``make dev.pull.large-and-slow`` / ``make dev.up.large-and-slow``. This is a larger list than most people will need for most of their work, and includes all of the services marked "Default" in the below table. (Some of these targets use ``large-and-slow`` in their name as a warning; others may be changed to use this over time.) However, you can change this list by modifying the ``DEFAULT_SERVICES`` option as described in the `Advanced Configuration Options`_ section. + ++------------------------------------+-------------------------------------+----------------+--------------+ +| Service | URL | Type | Role | ++====================================+=====================================+================+==============+ +| `lms`_ | http://localhost:18000/ | Python/Django | Default | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `studio`_ | http://localhost:18010/ | Python/Django | Default | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `forum`_ | http://localhost:44567/api/v1/ | Ruby/Sinatra | Default | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `discovery`_ | http://localhost:18381/api-docs/ | Python/Django | Default | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `ecommerce`_ | http://localhost:18130/dashboard/ | Python/Django | Default | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `credentials`_ | http://localhost:18150/api/v2/ | Python/Django | Default | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `edx_notes_api`_ | http://localhost:18120/api/v1/ | Python/Django | Default | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `frontend-app-learning`_ | http://localhost:2000/ | MFE (React.js) | Default | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `frontend-app-payment`_ | http://localhost:1998/ | MFE (React.js) | Default | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `frontend-app-publisher`_ | http://localhost:18400/ | MFE (React.js) | Default | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `frontend-app-gradebook`_ | http://localhost:1994/ | MFE (React.js) | Default | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `frontend-app-authn`_ | http://localhost:1999/ | MFE (React.js) | Default | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `registrar`_ | http://localhost:18734/api-docs/ | Python/Django | Extra | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `frontend-app-program-console`_ | http://localhost:1976/ | MFE (React.js) | Extra | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `frontend-app-library-authoring`_ | http://localhost:3001/ | MFE (React.js) | Extra | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `frontend-app-course-authoring`_ | http://localhost:2001/ | MFE (React.js) | Extra | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `frontend-app-account`_ | http://localhost:1997/ | MFE (React.js) | Extra | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `frontend-app-profile`_ | http://localhost:1995/ | MFE (React.js) | Extra | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `xqueue`_ | http://localhost:18040/api/v1/ | Python/Django | Extra | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `coursegraph` | http://localhost:7474/browser | Tooling (Java) | Extra | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `insights` | http://localhost:18110 | Python/Django | Extra | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `analyticsapi` | http://localhost:19001 | Python/Django | Extra | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `frontend-app-ora-grading` | http://localhost:1993 | MFE (React.js) | Extra | ++------------------------------------+-------------------------------------+----------------+--------------+ + +Some common service combinations include: + +* ``lms``: LMS, along with dependencies ``forum``, ``discovery``, ``Authn`` and some databases +* ``ecommerce``: Ecommerce, but also LMS as a dependency (for auth) +* ``studio+credentials``: Services can be combined to affect both at once + +.. _credentials: https://github.com/openedx/credentials +.. _discovery: https://github.com/openedx/course-discovery +.. _ecommerce: https://github.com/openedx/ecommerce +.. _edx_notes_api: https://github.com/openedx/edx-notes-api +.. _forum: https://github.com/openedx/cs_comments_service +.. _frontend-app-payment: https://github.com/openedx/frontend-app-payment +.. _frontend-app-publisher: https://github.com/openedx/frontend-app-publisher +.. _frontend-app-gradebook: https://github.com/openedx/frontend-app-gradebook +.. _lms: https://github.com/openedx/edx-platform +.. _frontend-app-program-console: https://github.com/openedx/frontend-app-program-console +.. _registrar: https://github.com/openedx/registrar +.. _studio: https://github.com/openedx/edx-platform +.. _lms: https://github.com/openedx/edx-platform +.. _frontend-app-learning: https://github.com/openedx/frontend-app-learning +.. _frontend-app-library-authoring: https://github.com/openedx/frontend-app-library-authoring +.. _frontend-app-course-authoring: https://github.com/openedx/frontend-app-course-authoring +.. _frontend-app-account: https://github.com/openedx/frontend-app-account +.. _frontend-app-profile: https://github.com/openedx/frontend-app-profile +.. _frontend-app-authn: https://github.com/openedx/frontend-app-authn +.. _xqueue: https://github.com/openedx/xqueue +.. _coursegraph: https://github.com/openedx/edx-platform/tree/master/cms/djangoapps/coursegraph#coursegraph-support +.. _frontend-app-ora-grading: https://github.com/edx/frontend-app-ora-grading +.. _insights: https://github.com/openedx/edx-analytics-dashboard +.. _analyticsapi: https://github.com/openedx/edx-analytics-data-api + + + +Advanced Configuration Options ------------------------------ -File ownership change -~~~~~~~~~~~~~~~~~~~~~ - -If you notice that the ownership of some (maybe all) files have changed and you -need to enter your root password when editing a file, you might -have pulled changes to the remote repository from within a container. While running -``git pull``, git changes the owner of the files that you pull to the user that runs -that command. Within a container, that is the root user - so git operations -should be ran outside of the container. - -To fix this situation, change the owner back to yourself outside of the container by running: - -.. code:: sh - - $ sudo chown : -R . - -Running LMS commands within a container -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Most of the ``paver`` commands require a settings flag. If omitted, the flag defaults to -``devstack``, which is the settings flag for vagrant-based devstack instances. -So if you run into issues running ``paver`` commands in a docker container, you should append -the ``devstack_docker`` flag. For example: - -.. code:: sh - - $ paver update_assets --settings=devstack_docker - -Resource busy or locked -~~~~~~~~~~~~~~~~~~~~~~~ - -While running ``make static`` within the ecommerce container you could get an error -saying: - -.. code:: sh - - Error: Error: EBUSY: resource busy or locked, rmdir '/edx/app/ecommerce/ecommerce/ecommerce/static/build/' - -To fix this, remove the directory manually outside of the container and run the command again. - -No space left on device -~~~~~~~~~~~~~~~~~~~~~~~ - -If you see the error ``no space left on device`` on a Mac, Docker has run -out of space in its Docker.qcow2 file. - -Here is an example error while running ``make pull``: - -.. code:: sh - - ... - 32d52c166025: Extracting [==================================================>] 1.598 GB/1.598 GB - ERROR: failed to register layer: Error processing tar file(exit status 1): write /edx/app/edxapp/edx-platform/.git/objects/pack/pack-4ff9873be2ca8ab77d4b0b302249676a37b3cd4b.pack: no space left on device - make: *** [pull] Error 1 - -Try this first to clean up dangling images: - -.. code:: sh - - docker image prune -f # (This is very safe, so try this first.) - -If you are still seeing issues, you can try cleaning up dangling volumes. - -**Warning**: In most cases this will only remove volumes you no longer need, but -this is not a guarantee. - -.. code:: sh - - docker volume prune -f # (Be careful, this will remove your persistent data!) - - -No such file or directory -~~~~~~~~~~~~~~~~~~~~~~~~~ - -While provisioning, some have seen the following error: - -.. code:: sh - - ... - cwd = os.getcwdu() - OSError: [Errno 2] No such file or directory - make: *** [dev.provision.run] Error 1 - -This issue can be worked around, but there's no guaranteed method to do so. -Rebooting and restarting Docker does *not* seem to correct the issue. It -may be an issue that is exacerbated by our use of sync (which typically speeds -up the provisioning process on Mac), so you can try the following: - -.. code:: sh - - # repeat the following until you get past the error. - make stop - make dev.provision - -Once you get past the issue, you should be able to continue to use sync versions -of the make targets. - -Memory Limit -~~~~~~~~~~~~ - -While provisioning, some have seen the following error: - -.. code:: sh - - ... - Build failed running pavelib.assets.update_assets: Subprocess return code: 137 - -This error is an indication that your docker process died during execution. Most likely, -this error is due to running out of memory. Try increasing the memory -allocated to Docker. - -Docker is using lots of CPU time when it should be idle -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -On the Mac, this often manifests as the ``hyperkit`` process using a high -percentage of available CPU resources. To identify the container(s) -responsible for the CPU usage: - -.. code:: sh - - make stats - -Once you've identified a container using too much CPU time, check its logs; -for example: +The file ``options.mk`` sets several configuration options to default values. +For example ``DEVSTACK_WORKSPACE`` (the folder where your Git repos are expected to be) +is set to this directory's parent directory by default, +and ``DEFAULT_SERVICES`` (the list of services that are provisioned and run by default) +is set to a fairly long list of services out of the box. +For more detail, refer to the comments in the file itself. -.. code:: sh - - make lms-logs - -The most common culprit is an infinite restart loop where an error during -service startup causes the process to exit, but we've configured -``docker-compose`` to immediately try starting it again (so the container will -stay running long enough for you to use a shell to investigate and fix the -problem). Make sure the set of packages installed in the container matches -what your current code branch expects; you may need to rerun ``pip`` on a -requirements file or pull new container images that already have the required -package versions installed. - -Performance ------------ - -Improve Mac OSX Performance with docker-sync -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Docker for Mac has known filesystem issues that significantly decrease -performance for certain use cases, for example running tests in edx-platform. To -improve performance, `Docker Sync`_ can be used to synchronize file data from -the host machine to the containers. - -Many developers have opted not to use `Docker Sync`_ because it adds complexity -and can sometimes lead to issues with the filesystem getting out of sync. - -You can swap between using Docker Sync and native volumes at any time, by using -the make targets with or without 'sync'. However, this is harder to do quickly -if you want to switch inside the PyCharm IDE due to its need to rebuild its -cache of the containers' virtual environments. - -If you are using macOS, please follow the `Docker Sync installation -instructions`_ before provisioning. - -Docker Sync Troubleshooting tips -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Check your version and make sure you are running 0.4.6 or above: +If you're feeling brave, you can create an git-ignored overrides file called +``options.local.mk`` in the same directory and set your own values. In general, +it's good to bring down containers before changing any settings. -.. code:: sh - - docker-sync --version - -If not, upgrade to the latest version: - -.. code:: sh - - gem update docker-sync - -If you are having issues with docker sync, try the following: - -.. code:: sh +Changing the Docker Compose Project Name +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - make stop - docker-sync stop - docker-sync clean +The ``COMPOSE_PROJECT_NAME`` variable is used to define Docker namespaced volumes +and network based on this value, so changing it will give you a separate set of databases. +This is handled for you automatically by setting the ``OPENEDX_RELEASE`` environment variable in ``options.mk`` +(e.g. ``COMPOSE_PROJECT_NAME=devstack-juniper.master``. Should you want to manually override this, edit the ``options.local.mk`` in the root of this repo and create the file if it does not exist. Change the devstack project name by adding the following line:: -Cached Consistency Mode -~~~~~~~~~~~~~~~~~~~~~~~ + # Example: COMPOSE_PROJECT_NAME=secondarydevstack + COMPOSE_PROJECT_NAME= -The performance improvements provided by `cached consistency mode for volume -mounts`_ introduced in Docker CE Edge 17.04 are still not good enough. It's -possible that the "delegated" consistency mode will be enough to no longer need -docker-sync, but this feature hasn't been fully implemented yet (as of -Docker 17.12.0-ce, "delegated" behaves the same as "cached"). There is a -GitHub issue which explains the `current status of implementing delegated consistency mode`_. +As a specific example, if ``OPENEDX_RELEASE`` is set in your environment as ``juniper.master``, then ``COMPOSE_PROJECT_NAME`` will default to ``devstack-juniper.master`` instead of ``devstack``. .. _Docker Compose: https://docs.docker.com/compose/ .. _Docker for Mac: https://docs.docker.com/docker-for-mac/ +.. _licensing terms: https://www.docker.com/pricing/faq .. _Docker for Windows: https://docs.docker.com/docker-for-windows/ -.. _Docker Sync: https://github.com/EugenMayer/docker-sync/wiki -.. _Docker Sync installation instructions: https://github.com/EugenMayer/docker-sync/wiki/1.-Installation -.. _cached consistency mode for volume mounts: https://docs.docker.com/docker-for-mac/osxfs-caching/ -.. _current status of implementing delegated consistency mode: https://github.com/docker/for-mac/issues/1592 .. _configuring Docker for Mac: https://docs.docker.com/docker-for-mac/#/advanced -.. _feature added in Docker 17.05: https://github.com/edx/configuration/pull/3864 +.. _feature added in Docker 17.05: https://github.com/openedx/configuration/pull/3864 .. _edx-e2e-tests README: https://github.com/edx/edx-e2e-tests/#how-to-run-lms-and-studio-tests .. _edxops Docker image: https://hub.docker.com/r/edxops/ .. _Docker Hub: https://hub.docker.com/ -.. _Pycharm Integration documentation: docs/pycharm_integration.rst .. _devpi documentation: docs/devpi.rst -.. _edx-platform testing documentation: https://github.com/edx/edx-platform/blob/master/docs/testing.rst#running-python-unit-tests -.. _docker-sync: #improve-mac-osx-performance-with-docker-sync -.. |Build Status| image:: https://travis-ci.org/edx/devstack.svg?branch=master - :target: https://travis-ci.org/edx/devstack - :alt: Travis -.. _Docker CI Jenkins Jobs: https://tools-edx-jenkins.edx.org/job/DockerCI -.. _How do I build images?: https://github.com/edx/devstack/tree/master#how-do-i-build-images - :target: https://travis-ci.org/edx/devstack -.. _Django Migration Don'ts: https://engineering.edx.org/django-migration-donts-f4588fd11b64 -.. _Python virtualenv: http://docs.python-guide.org/en/latest/dev/virtualenvs/#lower-level-virtualenv -.. _Running analytics acceptance tests in docker: http://edx-analytics-pipeline-reference.readthedocs.io/en/latest/running_acceptance_tests_in_docker.html -.. _Troubleshooting docker analyticstack: http://edx-analytics-pipeline-reference.readthedocs.io/en/latest/troubleshooting_docker_analyticstack.html +.. _edx-platform testing documentation: https://github.com/openedx/edx-platform/blob/master/docs/guides/testing/testing.rst#running-python-unit-tests +.. |Build Status provisioning| image:: https://github.com/openedx/devstack/actions/workflows/provisioning-tests.yml/badge.svg?branch=master + :target: https://github.com/openedx/devstack/actions/workflows/provisioning-tests.yml + :alt: Provisioning tests +.. |Build Status CLI| image:: https://github.com/openedx/devstack/actions/workflows/cli-tests.yml/badge.svg?branch=master + :target: https://github.com/openedx/devstack/actions/workflows/cli-tests.yml + :alt: CLI tests +.. |docs| image:: https://readthedocs.org/projects/docs/badge/?version=latest + :alt: Documentation Status + :scale: 100% + :target: https://edx.readthedocs.io/projects/open-edx-devstack/en/latest/ +.. _Python virtualenv: https://docs.python-guide.org/en/latest/dev/virtualenvs/#lower-level-virtualenv +.. _Community: https://open.edx.org/community/connect/ diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 0000000000..f5ebadac75 --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,43 @@ +image: Visual Studio 2017 + +branches: + only: + - master + +environment: + DEVSTACK_WORKSPACE: x:/devstack + SHALLOW_CLONE: 1 + +install: +- curl -fsSL -o make-4.2.1-without-guile-w32-bin.zip https://sourceforge.net/projects/ezwinports/files/make-4.2.1-without-guile-w32-bin.zip/download +- 7z x make-4.2.1-without-guile-w32-bin.zip -oC:\"Program Files"\Git\mingw64 + +build_script: +# Increase the Linux VM memory from the default 2 GB to 4 GB +- ps: Get-VM 'MobyLinuxVM' | Set-VMMemory -DynamicMemoryEnabled $true -MaximumBytes (4*1024*1024*1024) +# See https://ci.appveyor.com/project/appveyor-tests/docker-ce for context on +# using Linux Docker containers in AppVeyor Windows VMs +# +# Switching Docker to Linux for the first time takes around a minute. This is +# the time required to start the "MobyLinuxVM" VM: +# This won't work until we switch back to a paid AppVeyor plan after resolving +# https://openedx.atlassian.net/browse/TE-2761 +#- docker-switch-linux +- md X:\devstack +- "\"%ProgramFiles%/Git/bin/bash.exe\" -c \"make dev.clone.https\"" +# Stop here until we get provisioning to finish reliably +#- "\"%ProgramFiles%/Git/bin/bash.exe\" -c \"make dev.pull\"" + +test_script: +- "\"%ProgramFiles%/Git/bin/bash.exe\" -c \"make help\"" +- "\"%ProgramFiles%/Git/bin/bash.exe\" -c \"make check-memory\"" +- "\"%ProgramFiles%/Git/bin/bash.exe\" -c \"make validate\"" +- "\"%ProgramFiles%/Git/bin/bash.exe\" -c \"make dev.status\"" +- "\"%ProgramFiles%/Git/bin/bash.exe\" -c \"make dev.checkout\"" +# Stop here until we get provisioning to finish reliably +#- "\"%ProgramFiles%/Git/bin/bash.exe\" -c \"make dev.provision\"" +#- "\"%ProgramFiles%/Git/bin/bash.exe\" -c \"make dev.up\"" +# LMS needs like 60 seconds to come up +#- ps: Start-Sleep -s 60 +#- "\"%ProgramFiles%/Git/bin/bash.exe\" -c \"make healthchecks\"" +#- "\"%ProgramFiles%/Git/bin/bash.exe\" -c \"make validate-lms-volume\"" diff --git a/check.sh b/check.sh new file mode 100755 index 0000000000..8afcb1a076 --- /dev/null +++ b/check.sh @@ -0,0 +1,135 @@ +#!/usr/bin/env bash +# Run checks for the provided service(s). +# To specify multiple services, separate them with spaces or plus signs (+). +# To specify all services, just pass in "all". +# +# Examples: +# ./check.sh lms +# ./check.sh lms+forum +# ./check.sh lms+forum discovery +# ./check.sh all +# +# Exists 0 if successful; non-zero otherwise. +# +# Fails if no services specified. +# +# Note that passing in a non-existent service will not fail if there are +# other successful checks. + +set -eu -o pipefail + +# Grab all arguments into one string, replacing plus signs with spaces. +# Pad on either side with spaces so that the regex in `should_check` works correctly. +services=" ${*//+/ } " + +# Which checks succeeded and failed. +succeeded="" +failed="" + +# Returns whether service in first arg should be checked. +should_check() { + local service="$1" + if [[ "$services" == *" all "* ]] || [[ "$services" == *" $service "* ]]; then + return 0 # Note that '0' means 'success' (i.e., true) in bash. + else + return 1 + fi +} + +# Runs a check named $1 on service $2 using the command $3. +run_check() { + local check_name="$1" + local service="$2" + local cmd="$3" + echo "> $cmd" + set +e # Disable exit-on-error + if $cmd; then # Run the command itself and check if it succeeded. + succeeded="$succeeded $check_name" + else + docker-compose logs "$service" + failed="$failed $check_name" + fi + set -e # Re-enable exit-on-error + echo # Newline +} + +if should_check registrar; then + echo "Checking Registrar heartbeat:" + run_check registrar_heartbeat registrar \ + "curl --fail -L http://localhost:18734/health" +fi + +if should_check lms; then + echo "Checking LMS heartbeat:" + run_check lms_heartbeat lms \ + "curl --fail -L http://localhost:18000/heartbeat" + + echo "Checking Studio heartbeat:" + run_check studio_heartbeat lms \ + "curl --fail -L http://localhost:18010/heartbeat" + + echo "Validating LMS volume:" + run_check lms_volume lms \ + "make validate-lms-volume" +fi + +if should_check ecommerce; then + echo "Checking ecommerce health:" + run_check ecommerce_heartbeat ecommerce \ + "curl --fail -L http://localhost:18130/health/" +fi + +if should_check discovery; then + echo "Checking discovery health:" + run_check discovery_heartbeat discovery \ + "curl --fail -L http://localhost:18381/health/" +fi + +if should_check forum; then + echo "Checking forum heartbeat:" + run_check forum_heartbeat forum \ + "curl --fail -L http://localhost:44567/heartbeat" +fi + +if should_check edx_notes_api; then + echo "Checking edx_notes_api heartbeat:" + run_check edx_notes_api_heartbeat edx_notes_api \ + "curl --fail -L http://localhost:18120/heartbeat" +fi + +if should_check credentials; then + echo "Checking credentials heartbeat:" + run_check credentials_heartbeat credentials \ + "curl --fail -L http://localhost:18150/health" +fi + +if should_check xqueue; then + echo "Checking xqueue status:" + run_check xqueue_heartbeat xqueue \ + "curl --fail -L http://localhost:18040/xqueue/status" +fi + +if should_check insights; then + echo "Running Analytics Dashboard Devstack tests: " + run_check insights_heartbeat insights \ + "curl --fail -L http://localhost:18110/health/" +fi + +if should_check analyticsapi; then + echo "Running Analytics Data API Devstack tests: " + run_check analyticsapi_heartbeat analyticsapi \ + "curl --fail -L http://localhost:19001/health/" +fi + +echo "Successful checks:${succeeded:- NONE}" +echo "Failed checks:${failed:- NONE}" +if [[ -z "$succeeded" ]] && [[ -z "$failed" ]]; then + echo "No checks ran. Exiting as failure." + exit 1 +elif [[ -z "$failed" ]]; then + echo "Check result: SUCCESS" + exit 0 +else + echo "Check result: FAILURE" + exit 2 +fi diff --git a/compatibility.mk b/compatibility.mk new file mode 100644 index 0000000000..5ffd836d7b --- /dev/null +++ b/compatibility.mk @@ -0,0 +1,98 @@ +# This Makefile exists entirely to support old targets that were once +# part of the documented Devstack interface but no longer are. +# This file allows us to remove old targets from the main Makefile +# (thus making it easier to read and making the `make help` message cleaner) +# while avoiding breaking backwards-compatibility with developers' existing workflows. + +# Housekeeping Rules: +# * Organize targets into Parameterized and Simple. Alphabetize within those sections. +# * Keep target definitions simple. Ideally, targets in this file are just aliases to +# equivalent commands in the main Makefile. + +# All devstack targets are "PHONY" in that they do not name actual files. +# Thus, all non-parameterized targets should be added to this declaration. +.PHONY: backup check-memory destroy \ + dev.provision.services dev.repo.reset \ + dev.up.all dev.up.watchers down \ + e2e-shell healthchecks lms-restart \ + lms-watcher-shell logs provision pull \ + pull.xqueue restore static stats stop stop.all \ + stop.watchers stop.xqueue studio-restart \ + studio-watcher-shell validate \ + xqueue_consumer-restart xqueue-restart + +##################################################################### +# Parameterized tagets. +##################################################################### + +dev.provision.services.%: + make dev.provision.$* + +healthchecks.%: + make dev.check.$* + +mysql-shell-%: + make dev.dbshell.$* + +%-update-db: + make dev.migrate.$* + +##################################################################### +# Simple tagets. +##################################################################### + +backup: dev.backup + +check-memory: dev.check-memory + +destroy: dev.destroy + +dev.provision.services: dev.provision + +dev.repo.reset: dev.reset-repos + +dev.up.all: dev.up.with-watchers + +dev.up.watchers: dev.up.lms_watcher+studio_watcher + +down: dev.down + +e2e-shell: e2e-tests.with-shell + +healthchecks: dev.check + +lms-restart: dev.restart-devserver.lms + +lms-watcher-shell: dev.shell.lms_watcher + +logs: dev.logs + +provision: dev.provision + +pull: dev.pull + +pull.xqueue: dev.pull.without-deps.xqueue+xqueue_consumer + +restore: dev.restore + +static: dev.static + +stats: dev.stats + +stop.all: dev.stop + +stop: dev.stop + +stop.watchers: dev.stop.lms_watcher+studio_watcher + +stop.xqueue: dev.stop.xqueue+xqueue_consumer + +studio-restart: dev.restart-devserver.studio + +studio-watcher-shell: dev.shell.studio_watcher + +validate: dev.validate + +xqueue_consumer-restart: dev.restart-devserver.xqueue_consumer + +xqueue-restart: dev.restart-devserver.xqueue diff --git a/configuration_files/analytics_api.yml b/configuration_files/analytics_api.yml new file mode 100644 index 0000000000..927073e1d8 --- /dev/null +++ b/configuration_files/analytics_api.yml @@ -0,0 +1,76 @@ +AGGREGATE_PAGE_SIZE: 10 +ANALYTICS_DATABASE: reports +API_AUTH_TOKEN: put-your-api-token-here +API_ROOT: null +BACKEND_SERVICE_EDX_OAUTH2_KEY: analytics_api-backend-service-key +BACKEND_SERVICE_EDX_OAUTH2_PROVIDER_URL: http://127.0.0.1:8000/oauth2 +BACKEND_SERVICE_EDX_OAUTH2_SECRET: analytics_api-backend-service-secret +CACHES: + default: + BACKEND: django.core.cache.backends.memcached.MemcachedCache + KEY_PREFIX: analytics_api + LOCATION: + - memcache +CSRF_COOKIE_SECURE: false +DATABASES: + default: + ENGINE: django.db.backends.mysql + HOST: db.edx + NAME: analytics-api + PASSWORD: password + PORT: '3306' + USER: api001 + reports: + ENGINE: django.db.backends.mysql + HOST: db.edx + NAME: reports + PASSWORD: password + PORT: '3306' + USER: reports001 +DATETIME_FORMAT: '%Y-%m-%dT%H%M%S' +DATE_FORMAT: '%Y-%m-%d' +DEFAULT_PAGE_SIZE: 25 +EDX_DRF_EXTENSIONS: + OAUTH2_USER_INFO_URL: http://127.0.0.1:8000/user_info +ELASTICSEARCH_AWS_ACCESS_KEY_ID: null +ELASTICSEARCH_AWS_SECRET_ACCESS_KEY: null +ELASTICSEARCH_CONNECTION_CLASS: null +ELASTICSEARCH_CONNECTION_DEFAULT_REGION: us-east-1 +ELASTICSEARCH_LEARNERS_HOST: localhost +ELASTICSEARCH_LEARNERS_INDEX: roster_1_2 +ELASTICSEARCH_LEARNERS_UPDATE_INDEX: index_updates +EXTRA_APPS: [] +JWT_AUTH: + JWT_AUTH_COOKIE_HEADER_PAYLOAD: edx-jwt-cookie-header-payload + JWT_AUTH_COOKIE_SIGNATURE: edx-jwt-cookie-signature + JWT_AUTH_REFRESH_COOKIE: edx-jwt-refresh-cookie + JWT_ISSUERS: + - AUDIENCE: SET-ME-PLEASE + ISSUER: http://127.0.0.1:8000/oauth2 + SECRET_KEY: SET-ME-PLEASE + JWT_PUBLIC_SIGNING_JWK_SET: '' +LANGUAGE_CODE: en-us +LMS_BASE_URL: http://127.0.0.1:8000/ +MAX_PAGE_SIZE: 100 +MEDIA_STORAGE_BACKEND: + DEFAULT_FILE_STORAGE: django.core.files.storage.FileSystemStorage + MEDIA_ROOT: /edx/var/analytics_api/media + MEDIA_URL: /media/ +REPORT_DOWNLOAD_BACKEND: + COURSE_REPORT_FILE_LOCATION_TEMPLATE: '{course_id}_{report_name}.csv' + DEFAULT_FILE_STORAGE: django.core.files.storage.FileSystemStorage + MEDIA_ROOT: /edx/var/analytics_api/static/reports + MEDIA_URL: http://localhost:8100/static/reports/ +SECRET_KEY: Your secret key here +SESSION_EXPIRE_AT_BROWSER_CLOSE: false +SOCIAL_AUTH_EDX_OAUTH2_ISSUER: http://127.0.0.1:8000 +SOCIAL_AUTH_EDX_OAUTH2_KEY: analytics_api-sso-key +SOCIAL_AUTH_EDX_OAUTH2_LOGOUT_URL: http://127.0.0.1:8000/logout +SOCIAL_AUTH_EDX_OAUTH2_SECRET: analytics_api-sso-secret +SOCIAL_AUTH_EDX_OAUTH2_URL_ROOT: http://127.0.0.1:8000 +SOCIAL_AUTH_REDIRECT_IS_HTTPS: false +STATICFILES_DIRS: +- static +STATICFILES_STORAGE: django.contrib.staticfiles.storage.StaticFilesStorage +STATIC_ROOT: /edx/var/analytics_api/staticfiles +TIME_ZONE: UTC diff --git a/configuration_files/discovery.yml b/configuration_files/discovery.yml new file mode 100644 index 0000000000..9493762bbf --- /dev/null +++ b/configuration_files/discovery.yml @@ -0,0 +1,94 @@ +--- + + +API_ROOT: null +AWS_SES_REGION_ENDPOINT: email.us-east-1.amazonaws.com +AWS_SES_REGION_NAME: us-east-1 +BACKEND_SERVICE_EDX_OAUTH2_KEY: discovery-backend-service-key +BACKEND_SERVICE_EDX_OAUTH2_PROVIDER_URL: http://localhost:18000/oauth2 +BACKEND_SERVICE_EDX_OAUTH2_SECRET: discovery-backend-service-secret +CACHES: + default: + BACKEND: django.core.cache.backends.memcached.MemcachedCache + KEY_PREFIX: discovery + LOCATION: + - edx.devstack.memcached:11211 +CELERY_BROKER_URL: redis://:password@edx.devstack.redis:6379/ +CORS_ORIGIN_WHITELIST: [] +CSRF_COOKIE_SECURE: false +DATABASES: + default: + ATOMIC_REQUESTS: 'false' + CONN_MAX_AGE: 60 + ENGINE: django.db.backends.mysql + HOST: edx.devstack.mysql + NAME: discovery + OPTIONS: + connect_timeout: 10 + init_command: SET sql_mode='STRICT_TRANS_TABLES' + PASSWORD: password + PORT: 3306 + USER: discov001 + read_replica: + ATOMIC_REQUESTS: 'false' + CONN_MAX_AGE: 60 + ENGINE: django.db.backends.mysql + HOST: edx.devstack.mysql + NAME: discovery + OPTIONS: + connect_timeout: 10 + init_command: SET sql_mode='STRICT_TRANS_TABLES' + PASSWORD: password + PORT: 3306 + USER: discov001 +DEFAULT_PARTNER_ID: 1 +EDX_DRF_EXTENSIONS: + OAUTH2_USER_INFO_URL: http://127.0.0.1:8000/user_info +ELASTICSEARCH_CLUSTER_URL: http://127.0.0.1:9200/ +ELASTICSEARCH_INDEX_NAME: catalog +EMAIL_BACKEND: django_ses.SESBackend +EMAIL_HOST: localhost +EMAIL_HOST_PASSWORD: '' +EMAIL_HOST_USER: '' +EMAIL_PORT: 25 +EMAIL_USE_TLS: false +ENABLE_PUBLISHER: false +EXTRA_APPS: +- course_discovery.apps.edx_catalog_extensions +JWT_AUTH: + JWT_AUTH_COOKIE_HEADER_PAYLOAD: edx-jwt-cookie-header-payload + JWT_AUTH_COOKIE_SIGNATURE: edx-jwt-cookie-signature + JWT_AUTH_REFRESH_COOKIE: edx-jwt-refresh-cookie + JWT_ISSUERS: + - AUDIENCE: lms-key + ISSUER: http://edx.devstack.lms:18000/oauth2 + SECRET_KEY: lms-secret + JWT_PUBLIC_SIGNING_JWK_SET: '' +LANGUAGE_CODE: en +MEDIA_STORAGE_BACKEND: + DEFAULT_FILE_STORAGE: django.core.files.storage.FileSystemStorage + MEDIA_ROOT: /edx/var/discovery/media + MEDIA_URL: /media/ +OPENEXCHANGERATES_API_KEY: '' +PARLER_DEFAULT_LANGUAGE_CODE: en +PARLER_LANGUAGES: + 1: + - code: en + default: + fallbacks: + - en + hide_untranslated: 'False' +PLATFORM_NAME: Your Platform Name Here +PUBLISHER_FROM_EMAIL: null +SECRET_KEY: Your secret key here +SESSION_EXPIRE_AT_BROWSER_CLOSE: false +SOCIAL_AUTH_EDX_OAUTH2_ISSUER: http://127.0.0.1:8000 +SOCIAL_AUTH_EDX_OAUTH2_KEY: discovery-sso-key +SOCIAL_AUTH_EDX_OAUTH2_LOGOUT_URL: http://localhost:18000/logout +SOCIAL_AUTH_EDX_OAUTH2_SECRET: discovery-sso-secret +SOCIAL_AUTH_EDX_OAUTH2_URL_ROOT: http://127.0.0.1:8000 +SOCIAL_AUTH_REDIRECT_IS_HTTPS: false +STATICFILES_STORAGE: django.contrib.staticfiles.storage.StaticFilesStorage +STATIC_ROOT: /edx/var/discovery/staticfiles +TIME_ZONE: UTC +USERNAME_REPLACEMENT_WORKER: OVERRIDE THIS WITH A VALID USERNAME diff --git a/configuration_files/insights.yml b/configuration_files/insights.yml new file mode 100644 index 0000000000..fbacce67a6 --- /dev/null +++ b/configuration_files/insights.yml @@ -0,0 +1,58 @@ +--- + +APPLICATION_NAME: Insights +BACKEND_SERVICE_EDX_OAUTH2_PROVIDER_URL: http://edx.devstack.lms:18000/oauth2 +CACHES: + default: + BACKEND: django.core.cache.backends.memcached.MemcachedCache + KEY_PREFIX: default_env-default_deployment-insights + LOCATION: + - edx.devstack.memcached:11211 +CDN_DOMAIN: null +CMS_COURSE_SHORTCUT_BASE_URL: http://edx.devstack.lms:18000/course +COURSE_API_URL: http://edx.devstack.lms:18000/api/courses/v1/ +CSRF_COOKIE_NAME: insights_csrftoken +CSRF_COOKIE_SECURE: false +DATABASES: + default: + ENGINE: django.db.backends.mysql + HOST: edx.devstack.mysql + NAME: dashboard + PASSWORD: secret + PORT: '3306' + USER: rosencrantz +DATA_API_AUTH_TOKEN: edx +DATA_API_URL: http://edx.devstack.analyticsapi:18100/api/v0 +DOCUMENTATION_LOAD_ERROR_URL: http://127.0.0.1/en/latest/Reference.html#error-conditions +EMAIL_HOST: smtp.example.com +EMAIL_HOST_PASSWORD: mail_password +EMAIL_HOST_USER: mail_user +EMAIL_PORT: 587 +ENABLE_AUTO_AUTH: true +GRADING_POLICY_API_URL: http://edx.devstack.lms:18000/api/grades/v1/ +HELP_URL: http://127.0.0.1/en/latest +LANGUAGE_CODE: en-us +LANGUAGE_COOKIE_NAME: insights_language +LEARNER_API_LIST_DOWNLOAD_FIELDS: null +LMS_COURSE_SHORTCUT_BASE_URL: URL_FOR_LMS_COURSE_LIST_PAGE +MODULE_PREVIEW_URL: http://edx.devstack.lms:18000/xblock +OPEN_SOURCE_URL: http://set-me-please +PLATFORM_NAME: edX +PRIVACY_POLICY_URL: http://example.com/privacy-policy +RESEARCH_URL: https://www.edx.org/research-pedagogy +SECRET_KEY: YOUR_SECRET_KEY_HERE +SEGMENT_IGNORE_EMAIL_REGEX: null +SEGMENT_IO_KEY: YOUR_KEY +SESSION_COOKIE_NAME: insights_sessionid +SESSION_EXPIRE_AT_BROWSER_CLOSE: false +SOCIAL_AUTH_REDIRECT_IS_HTTPS: false +SOCIAL_AUTH_EDX_OAUTH2_ISSUER: http://localhost:18000 +SOCIAL_AUTH_EDX_OAUTH2_URL_ROOT: http://edx.devstack.lms:18000 +SOCIAL_AUTH_EDX_OAUTH2_PUBLIC_URL_ROOT: http://localhost:18000 +SOCIAL_AUTH_EDX_OAUTH2_LOGOUT_URL: http://localhost:18000/logout +STATICFILES_DIRS: +- /edx/app/insights/edx_analytics_dashboard/analytics_dashboard/static +STATIC_ROOT: /edx/var/insights/staticfiles +SUPPORT_EMAIL: '' +TERMS_OF_SERVICE_URL: http://example.com/terms-service +TIME_ZONE: UTC diff --git a/configuration_files/registrar.yml b/configuration_files/registrar.yml new file mode 100644 index 0000000000..3f30b2b897 --- /dev/null +++ b/configuration_files/registrar.yml @@ -0,0 +1,70 @@ +API_ROOT: http://localhost:18734/api +BACKEND_SERVICE_EDX_OAUTH2_KEY: registrar-backend-service-key +BACKEND_SERVICE_EDX_OAUTH2_PROVIDER_URL: http://localhost:18000/oauth2 +BACKEND_SERVICE_EDX_OAUTH2_SECRET: registrar-backend-service-secret +CACHES: + default: + BACKEND: django.core.cache.backends.memcached.MemcachedCache + KEY_PREFIX: registrar + LOCATION: + - edx.devstack.memcached:11211 +CELERY_ALWAYS_EAGER: false +CELERY_BROKER_HOSTNAME: '' +CELERY_BROKER_PASSWORD: '' +CELERY_BROKER_TRANSPORT: '' +CELERY_BROKER_USER: '' +CELERY_BROKER_VHOST: '' +CELERY_DEFAULT_EXCHANGE: registrar +CELERY_DEFAULT_QUEUE: registrar.default +CELERY_DEFAULT_ROUTING_KEY: registrar +CERTIFICATE_LANGUAGES: + en: English + es_419: Spanish +CORS_ORIGIN_WHITELIST: [] +CSRF_COOKIE_SECURE: false +CSRF_TRUSTED_ORIGINS: [] +DATABASES: + default: + ATOMIC_REQUESTS: false + CONN_MAX_AGE: 60 + ENGINE: django.db.backends.mysql + HOST: edx.devstack.mysql + NAME: registrar + OPTIONS: + connect_timeout: 10 + init_command: SET sql_mode='STRICT_TRANS_TABLES' + PASSWORD: password + PORT: '3306' + USER: registrar001 +DISCOVERY_BASE_URL: null +EDX_DRF_EXTENSIONS: + OAUTH2_USER_INFO_URL: http://edx.devstack.lms:18000/oauth2/user_info +EXTRA_APPS: [] +JWT_AUTH: + JWT_AUTH_COOKIE_HEADER_PAYLOAD: edx-jwt-cookie-header-payload + JWT_AUTH_COOKIE_SIGNATURE: edx-jwt-cookie-signature + JWT_ISSUERS: + - AUDIENCE: lms-key + ISSUER: http://localhost:18000/oauth2 + SECRET_KEY: lms-secret + JWT_PUBLIC_SIGNING_JWK_SET: '' +LANGUAGE_CODE: en +LANGUAGE_COOKIE_NAME: openedx-language-preference +LMS_BASE_URL: null +MEDIA_STORAGE_BACKEND: + DEFAULT_FILE_STORAGE: django.core.files.storage.FileSystemStorage + MEDIA_ROOT: /edx/var/registrar/media + MEDIA_URL: /api/media/ +REGISTRAR_SERVICE_USER: registrar_service_user +SECRET_KEY: hBiEM5pDr8GsZv1lh6GKmD0c9SF5Z00TFEoRY1zSmCxijFrR +SEGMENT_KEY: null +SESSION_EXPIRE_AT_BROWSER_CLOSE: false +SOCIAL_AUTH_EDX_OAUTH2_ISSUER: http://127.0.0.1:8000 +SOCIAL_AUTH_EDX_OAUTH2_KEY: registrar-sso-key +SOCIAL_AUTH_EDX_OAUTH2_LOGOUT_URL: http://localhost:18000/logout +SOCIAL_AUTH_EDX_OAUTH2_SECRET: registrar-sso-secret +SOCIAL_AUTH_EDX_OAUTH2_URL_ROOT: http://127.0.0.1:8000 +SOCIAL_AUTH_REDIRECT_IS_HTTPS: false +STATICFILES_STORAGE: django.contrib.staticfiles.storage.StaticFilesStorage +STATIC_ROOT: /edx/var/registrar/staticfiles +TIME_ZONE: UTC diff --git a/course-generator/create-courses.sh b/course-generator/create-courses.sh index eea96f6589..b71d660dcf 100755 --- a/course-generator/create-courses.sh +++ b/course-generator/create-courses.sh @@ -1,9 +1,8 @@ #!/usr/bin/env bash -# Script that provisions studio, ecommerce, marketing with courses -# USAGE: ./create-courses [--studio] [--ecommerce] [--marketing] course-config.json +# Script that provisions studio, and ecommerce with courses +# USAGE: ./create-courses [--studio] [--ecommerce] course-config.json studio=false ecommerce=false -marketing=false echo "Parsing options" container_error=false for arg in "$@"; do @@ -15,22 +14,16 @@ for arg in "$@"; do studio=true fi elif [ $arg == "--ecommerce" ]; then - if [ ! "$(docker exec -t edx.devstack.ecommerce bash -c 'echo "Course will be created for ecommerce"; exit $?')" ]; then + if [ ! "$(docker-compose exec ecommerce bash -c 'echo "Course will be created for ecommerce"; exit $?')" ]; then echo "Issue with ecommerce container" container_error=true else ecommerce=true fi - elif [ $arg == "--marketing" ]; then - if [ ! "$(docker exec -t edx.devstack.marketing bash -c 'echo "Course will be created for marketing"; exit $?')" ]; then - echo "Issue with marketing container. Course creation will proceed without marketing container." - else - marketing=true - fi fi done -if $container_error; then +if $container_error; then echo "Aborting course creation. Check your containers" exit fi @@ -39,7 +32,7 @@ fi ## This will allow users to rerun the command multiple times and avoid duplicate course ids course_config_file="${@: -1}" if [[ ! -f $course_config_file ]] ; then - echo "$course_config_file does not exist. Must provide a valid course config file." + echo "$course_config_file does not exist. Must provide a valid course config file." exit fi course_json="" @@ -54,10 +47,5 @@ fi if $ecommerce ; then echo "Creating courses on ecommerce." - docker exec -t edx.devstack.ecommerce bash -c "source /edx/app/ecommerce/ecommerce_env && python /edx/app/ecommerce/ecommerce/manage.py generate_courses '$course_json'" -fi - -if $marketing ; then - echo "Creating courses on marketing." - docker exec -t edx.devstack.marketing bash -c "drush generate_courses '$course_json'" + docker-compose exec ecommerce bash -c "source /edx/app/ecommerce/ecommerce_env && python /edx/app/ecommerce/ecommerce/manage.py generate_courses '$course_json'" fi diff --git a/credentials/assets/demo-asset-banner-image.png b/credentials/assets/demo-asset-banner-image.png new file mode 100644 index 0000000000..b2fe4602c2 Binary files /dev/null and b/credentials/assets/demo-asset-banner-image.png differ diff --git a/credentials/assets/demo-asset-certificate-logo.png b/credentials/assets/demo-asset-certificate-logo.png new file mode 100644 index 0000000000..26ef296abb Binary files /dev/null and b/credentials/assets/demo-asset-certificate-logo.png differ diff --git a/credentials/assets/demo-asset-logo.png b/credentials/assets/demo-asset-logo.png new file mode 100644 index 0000000000..81017bf381 Binary files /dev/null and b/credentials/assets/demo-asset-logo.png differ diff --git a/credentials/generate_program_certificate.sh b/credentials/generate_program_certificate.sh new file mode 100755 index 0000000000..2347b03d03 --- /dev/null +++ b/credentials/generate_program_certificate.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +echo 'Attempting to award a program certificate to the edX user' +echo 'Updating Discovery...' +echo 'Adding assets to the edX demo organization' +docker-compose exec -T discovery bash -c 'mkdir /edx/app/discovery/discovery/provision-temp' +docker cp ./assets edx.devstack.discovery:/edx/app/discovery/discovery/provision-temp/assets +docker-compose exec -T discovery bash -c 'source /edx/app/discovery/discovery_env && python /edx/app/discovery/discovery/manage.py add_logos_to_organization --partner=edX --logo=/edx/app/discovery/discovery/provision-temp/assets/demo-asset-logo.png --certificate_logo=/edx/app/discovery/discovery/provision-temp/assets/demo-asset-certificate-logo.png --banner_image=/edx/app/discovery/discovery/provision-temp/assets/demo-asset-banner-image.png' +docker-compose exec -T discovery bash -c 'rm -rf /edx/app/discovery/discovery/provision-temp' + +echo 'Updating credentials...' +echo 'setting catalog and lms base urls' +docker-compose exec -T credentials bash -c 'source /edx/app/credentials/credentials_env && python /edx/app/credentials/credentials/manage.py create_or_update_site --site-domain example.com --site-name example.com --platform-name edX --tos-url https://www.edx.org/edx-terms-service --privacy-policy-url https://www.edx.org/edx-privacy-policy --homepage-url https://www.edx.org --company-name "edX Inc." --certificate-help-url https://edx.readthedocs.org/projects/edx-guide-for-students/en/latest/SFD_certificates.html#web-certificates --lms-url-root http://edx.devstack.lms:18000/ --catalog-api-url http://edx.devstack.discovery:18381/api/v1/ --theme-name edx.org' +echo 'copying discovery catalog' +docker-compose exec -T credentials bash -c 'source /edx/app/credentials/credentials_env && python /edx/app/credentials/credentials/manage.py copy_catalog' +echo 'creating a program certificate configuration' +docker-compose exec -T credentials bash -c 'source /edx/app/credentials/credentials_env && python /edx/app/credentials/credentials/manage.py create_program_certificate_configuration' + +echo 'Updating LMS...' +echo 'creating a credentials API connection' +docker-compose exec -T lms bash -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms create_credentials_api_configuration' +echo 'changing edX user enrollment in demo course from audit to verified' +docker-compose exec -T lms bash -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms change_enrollment -u edx -c course-v1:edX+DemoX+Demo_Course --from audit --to verified' +echo 'manually ID verifying edX user' +docker-compose exec -T lms bash -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms manual_verifications --email edx@example.com' +echo 'generating course certificate' +docker-compose exec -T lms bash -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms cert_generation -u 3 -c course-v1:edX+DemoX+Demo_Course' +echo 'notifying credentials' +docker-compose exec -T lms bash -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker notify_credentials --courses course-v1:edX+DemoX+Demo_Course --notify_programs' diff --git a/destroy.sh b/destroy.sh index a63dd00e76..1c92e23784 100755 --- a/destroy.sh +++ b/destroy.sh @@ -1,9 +1,8 @@ #!/usr/bin/env bash - -set -e +set -eu -o pipefail read -p "This will delete all data in your devstack. Would you like to proceed? [y/n] " -r if [[ $REPLY =~ ^[Yy]$ ]] then - docker-compose -f docker-compose.yml -f docker-compose-watchers.yml -f docker-compose-host.yml -f docker-compose-analytics-pipeline.yml down -v + docker-compose down -v fi diff --git a/docker-compose-analytics-pipeline.yml b/docker-compose-analytics-pipeline.yml deleted file mode 100644 index 5e3a294ed6..0000000000 --- a/docker-compose-analytics-pipeline.yml +++ /dev/null @@ -1,122 +0,0 @@ -version: "2.1" - -services: - namenode: - image: edxops/analytics_pipeline_hadoop_namenode:latest - container_name: edx.devstack.analytics_pipeline.namenode - hostname: namenode - environment: - - CLUSTER_NAME=devstack - ports: - - 127.0.0.1:50070:50070 - command: ["/run.sh"] - volumes: - - namenode_data:/hadoop/dfs/name - - datanode: - image: edxops/analytics_pipeline_hadoop_datanode:latest - container_name: edx.devstack.analytics_pipeline.datanode - hostname: datanode - environment: - CORE_CONF_fs_defaultFS: "hdfs://namenode:8020" - depends_on: - - namenode - ports: - - 127.0.0.1:50075:50075 - command: ["/run.sh"] - volumes: - - datanode_data:/hadoop/dfs/data - - resourcemanager: - image: edxops/analytics_pipeline_hadoop_resourcemanager:latest - container_name: edx.devstack.analytics_pipeline.resourcemanager - hostname: resourcemanager - environment: - CORE_CONF_fs_defaultFS: "hdfs://namenode:8020" - YARN_CONF_yarn_log___aggregation___enable: 'true' - YARN_CONF_yarn_nodemanager_aux___services: mapreduce_shuffle - YARN_CONF_yarn_nodemanager_aux___services_mapreduce_shuffle_class: 'org.apache.hadoop.mapred.ShuffleHandler' - MAPRED_CONF_mapreduce_framework_name: yarn - depends_on: - - namenode - - datanode - ports: - - 127.0.0.1:8088:8088 # resource manager web ui - command: ["/run.sh"] - - nodemanager: - image: edxops/analytics_pipeline_hadoop_nodemanager:latest - container_name: edx.devstack.analytics_pipeline.nodemanager - hostname: nodemanager - environment: - CORE_CONF_fs_defaultFS: "hdfs://namenode:8020" - YARN_CONF_yarn_resourcemanager_hostname: resourcemanager - YARN_CONF_yarn_log___aggregation___enable: 'true' - YARN_CONF_yarn_nodemanager_aux___services: mapreduce_shuffle - YARN_CONF_yarn_nodemanager_aux___services_mapreduce_shuffle_class: 'org.apache.hadoop.mapred.ShuffleHandler' - YARN_CONF_yarn_nodemanager_vmem___check___enabled: 'false' - MAPRED_CONF_mapreduce_framework_name: yarn - depends_on: - - resourcemanager - - namenode - - datanode - ports: - - 127.0.0.1:8042:8042 # node manager web ui - - 127.0.0.1:19888:19888 # node manager job history server ui - command: ["/run.sh"] - - sparkmaster: - image: edxops/analytics_pipeline_spark_master:latest - container_name: edx.devstack.analytics_pipeline.sparkmaster - hostname: sparkmaster - ports: - - 127.0.0.1:8080:8080 - - 127.0.0.1:7077:7077 # spark master port - - 127.0.0.1:6066:6066 # spark api - - 127.0.0.1:18080:18080 # spark history server - - sparkworker: - image: edxops/analytics_pipeline_spark_worker:latest - container_name: edx.devstack.analytics_pipeline.sparkworker - hostname: sparkworker - depends_on: - - sparkmaster - environment: - - SPARK_MASTER=spark://sparkmaster:7077 - ports: - - 127.0.0.1:8081:8081 # spark worker UI - - vertica: - image: sumitchawla/vertica:latest - container_name: edx.devstack.analytics_pipeline.vertica - volumes: - - vertica_data:/home/dbadmin/docker - - analyticspipeline: - image: edxops/analytics_pipeline:latest - container_name: edx.devstack.analytics_pipeline - hostname: analyticspipeline - volumes: - - ${DEVSTACK_WORKSPACE}/edx-analytics-pipeline:/edx/app/analytics_pipeline/analytics_pipeline - command: ["/etc/bootstrap.sh", "-d"] - depends_on: - - mysql - - namenode - - resourcemanager - - nodemanager - - datanode - - sparkworker - - elasticsearch - - vertica - ports: - - 127.0.0.1:4040:4040 # spark web UI - environment: - HADOOP_COMMON_RESOURCE_MANAGER_HOST: "resourcemanager" - HADOOP_DEFAULT_FS: "hdfs://namenode:8020" - SPARK_MASTER_HOST: "spark://sparkmaster:7077" - SPARK_MASTER_PORT: "7077" - -volumes: - namenode_data: - datanode_data: - vertica_data: diff --git a/docker-compose-host.yml b/docker-compose-host.yml index cf848e98eb..c30516ce22 100644 --- a/docker-compose-host.yml +++ b/docker-compose-host.yml @@ -1,41 +1,144 @@ + version: "2.1" services: credentials: volumes: - - ${DEVSTACK_WORKSPACE}/credentials:/edx/app/credentials/credentials:cached + - ${DEVSTACK_WORKSPACE}/credentials:/edx/app/credentials/credentials - credentials_node_modules:/edx/app/credentials/credentials/node_modules - - ${DEVSTACK_WORKSPACE}/src:/edx/src:cached + - credentials_tox:/edx/app/credentials/credentials/.tox + - ${DEVSTACK_WORKSPACE}/src:/edx/src discovery: volumes: - - ${DEVSTACK_WORKSPACE}/course-discovery:/edx/app/discovery/discovery:cached + - ${DEVSTACK_WORKSPACE}/course-discovery:/edx/app/discovery/discovery - discovery_node_modules:/edx/app/discovery/discovery/node_modules - - ${DEVSTACK_WORKSPACE}/src:/edx/src:cached + - discovery_tox:/edx/app/discovery/discovery/.tox + - ${DEVSTACK_WORKSPACE}/src:/edx/src ecommerce: volumes: - - ${DEVSTACK_WORKSPACE}/ecommerce:/edx/app/ecommerce/ecommerce:cached + - ${DEVSTACK_WORKSPACE}/ecommerce:/edx/app/ecommerce/ecommerce - ecommerce_node_modules:/edx/app/ecommerce/ecommerce/node_modules - - ${DEVSTACK_WORKSPACE}/src:/edx/src:cached + - ecommerce_tox:/edx/app/ecommerce/ecommerce/.tox + - ${DEVSTACK_WORKSPACE}/src:/edx/src + forum: + volumes: + - ${DEVSTACK_WORKSPACE}/cs_comments_service:/edx/app/forum/cs_comments_service lms: volumes: - - ${DEVSTACK_WORKSPACE}/edx-platform:/edx/app/edxapp/edx-platform:cached + - ${DEVSTACK_WORKSPACE}/edx-platform:/edx/app/edxapp/edx-platform + - edxapp_media:/edx/var/edxapp/media - edxapp_node_modules:/edx/app/edxapp/edx-platform/node_modules - - ${DEVSTACK_WORKSPACE}/src:/edx/src:cached + - edxapp_tox:/edx/app/edxapp/edx-platform/.tox + - edxapp_uploads:/edx/var/edxapp/uploads + - ${DEVSTACK_WORKSPACE}/src:/edx/src edx_notes_api: volumes: - - ${DEVSTACK_WORKSPACE}/edx-notes-api:/edx/app/edx_notes_api/edx_notes_api:cached - - ${DEVSTACK_WORKSPACE}/src:/edx/src:cached + - ${DEVSTACK_WORKSPACE}/edx-notes-api:/edx/app/edx_notes_api/edx_notes_api + - ${DEVSTACK_WORKSPACE}/src:/edx/src + registrar: + volumes: + - ${DEVSTACK_WORKSPACE}/registrar:/edx/app/registrar + registrar-worker: + volumes: + - ${DEVSTACK_WORKSPACE}/registrar:/edx/app/registrar studio: volumes: - - ${DEVSTACK_WORKSPACE}/edx-platform:/edx/app/edxapp/edx-platform:cached + - ${DEVSTACK_WORKSPACE}/edx-platform:/edx/app/edxapp/edx-platform + - edxapp_media:/edx/var/edxapp/media - edxapp_node_modules:/edx/app/edxapp/edx-platform/node_modules - - ${DEVSTACK_WORKSPACE}/src:/edx/src:cached - forum: + - edxapp_tox:/edx/app/edxapp/edx-platform/.tox + - edxapp_uploads:/edx/var/edxapp/uploads + - ${DEVSTACK_WORKSPACE}/src:/edx/src + insights: volumes: - - ${DEVSTACK_WORKSPACE}/cs_comments_service:/edx/app/forum/cs_comments_service:cached - + - ${DEVSTACK_WORKSPACE}/edx-analytics-dashboard:/edx/app/insights/insights + - insights_node_modules:/edx/app/insights/insights/node_modules + analyticsapi: + volumes: + - ${DEVSTACK_WORKSPACE}/edx-analytics-data-api:/edx/app/analytics_api/analytics_api + - ${DEVSTACK_WORKSPACE}/src:/edx/src + + # Note that frontends mount `src` to /edx/app/src instead of /edx/src. + # See ADR #5 for rationale. + frontend-app-account: + volumes: + - ${DEVSTACK_WORKSPACE}/frontend-app-account:/edx/app/frontend-app-account + - frontend_app_account_node_modules:/edx/app/frontend-app-account/node_modules + - ${DEVSTACK_WORKSPACE}/src:/edx/app/src + + frontend-app-profile: + volumes: + - ${DEVSTACK_WORKSPACE}/frontend-app-profile:/edx/app/frontend-app-profile + - frontend_app_profile_node_modules:/edx/app/frontend-app-profile/node_modules + - ${DEVSTACK_WORKSPACE}/src:/edx/app/src + + frontend-app-authn: + volumes: + - ${DEVSTACK_WORKSPACE}/frontend-app-authn:/edx/app/frontend-app-authn + - frontend_app_authn_node_modules:/edx/app/frontend-app-authn/node_modules + - ${DEVSTACK_WORKSPACE}/src:/edx/app/src + + frontend-app-course-authoring: + volumes: + - ${DEVSTACK_WORKSPACE}/frontend-app-course-authoring:/edx/app/frontend-app-course-authoring + - frontend_app_course_authoring_node_modules:/edx/app/frontend-app-course-authoring/node_modules + - ${DEVSTACK_WORKSPACE}/src:/edx/app/src + frontend-app-gradebook: + volumes: + - ${DEVSTACK_WORKSPACE}/frontend-app-gradebook:/edx/app/frontend-app-gradebook + - frontend_app_gradebook_node_modules:/edx/app/frontend-app-gradebook/node_modules + - ${DEVSTACK_WORKSPACE}/src:/edx/app/src + frontend-app-ora-grading: + volumes: + - ${DEVSTACK_WORKSPACE}/frontend-app-ora-grading:/edx/app/frontend-app-ora-grading + - frontend_app_ora_grading_node_modules:/edx/app/frontend-app-ora-grading/node_modules + - ${DEVSTACK_WORKSPACE}/src:/edx/app/src + frontend-app-learning: + volumes: + - ${DEVSTACK_WORKSPACE}/frontend-app-learning:/edx/app/frontend-app-learning + - frontend_app_learning_node_modules:/edx/app/frontend-app-learning/node_modules + - ${DEVSTACK_WORKSPACE}/src:/edx/app/src + frontend-app-library-authoring: + volumes: + - ${DEVSTACK_WORKSPACE}/frontend-app-library-authoring:/edx/app/frontend-app-library-authoring + - frontend_app_library_authoring_node_modules:/edx/app/frontend-app-library-authoring/node_modules + - ${DEVSTACK_WORKSPACE}/src:/edx/app/src + frontend-app-payment: + volumes: + - ${DEVSTACK_WORKSPACE}/frontend-app-payment:/edx/app/frontend-app-payment + - frontend_app_payment_node_modules:/edx/app/frontend-app-payment/node_modules + - ${DEVSTACK_WORKSPACE}/src:/edx/app/src + frontend-app-program-console: + volumes: + - ${DEVSTACK_WORKSPACE}/frontend-app-program-console:/edx/app/frontend-app-program-console + - frontend_app_program_console_node_modules:/edx/app/frontend-app-program-console/node_modules + - ${DEVSTACK_WORKSPACE}/src:/edx/app/src + frontend-app-publisher: + volumes: + - ${DEVSTACK_WORKSPACE}/frontend-app-publisher:/edx/app/frontend-app-publisher + - frontend_app_publisher_node_modules:/edx/app/frontend-app-publisher/node_modules + - ${DEVSTACK_WORKSPACE}/src:/edx/app/src + volumes: credentials_node_modules: discovery_node_modules: ecommerce_node_modules: + insights_node_modules: + edxapp_media: edxapp_node_modules: + edxapp_uploads: + frontend_app_account_node_modules: + frontend_app_profile_node_modules: + frontend_app_authn_node_modules: + frontend_app_course_authoring_node_modules: + frontend_app_gradebook_node_modules: + frontend_app_ora_grading_node_modules: + frontend_app_learning_node_modules: + frontend_app_library_authoring_node_modules: + frontend_app_payment_node_modules: + frontend_app_program_console_node_modules: + frontend_app_publisher_node_modules: + credentials_tox: + discovery_tox: + ecommerce_tox: + edxapp_tox: diff --git a/docker-compose-marketing-site-host.yml b/docker-compose-marketing-site-host.yml deleted file mode 100644 index d7e664eaed..0000000000 --- a/docker-compose-marketing-site-host.yml +++ /dev/null @@ -1,9 +0,0 @@ -version: "2.1" - -services: - marketing: - volumes: - # NOTE: A private key is needed to sync the files and database from production. - - ~/.ssh/id_rsa_acquia:/root/.ssh/id_rsa_acquia - - ../edx-mktg:/edx/app/edx-mktg/edx-mktg - - ../edx-mktg/docroot:/var/www/html diff --git a/docker-compose-marketing-site-sync.yml b/docker-compose-marketing-site-sync.yml deleted file mode 100644 index 156375e4c6..0000000000 --- a/docker-compose-marketing-site-sync.yml +++ /dev/null @@ -1,10 +0,0 @@ -version: "2.1" - -services: - marketing: - volumes: - - marketing-sync:/var/www/html:nocopy - -volumes: - marketing-sync: - external: true diff --git a/docker-compose-marketing-site.yml b/docker-compose-marketing-site.yml deleted file mode 100644 index 1051b4f872..0000000000 --- a/docker-compose-marketing-site.yml +++ /dev/null @@ -1,30 +0,0 @@ -version: "2.1" - -services: - lms: - environment: - - ENABLE_MARKETING_SITE=1 - - MARKETING_SITE_ROOT="http://localhost:8080" - - marketing: - container_name: edx.devstack.marketing - depends_on: - - mysql - - memcached - environment: - - DB_HOST=edx.devstack.mysql - - DB_NAME=edxmktg - - DB_PASSWORD=password - - DB_USER=edxmktg001 - - LMS_HOST=http://localhost:18000 - - MEMCACHE_HOST=edx.devstack.memcached - # Used by PhpStorm to attach the debug connection - - PHP_IDE_CONFIG=serverName=edx.docker - # For the settings below, see .env.example to provide values (default is after the ':-') - # Provides local environment overrides. (PRIVATE_SETTINGS set in .env file) - - DRUPAL_EXTRA_SETTINGS=${DRUPAL_EXTRA_SETTINGS:-/var/www/html/sites/default/docker.settings.php} - # IP address of your machine to enable debugging (IP_ADDRESS set in .env file) - - XDEBUG_CONFIG=remote_host=${XDEBUG_IP_ADDRESS:-127.0.0.1} - image: edxops/edx-mktg:latest - ports: - - "8080:80" diff --git a/docker-compose-sync.yml b/docker-compose-sync.yml deleted file mode 100644 index 00900eee18..0000000000 --- a/docker-compose-sync.yml +++ /dev/null @@ -1,33 +0,0 @@ -version: "2.1" - -services: - credentials: - volumes: - - credentials-sync:/edx/app/credentials/credentials:nocopy - discovery: - volumes: - - discovery-sync:/edx/app/discovery/discovery:nocopy - ecommerce: - volumes: - - ecommerce-sync:/edx/app/ecommerce/ecommerce:nocopy - lms: - volumes: - - edxapp-sync:/edx/app/edxapp/edx-platform:nocopy - studio: - volumes: - - edxapp-sync:/edx/app/edxapp/edx-platform:nocopy - forum: - volumes: - - forum-sync:/edx/app/forum/cs_comments_service:nocopy - -volumes: - credentials-sync: - external: true - discovery-sync: - external: true - ecommerce-sync: - external: true - edxapp-sync: - external: true - forum-sync: - external: true diff --git a/docker-compose-themes.yml b/docker-compose-themes.yml index 8396e5c2c9..94de501d94 100644 --- a/docker-compose-themes.yml +++ b/docker-compose-themes.yml @@ -3,13 +3,13 @@ version: "2.1" services: discovery: volumes: - - ${DEVSTACK_WORKSPACE}/edx-themes:/edx/app/edx-themes:cached + - ${DEVSTACK_WORKSPACE}/edx-themes:/edx/app/edx-themes ecommerce: volumes: - - ${DEVSTACK_WORKSPACE}/edx-themes:/edx/app/edx-themes:cached + - ${DEVSTACK_WORKSPACE}/edx-themes:/edx/app/edx-themes lms: volumes: - - ${DEVSTACK_WORKSPACE}/edx-themes:/edx/app/edx-themes:cached + - ${DEVSTACK_WORKSPACE}/edx-themes:/edx/app/edx-themes studio: volumes: - - ${DEVSTACK_WORKSPACE}/edx-themes:/edx/app/edx-themes:cached + - ${DEVSTACK_WORKSPACE}/edx-themes:/edx/app/edx-themes diff --git a/docker-compose-watchers.yml b/docker-compose-watchers.yml index 34c9074a0b..e65bdf7cdd 100644 --- a/docker-compose-watchers.yml +++ b/docker-compose-watchers.yml @@ -3,28 +3,41 @@ version: "2.1" services: lms_watcher: command: bash -c 'cd /edx/app/edxapp/edx-platform && source ../edxapp_env && while true; do paver watch_assets --w=$$ASSET_WATCHER_TIMEOUT; sleep 2; done' - container_name: edx.devstack.lms_watcher + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.lms_watcher" environment: BOK_CHOY_HOSTNAME: edx.devstack.lms_watcher ASSET_WATCHER_TIMEOUT: 12 - image: edxops/edxapp:latest + image: openedx/lms-dev:${OPENEDX_RELEASE:-latest} volumes: - - ${DEVSTACK_WORKSPACE}/edx-platform:/edx/app/edxapp/edx-platform:cached + - ${DEVSTACK_WORKSPACE}/edx-platform:/edx/app/edxapp/edx-platform - edxapp_lms_assets:/edx/var/edxapp/staticfiles/ - - ${DEVSTACK_WORKSPACE}/src:/edx/src:cached + - edxapp_node_modules:/edx/app/edxapp/edx-platform/node_modules + - ${DEVSTACK_WORKSPACE}/src:/edx/src + - ${DEVSTACK_WORKSPACE}/edx-themes:/edx/app/edx-themes + networks: + default: + aliases: + - edx.devstack.lms_watcher studio_watcher: command: bash -c 'cd /edx/app/edxapp/edx-platform && source ../edxapp_env && while true; do paver watch_assets --w=$$ASSET_WATCHER_TIMEOUT; sleep 2; done' - container_name: edx.devstack.studio_watcher + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.studio_watcher" environment: BOK_CHOY_HOSTNAME: edx.devstack.studio_watcher ASSET_WATCHER_TIMEOUT: 12 - image: edxops/edxapp:latest + image: openedx/lms-dev:${OPENEDX_RELEASE:-latest} volumes: - edxapp_studio_assets:/edx/var/edxapp/staticfiles/ - - ${DEVSTACK_WORKSPACE}/edx-platform:/edx/app/edxapp/edx-platform:cached - - ${DEVSTACK_WORKSPACE}/src:/edx/src:cached + - ${DEVSTACK_WORKSPACE}/edx-platform:/edx/app/edxapp/edx-platform + - edxapp_node_modules:/edx/app/edxapp/edx-platform/node_modules + - ${DEVSTACK_WORKSPACE}/src:/edx/src + - ${DEVSTACK_WORKSPACE}/edx-themes:/edx/app/edx-themes + networks: + default: + aliases: + - edx.devstack.studio_watcher volumes: edxapp_lms_assets: edxapp_studio_assets: + edxapp_node_modules: diff --git a/docker-compose-xqueue.yml b/docker-compose-xqueue.yml deleted file mode 100644 index 04db96f2b7..0000000000 --- a/docker-compose-xqueue.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: "2.1" - -services: - xqueue: - container_name: edx.devstack.xqueue - image: edxops/xqueue:latest - command: bash -c 'source /edx/app/xqueue/xqueue_env && while true; do python /edx/app/xqueue/xqueue/manage.py runserver 0.0.0.0:18040 ; sleep 2; done' - volumes: - - ${DEVSTACK_WORKSPACE}/xqueue:/edx/app/xqueue/xqueue:cached - # depends_on: even though we need mysql, we can't refer to it because it's started in the other compose file - ports: - - 18040:18040 - - xqueue_consumer: - container_name: edx.devstack.xqueue_consumer - image: edxops/xqueue:latest - command: bash -c 'source /edx/app/xqueue/xqueue_env && while true; do python /edx/app/xqueue/xqueue/manage.py run_consumer ; sleep 2; done' - volumes: - - ${DEVSTACK_WORKSPACE}/xqueue:/edx/app/xqueue/xqueue:cached - # depends_on: even though we need mysql, we can't refer to it because it's started in the other compose file diff --git a/docker-compose.yml b/docker-compose.yml index 63fa74b86c..d51e5d9153 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ # for the appropriate syntax and definitions. # # Housekeeping Rules: -# - Group third-party and edX services separately +# - Group third-party services, edX services, and edX microfrontends separately # - Alphabetize services in the groups # - Alphabetize individual configuration options for each service # - Every service's container name should be prefixed with "edx.devstack." to avoid conflicts with other containers @@ -11,20 +11,67 @@ version: "2.1" services: + + # ================================================ # Third-party services + # ================================================ + chrome: - container_name: edx.devstack.chrome - image: edxops/chrome:latest + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.chrome" + hostname: chrome.devstack.edx + image: edxops/chrome:${OPENEDX_RELEASE:-latest} shm_size: 2g + networks: + default: + aliases: + - edx.devstack.chrome ports: - "15900:5900" volumes: # for file uploads - ../edx-e2e-tests/upload_files:/edx/app/e2e/edx-e2e-tests/upload_files - ../edx-platform/common/test/data:/edx/app/edxapp/edx-platform/common/test/data + coursegraph: + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.coursegraph" + hostname: coursegraph.devstack.edx + # Try to keep this in sync with the NEO4J_VERSION declared within + # https://github.com/openedx/configuration/blob/master/playbooks/roles/neo4j + image: neo4j:3.5.28 + networks: + default: + aliases: + - edx.devstack.coursegraph + ports: + - "7474:7474" # Expose Web interface at http://localhost:7474. + - "7687:7687" # Expose Bolt interface at bolt://user:password@localhost:7687. + volumes: + - coursegraph_data:/data + stdin_open: true + tty: true + environment: + NEO4J_AUTH: "neo4j/edx" # Initial username/password for Neo4j Web interface. + + devpi: + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.devpi" + hostname: devpi.devstack.edx + image: edxops/devpi:${OPENEDX_RELEASE:-latest} + networks: + default: + aliases: + - edx.devstack.devpi + ports: + - "3141:3141" + volumes: + - devpi_data:/data + elasticsearch: - container_name: edx.devstack.elasticsearch + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.elasticsearch" + hostname: elasticsearch.devstack.edx image: edxops/elasticsearch:devstack + networks: + default: + aliases: + - edx.devstack.elasticsearch # TODO: What to do about these forwarded ports? They'll conflict with ports forwarded by the Vagrant VM. # ports: # - "9200:9200" @@ -33,19 +80,143 @@ services: - elasticsearch_data:/usr/share/elasticsearch/data - elasticsearch_data:/usr/share/elasticsearch/logs + # This is meant to be used to test ES upgrades so that we do not have to upgrade all of our services to ES5 at once. + elasticsearch7: + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.elasticsearch7" + hostname: elasticsearch7.devstack.edx + image: elasticsearch:7.8.1 + networks: + default: + aliases: + - edx.devstack.elasticsearch7 + ports: + - "9200:9200" + - "9300:9300" + volumes: + - elasticsearch7_data:/usr/share/elasticsearch/data + environment: + - discovery.type=single-node + - bootstrap.memory_lock=true + - "ES_JAVA_OPTS=-Xms512m -Xmx512m" + + # This is meant to be used to test ES upgrades. + elasticsearch710: + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.elasticsearch710" + hostname: elasticsearch710.devstack.edx + image: elasticsearch:7.10.1 + networks: + default: + aliases: + - edx.devstack.elasticsearch710 + ports: + - "9201:9200" + - "9301:9300" + volumes: + - elasticsearch710_data:/usr/share/elasticsearch/data + environment: + - discovery.type=single-node + - bootstrap.memory_lock=true + - "ES_JAVA_OPTS=-Xms512m -Xmx512m" + + # This is meant to be used to test OS upgrades. + opensearch12: + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.opensearch12" + hostname: opensearch12.devstack.edx + image: opensearchproject/opensearch:1.2.0 + networks: + default: + aliases: + - edx.devstack.opensearch12 + ports: + - "9202:9200" + - "9600:9600" + volumes: + - opensearch12_data:/usr/share/opensearch/data + environment: + - discovery.type=single-node + - bootstrap.memory_lock=true + - "ES_JAVA_OPTS=-Xms512m -Xmx512m" + firefox: - container_name: edx.devstack.firefox - image: edxops/firefox:latest + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.firefox" + hostname: firefox.devstack.edx + image: edxops/firefox:${OPENEDX_RELEASE:-latest} shm_size: 2g + networks: + default: + aliases: + - edx.devstack.firefox ports: - "25900:5900" volumes: # for file uploads - ../edx-e2e-tests/upload_files:/edx/app/e2e/edx-e2e-tests/upload_files - ../edx-platform/common/test/data:/edx/app/edxapp/edx-platform/common/test/data + # Events broker + kafka: + image: confluentinc/cp-server:6.2.1 + hostname: kafka.devstack.edx + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.kafka" + depends_on: + - zookeeper + ports: + - "9092:9092" + - "9101:9101" + environment: + KAFKA_BROKER_ID: 1 + KAFKA_ZOOKEEPER_CONNECT: 'edx.devstack.zookeeper:2181' + KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://edx.devstack.kafka:29092,PLAINTEXT_HOST://localhost:9092 + KAFKA_METRIC_REPORTERS: io.confluent.metrics.reporter.ConfluentMetricsReporter + KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 + KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0 + KAFKA_CONFLUENT_LICENSE_TOPIC_REPLICATION_FACTOR: 1 + KAFKA_CONFLUENT_BALANCER_TOPIC_REPLICATION_FACTOR: 1 + KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 + KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 + KAFKA_JMX_PORT: 9101 + KAFKA_JMX_HOSTNAME: localhost + KAFKA_CONFLUENT_SCHEMA_REGISTRY_URL: http://edx.devstack.schema-registry:8081 + CONFLUENT_METRICS_REPORTER_BOOTSTRAP_SERVERS: edx.devstack.kafka:29092 + CONFLUENT_METRICS_REPORTER_TOPIC_REPLICAS: 1 + CONFLUENT_METRICS_ENABLE: 'true' + CONFLUENT_SUPPORT_CUSTOMER_ID: 'anonymous' + networks: + default: + aliases: + - edx.devstack.kafka + + # browser app for monitoring local Kafka cluster. This is quite memory- and CPU-intensive, so it should only be used for local Kafka debugging + kafka-control-center: + image: confluentinc/cp-enterprise-control-center:6.2.1 + hostname: kafka-control-center.devstack.edx + container_name: edx.${COMPOSE_PROJECT_NAME:-devstack}.kafka-control-center + depends_on: + - kafka + - schema-registry + ports: + - "9021:9021" + environment: + CONTROL_CENTER_BOOTSTRAP_SERVERS: edx.devstack.kafka:29092 + CONTROL_CENTER_SCHEMA_REGISTRY_URL: http://edx.devstack.schema-registry:8081 + CONTROL_CENTER_REPLICATION_FACTOR: 1 + CONTROL_CENTER_INTERNAL_TOPICS_PARTITIONS: 1 + CONTROL_CENTER_MONITORING_INTERCEPTOR_TOPIC_PARTITIONS: 1 + CONFLUENT_METRICS_TOPIC_REPLICATION: 1 + PORT: 9021 + networks: + default: + aliases: + - edx.devstack.kafka-control-center + memcached: - container_name: edx.devstack.memcached - image: memcached:1.4.24 + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.memcached" + hostname: memcached.devstack.edx + image: memcached:1.5.10-alpine + networks: + default: + aliases: + - edx.devstack.memcached # ports: # - "11211:11211" @@ -53,87 +224,223 @@ services: # We use WiredTiger in all environments. In development environments we use small files # to conserve disk space, and disable the journal for a minor performance gain. # See https://docs.mongodb.com/v3.0/reference/program/mongod/#options for complete details. - command: mongod --smallfiles --nojournal --storageEngine wiredTiger - container_name: edx.devstack.mongo - image: mongo:3.2.16 - # ports: - # - "27017:27017" + command: mongod --nojournal --storageEngine wiredTiger + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.mongo" + hostname: mongo.devstack.edx + image: mongo:${MONGO_VERSION:-4.2.14} + networks: + default: + aliases: + - edx.devstack.mongo + ports: + - "27017:27017" volumes: - mongo_data:/data/db - mysql: + mysql57: command: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci - container_name: edx.devstack.mysql + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.mysql57" + hostname: mysql57.devstack.edx environment: MYSQL_ROOT_PASSWORD: "" MYSQL_ALLOW_EMPTY_PASSWORD: "yes" - image: mysql:5.6 - # ports: - # - "3306:3306" + image: edxops/mysql:5.7 + networks: + default: + aliases: + - edx.devstack.mysql57 + ports: + - "3506:3306" volumes: - - mysql_data:/var/lib/mysql + - mysql57_data:/var/lib/mysql + + redis: + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.redis" + hostname: redis.devstack.edx + image: redis:6.2.7 + command: redis-server --requirepass password + networks: + default: + aliases: + - edx.devstack.redis + # storage layer for data schemas in Kafka + schema-registry: + image: confluentinc/cp-schema-registry:6.2.1 + hostname: schema-registry.devstack.edx + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.schema-registry" + depends_on: + - kafka + ports: + - "8081:8081" + environment: + SCHEMA_REGISTRY_HOST_NAME: schema-registry.devstack.edx + SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: 'edx.devstack.kafka:29092' + SCHEMA_REGISTRY_LISTENERS: http://0.0.0.0:8081 + networks: + default: + aliases: + - edx.devstack.schema-registry + + # needed by Kafka to keep track of nodes, topics, and messages. + zookeeper: + image: confluentinc/cp-zookeeper:6.2.1 + hostname: zookeeper.devstack.edx + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.zookeeper" + ports: + - "2181:2181" + environment: + ZOOKEEPER_CLIENT_PORT: 2181 + ZOOKEEPER_TICK_TIME: 2000 + networks: + default: + aliases: + - edx.devstack.zookeeper + + + # ================================================ # edX services + # ================================================ + credentials: command: bash -c 'source /edx/app/credentials/credentials_env && while true; do python /edx/app/credentials/credentials/manage.py runserver 0.0.0.0:18150; sleep 2; done' - container_name: edx.devstack.credentials + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.credentials" + hostname: credentials.devstack.edx depends_on: - - mysql + - lms - memcached + - mysql57 # Allows attachment to the credentials service using 'docker attach '. stdin_open: true tty: true environment: - CACHE_LOCATION: edx.devstack.memcached:12211 - DB_HOST: edx.devstack.mysql + CACHE_LOCATION: edx.devstack.memcached:11211 + DB_HOST: edx.devstack.mysql57 SOCIAL_AUTH_EDX_OIDC_URL_ROOT: http://edx.devstack.lms:18000/oauth2 ENABLE_DJANGO_TOOLBAR: 1 - image: edxops/credentials:latest + DJANGO_WATCHMAN_TIMEOUT: 30 + image: edxops/credentials:${OPENEDX_RELEASE:-latest} + networks: + default: + aliases: + - edx.devstack.credentials ports: - "18150:18150" discovery: command: bash -c 'source /edx/app/discovery/discovery_env && while true; do python /edx/app/discovery/discovery/manage.py runserver 0.0.0.0:18381; sleep 2; done' - container_name: edx.devstack.discovery + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.discovery" + hostname: discovery.devstack.edx depends_on: - - mysql - - elasticsearch + - elasticsearch710 - memcached + - mysql57 + - opensearch12 + - redis # Allows attachment to the discovery service using 'docker attach '. stdin_open: true tty: true environment: - TEST_ELASTICSEARCH_URL: "http://edx.devstack.elasticsearch:9200" + # This next DB_MIGRATION_HOST line can be removed once edx/configuration has been updated with this value for + # a while and most people have had a chance to do a "make pull" to get the latest images. + DB_MIGRATION_HOST: edx.devstack.mysql57 + TEST_ELASTICSEARCH_URL: "edx.devstack.elasticsearch710" ENABLE_DJANGO_TOOLBAR: 1 - image: edxops/discovery:latest + DJANGO_WATCHMAN_TIMEOUT: 30 + image: edxops/discovery-dev:${OPENEDX_RELEASE:-latest} + networks: + default: + aliases: + - edx.devstack.discovery ports: - "18381:18381" volumes: - discovery_assets:/edx/var/discovery/ + - ${PWD}/configuration_files/discovery.yml:/edx/etc/discovery.yml ecommerce: command: bash -c 'source /edx/app/ecommerce/ecommerce_env && while true; do python /edx/app/ecommerce/ecommerce/manage.py runserver 0.0.0.0:18130; sleep 2; done' - container_name: edx.devstack.ecommerce + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.ecommerce" + hostname: ecommerce.devstack.edx depends_on: - - mysql + - discovery + - lms - memcached + - mysql57 # Allows attachment to the ecommerce service using 'docker attach '. stdin_open: true tty: true environment: - ENABLE_DJANGO_TOOLBAR: 0 - image: edxops/ecommerce:latest + DJANGO_WATCHMAN_TIMEOUT: 30 + ENABLE_DJANGO_TOOLBAR: 1 + image: edxops/ecommerce:${OPENEDX_RELEASE:-latest} + networks: + default: + aliases: + - edx.devstack.ecommerce ports: - "18130:18130" + edx_notes_api: + # Sleep as a part of start up to give elasticsearch enough time to start up. + command: bash -c 'source /edx/app/edx_notes_api/edx_notes_api_env && while true; do python /edx/app/edx_notes_api/edx_notes_api/manage.py runserver 0.0.0.0:18120 --settings notesserver.settings.devstack; sleep 4; done' + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.edxnotesapi" + hostname: edx_notes_api.devstack.edx + depends_on: + - devpi + - elasticsearch710 + - lms + - mysql57 + image: edxops/notes:${OPENEDX_RELEASE:-latest} + networks: + default: + aliases: + - edx.devstack.edxnotesapi + ports: + - "18120:18120" + environment: + DB_ENGINE: "django.db.backends.mysql" + DB_HOST: "edx.devstack.mysql57" + DB_NAME: "notes" + DB_PASSWORD: "password" + DB_PORT: "3306" + DB_USER: "notes001" + DJANGO_WATCHMAN_TIMEOUT: 30 + ENABLE_DJANGO_TOOLBAR: 1 + ELASTICSEARCH_URL: "http://edx.devstack.elasticsearch710:9200" + ELASTICSEARCH_DSL: "http://edx.devstack.elasticsearch710:9200" + + forum: + command: bash -c 'source /edx/app/forum/ruby_env && source /edx/app/forum/devstack_forum_env && cd /edx/app/forum/cs_comments_service && bundle install && while true; do ruby app.rb -o 0.0.0.0 ; sleep 2; done' + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.forum" + hostname: forum.devstack.edx + depends_on: + - memcached + - mongo + - elasticsearch710 + - opensearch12 + image: edxops/forum:${OPENEDX_RELEASE:-latest} + stdin_open: true + tty: true + networks: + default: + aliases: + - edx.devstack.forum + ports: + - "44567:4567" + lms: command: bash -c 'source /edx/app/edxapp/edxapp_env && while true; do python /edx/app/edxapp/edx-platform/manage.py lms runserver 0.0.0.0:18000 --settings devstack_docker; sleep 2; done' - container_name: edx.devstack.lms + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.lms" + hostname: lms.devstack.edx depends_on: - devpi - - mysql + - discovery + - elasticsearch710 + - forum - memcached - mongo + - mysql57 # Allows attachment to the LMS service using 'docker attach '. stdin_open: true tty: true @@ -143,7 +450,18 @@ services: BOK_CHOY_CMS_PORT: 18031 EDXAPP_TEST_MONGO_HOST: edx.devstack.mongo NO_PYTHON_UNINSTALL: 1 - image: edxops/edxapp:latest + DJANGO_WATCHMAN_TIMEOUT: 30 + VIRTUAL_ENV: "/edx/app/edxapp/venvs/edxapp" + LMS_CFG: "/edx/etc/lms.yml" + CMS_CFG: "/edx/etc/studio.yml" + PATH: "/edx/app/edxapp/venvs/edxapp/bin:/edx/app/edxapp/nodeenv/bin:/edx/app/edxapp/edx-platform/node_modules/.bin:/edx/app/edxapp/edx-platform/bin:${PATH}" + SERVICE_VARIANT: lms + image: openedx/lms-dev:${OPENEDX_RELEASE:-latest} + networks: + default: + aliases: + - edx.devstack.lms + - lms.devstack.edx ports: - "18000:18000" - "19876:19876" # JS test debugging @@ -152,34 +470,150 @@ services: volumes: - edxapp_lms_assets:/edx/var/edxapp/staticfiles/ - edx_notes_api: - command: bash -c 'source /edx/app/edx_notes_api/edx_notes_api_env && while true; do python /edx/app/edx_notes_api/edx_notes_api/manage.py runserver 0.0.0.0:18120 --settings notesserver.settings.devstack; sleep 2; done' - container_name: edx.devstack.edx_notes_api + insights: + command: bash -c 'source /edx/app/insights/insights_env && while true; do python /edx/app/insights/insights/manage.py runserver 0.0.0.0:18110 --settings analytics_dashboard.settings.devstack; sleep 2; done' + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.insights" + hostname: insights.devstack.edx depends_on: - - devpi - - elasticsearch - - mysql - image: edxops/notes:latest + - analyticsapi + - mysql57 + - lms + - memcached + # Allows attachment to the insights service using 'docker attach '. + stdin_open: true + tty: true + environment: + DB_HOST: edx.devstack.mysql57 + DB_NAME: dashboard + DB_PORT: 3306 + DB_USER: analytics001 + DB_PASSWORD: password + LMS_HOST: http://localhost:18000 + DJANGO_SETTINGS_MODULE: analytics_dashboard.settings.devstack + ANALYTICS_DASHBOARD_CFG: /edx/etc/insights.yml + image: edxops/insights-dev:${OPENEDX_RELEASE:-latest} + working_dir: /edx/app/insights/insights + networks: + default: + aliases: + - edx.devstack.insights ports: - - "18120:18120" + - "18110:18110" + volumes: + - /edx/var/insights/ + - ${PWD}/configuration_files/insights.yml:/edx/etc/insights.yml + + analyticsapi: + image: edxops/analytics-api-dev:${OPENEDX_RELEASE:-latest} + container_name: edx.devstack.analyticsapi + hostname: analyticsapi + depends_on: + - mysql57 + - elasticsearch710 + command: bash -c 'source /edx/app/analytics_api/analytics_api_env && while true; do python /edx/app/analytics_api/analytics_api/manage.py runserver 0.0.0.0:19001 --settings analyticsdataserver.settings.devstack; sleep 2; done' + stdin_open: true + tty: true environment: - DB_ENGINE: "django.db.backends.mysql" - DB_HOST: "edx.devstack.mysql" - DB_NAME: "notes" - DB_PASSWORD: "password" - DB_PORT: "3306" - DB_USER: "notes001" - ENABLE_DJANGO_TOOLBAR: 1 - ELASTICSEARCH_URL: "http://edx.devstack.elasticsearch:9200" + DB_HOST: edx.devstack.mysql57 + DB_PORT: 3306 + DB_USER: analytics001 + DB_PASSWORD: password + ELASTICSEARCH_LEARNERS_HOST: edx.devstack.elasticsearch710 + working_dir: /edx/app/analytics_api/analytics_api + ports: + - "19001:19001" + volumes: + - /edx/var/analyticsapi + - ${PWD}/configuration_files/analytics_api.yml:/edx/etc/analytics_api.yml + + registrar: + command: bash -c 'while true; do python /edx/app/registrar/manage.py runserver 0.0.0.0:18734; sleep 2; done' + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.registrar" + hostname: registrar.devstack.edx + depends_on: + - discovery + - lms + - mysql57 + - memcached + - redis + - registrar-worker + # Allows attachment to the registrar service using 'docker attach '. + stdin_open: true + tty: true + environment: + DB_HOST: edx.devstack.mysql57 + DB_NAME: registrar + DB_PORT: 3306 + DB_USER: registrar001 + DB_PASSWORD: password + LMS_HOST: http://localhost:18000 + MEMCACHE_HOST: edx.devstack.memcached + DJANGO_SETTINGS_MODULE: registrar.settings.devstack + CELERY_ALWAYS_EAGER: 'false' + CELERY_BROKER_TRANSPORT: redis + CELERY_BROKER_HOSTNAME: edx.devstack.redis:6379 + CELERY_BROKER_VHOST: 10 + CELERY_BROKER_PASSWORD: password + DJANGO_WATCHMAN_TIMEOUT: 30 + ANALYTICS_DASHBOARD_CFG: /edx/etc/registrar.yml + image: edxops/registrar-dev:${OPENEDX_RELEASE:-latest} + working_dir: /edx/app/registrar + networks: + default: + aliases: + - edx.devstack.registrar + ports: + - "18734:18734" + volumes: + - /edx/var/registrar/ + - ${PWD}/configuration_files/registrar.yml:/edx/etc/registrar.yml + + + registrar-worker: + command: bash -c 'cd /edx/app/registrar && celery -A registrar worker -l debug -c 2' + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.registrar-worker" + hostname: registrar-worker.devstack.edx + depends_on: + - lms + - mysql57 + - redis + stdin_open: true + tty: true + environment: + DB_HOST: edx.devstack.mysql57 + DB_NAME: registrar + DB_PORT: 3306 + DB_USER: registrar001 + DB_PASSWORD: password + LMS_HOST: http://localhost:18000 + MEMCACHE_HOST: edx.devstack.memcached + DJANGO_SETTINGS_MODULE: registrar.settings.devstack + CELERY_BROKER_TRANSPORT: redis + CELERY_BROKER_HOSTNAME: edx.devstack.redis:6379 + CELERY_BROKER_VHOST: 10 + CELERY_BROKER_PASSWORD: password + DJANGO_WATCHMAN_TIMEOUT: 30 + image: edxops/registrar-dev:${OPENEDX_RELEASE:-latest} + networks: + default: + aliases: + - edx.devstack.registrar-worker + ports: + - "18735:18735" + volumes: + - /edx/var/registrar/ studio: command: bash -c 'source /edx/app/edxapp/edxapp_env && while true; do python /edx/app/edxapp/edx-platform/manage.py cms runserver 0.0.0.0:18010 --settings devstack_docker; sleep 2; done' - container_name: edx.devstack.studio + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.studio" + hostname: studio.devstack.edx depends_on: - devpi - - mysql + - elasticsearch710 + - lms - memcached - mongo + - mysql57 # Allows attachment to the Studio service using 'docker attach '. stdin_open: true tty: true @@ -188,8 +622,19 @@ services: BOK_CHOY_LMS_PORT: 18103 BOK_CHOY_CMS_PORT: 18131 EDXAPP_TEST_MONGO_HOST: edx.devstack.mongo + VIRTUAL_ENV: "/edx/app/edxapp/venvs/edxapp" + PATH: "/edx/app/edxapp/venvs/edxapp/bin:/edx/app/edxapp/nodeenv/bin:/edx/app/edxapp/edx-platform/node_modules/.bin:/edx/app/edxapp/edx-platform/bin:${PATH}" NO_PYTHON_UNINSTALL: 1 - image: edxops/edxapp:latest + DJANGO_WATCHMAN_TIMEOUT: 30 + LMS_CFG: "/edx/etc/lms.yml" + CMS_CFG: "/edx/etc/studio.yml" + SERVICE_VARIANT: cms + image: openedx/lms-dev:${OPENEDX_RELEASE:-latest} + networks: + default: + aliases: + - edx.devstack.studio + - studio.devstack.edx ports: - "18010:18010" - "19877:19877" # JS test debugging @@ -198,30 +643,218 @@ services: volumes: - edxapp_studio_assets:/edx/var/edxapp/staticfiles/ - forum: - command: bash -c 'source /edx/app/forum/ruby_env && source /edx/app/forum/devstack_forum_env && cd /edx/app/forum/cs_comments_service && bundle install && while true; do ruby app.rb -o 0.0.0.0 ; sleep 2; done' - container_name: edx.devstack.forum + xqueue: + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.xqueue" + image: edxops/xqueue:${OPENEDX_RELEASE:-latest} + command: bash -c 'source /edx/app/xqueue/xqueue_env && while true; do python /edx/app/xqueue/xqueue/manage.py runserver 0.0.0.0:18040 ; sleep 2; done' + volumes: + - ${DEVSTACK_WORKSPACE}/xqueue:/edx/app/xqueue/xqueue depends_on: - - mongo - - memcached - - elasticsearch - image: edxops/forum:latest + - mysql57 + networks: + default: + aliases: + - edx.devstack.xqueue ports: - - "44567:4567" + - 18040:18040 - devpi: - container_name: edx.devstack.devpi - image: edxops/devpi:latest - ports: - - "3141:3141" + xqueue_consumer: + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.xqueue_consumer" + image: edxops/xqueue:${OPENEDX_RELEASE:-latest} + command: bash -c 'source /edx/app/xqueue/xqueue_env && while true; do python /edx/app/xqueue/xqueue/manage.py run_consumer ; sleep 2; done' volumes: - - devpi_data:/data + - ${DEVSTACK_WORKSPACE}/xqueue:/edx/app/xqueue/xqueue + depends_on: + - mysql57 + networks: + default: + aliases: + - edx.devstack.xqueue_consumer + + # ========================================================================== + # edX Microfrontends + # + # TODO: Instead of having an nginx container for every single microfrontend + # (there are like 12 now, right?), we should come up with an actual strategy + # for micro-frontends in devtack. + # ========================================================================== + + frontend-app-account: + extends: + file: microfrontend.yml + service: microfrontend + working_dir: '/edx/app/frontend-app-account' + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-account" + networks: + default: + aliases: + - edx.devstack.frontend-app-account + ports: + - "1997:1997" + depends_on: + - lms + + frontend-app-profile: + extends: + file: microfrontend.yml + service: microfrontend + working_dir: '/edx/app/frontend-app-profile' + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-profile" + networks: + default: + aliases: + - edx.devstack.frontend-app-profile + ports: + - "1995:1995" + depends_on: + - lms + + frontend-app-authn: + extends: + file: microfrontend.yml + service: microfrontend + working_dir: '/edx/app/frontend-app-authn' + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-authn" + networks: + default: + aliases: + - edx.devstack.frontend-app-authn + ports: + - "1999:1999" + depends_on: + - lms + + frontend-app-course-authoring: + extends: + file: microfrontend.yml + service: microfrontend + working_dir: '/edx/app/frontend-app-course-authoring' + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-course-authoring" + networks: + default: + aliases: + - edx.devstack.frontend-app-course-authoring + ports: + - "2001:2001" + depends_on: + - studio + + frontend-app-gradebook: + extends: + file: microfrontend.yml + service: microfrontend + working_dir: '/edx/app/frontend-app-gradebook' + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-gradebook" + networks: + default: + aliases: + - edx.devstack.frontend-app-gradebook + ports: + - "1994:1994" + depends_on: + - lms + + frontend-app-ora-grading: + extends: + file: microfrontend.yml + service: microfrontend + working_dir: '/edx/app/frontend-app-ora-grading' + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-ora-grading" + networks: + default: + aliases: + - edx.devstack.frontend-app-ora-grading + ports: + - "1993:1993" + depends_on: + - lms + + frontend-app-learning: + extends: + file: microfrontend.yml + service: microfrontend + working_dir: '/edx/app/frontend-app-learning' + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-learning" + networks: + default: + aliases: + - edx.devstack.frontend-app-learning + ports: + - "2000:2000" + depends_on: + - lms + + frontend-app-library-authoring: + extends: + file: microfrontend.yml + service: microfrontend + working_dir: '/edx/app/frontend-app-library-authoring' + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-library-authoring" + networks: + default: + aliases: + - edx.devstack.frontend-app-library-authoring + ports: + - "3001:3001" + depends_on: + - lms + - studio + + frontend-app-payment: + extends: + file: microfrontend.yml + service: microfrontend + working_dir: '/edx/app/frontend-app-payment' + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-payment" + networks: + default: + aliases: + - edx.devstack.frontend-app-payment + ports: + - "1998:1998" + depends_on: + - ecommerce + + frontend-app-program-console: + extends: + file: microfrontend.yml + service: microfrontend + working_dir: '/edx/app/frontend-app-program-console' + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-program-console" + networks: + default: + aliases: + - edx.devstack.frontend-app-program-console + ports: + - "1976:1976" + depends_on: + - lms + - registrar + + frontend-app-publisher: + extends: + file: microfrontend.yml + service: microfrontend + working_dir: '/edx/app/frontend-app-publisher' + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-publisher" + networks: + default: + aliases: + - edx.devstack.frontend-app-publisher + ports: + - "18400:18400" + depends_on: + - lms volumes: + coursegraph_data: discovery_assets: + devpi_data: edxapp_lms_assets: edxapp_studio_assets: elasticsearch_data: + elasticsearch7_data: + elasticsearch710_data: mongo_data: - mysql_data: - devpi_data: + opensearch12_data: + mysql57_data: diff --git a/docker-sync-marketing-site.yml b/docker-sync-marketing-site.yml deleted file mode 100644 index 6d671f54a9..0000000000 --- a/docker-sync-marketing-site.yml +++ /dev/null @@ -1,36 +0,0 @@ -version: "2" - -options: - compose-file-path: - - 'docker-compose.yml' - - 'docker-compose-marketing-site.yml' - compose-dev-file-path: - - 'docker-compose-sync.yml' - - 'docker-compose-marketing-site-sync.yml' - -syncs: - credentials-sync: - host_disk_mount_mode: 'cached' - src: '../credentials/' - sync_excludes: [ '.git', '.idea', 'node_modules', 'credentials/assets', 'credentials/static/bundles', 'webpack-stats.json' ] - - discovery-sync: - host_disk_mount_mode: 'cached' - src: '../course-discovery/' - sync_excludes: [ '.git', '.idea', 'node_modules', 'course_discovery/assets', 'course_discovery/static/bower_components', 'course_discovery/static/build' ] - - ecommerce-sync: - host_disk_mount_mode: 'cached' - src: '../ecommerce/' - sync_excludes: [ '.git', '.idea', 'node_modules', 'assets', 'ecommerce/static/bower_components', 'ecommerce/static/build' ] - - edxapp-sync: - host_disk_mount_mode: 'cached' - src: '../edx-platform/' - sync_excludes: [ '.git', '.idea', 'node_modules', '.prereqs_cache' ] - - marketing-sync: - host_disk_mount_mode: 'cached' - src: '../edx-mktg/docroot/' - sync_excludes: [ '.git', '.idea', 'node_modules', ] - sync_userid: 33 diff --git a/docker-sync.yml b/docker-sync.yml deleted file mode 100644 index 527b174c76..0000000000 --- a/docker-sync.yml +++ /dev/null @@ -1,31 +0,0 @@ -version: "2" - -options: - compose-file-path: 'docker-compose.yml' - compose-dev-file-path: 'docker-compose-sync.yml' - -syncs: - credentials-sync: - host_disk_mount_mode: 'cached' - src: '../credentials/' - sync_excludes: [ '.git', '.idea' ] - - discovery-sync: - host_disk_mount_mode: 'cached' - src: '../course-discovery/' - sync_excludes: [ '.git', '.idea' ] - - ecommerce-sync: - host_disk_mount_mode: 'cached' - src: '../ecommerce/' - sync_excludes: [ '.git', '.idea' ] - - edxapp-sync: - host_disk_mount_mode: 'cached' - src: '../edx-platform/' - sync_excludes: [ '.idea' ] - - forum-sync: - host_disk_mount_mode: 'cached' - src: '../cs_comments_service/' - sync_excludes: [ '.git', '.idea' ] diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000000..51cf199407 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,230 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = _build + +# User-friendly check for sphinx-build +ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) +$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from https://sphinx-doc.org/) +endif + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . +# the i18n builder cannot share the environment and doctrees with the others +I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + +.PHONY: help +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " applehelp to make an Apple Help Book" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " epub3 to make an epub3" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " texinfo to make Texinfo files" + @echo " info to make Texinfo files and run them through makeinfo" + @echo " gettext to make PO message catalogs" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " xml to make Docutils-native XML files" + @echo " pseudoxml to make pseudoxml-XML files for display purposes" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + @echo " coverage to run coverage check of the documentation (if enabled)" + @echo " dummy to check syntax errors of document sources" + +.PHONY: clean +clean: + rm -rf $(BUILDDIR)/* + +.PHONY: html +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +.PHONY: dirhtml +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +.PHONY: singlehtml +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +.PHONY: pickle +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +.PHONY: json +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +.PHONY: htmlhelp +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +.PHONY: qthelp +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/devstack.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/devstack.qhc" + +.PHONY: applehelp +applehelp: + $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp + @echo + @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." + @echo "N.B. You won't be able to view it unless you put it in" \ + "~/Library/Documentation/Help or install it in your application" \ + "bundle." + +.PHONY: devhelp +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/devstack" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/devstack" + @echo "# devhelp" + +.PHONY: epub +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +.PHONY: epub3 +epub3: + $(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3 + @echo + @echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3." + +.PHONY: latex +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +.PHONY: latexpdf +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +.PHONY: latexpdfja +latexpdfja: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through platex and dvipdfmx..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +.PHONY: text +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +.PHONY: man +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +.PHONY: texinfo +texinfo: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo + @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." + @echo "Run \`make' in that directory to run these through makeinfo" \ + "(use \`make info' here to do that automatically)." + +.PHONY: info +info: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo "Running Texinfo files through makeinfo..." + make -C $(BUILDDIR)/texinfo info + @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." + +.PHONY: gettext +gettext: + $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale + @echo + @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." + +.PHONY: changes +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +.PHONY: linkcheck +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +.PHONY: doctest +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." + +.PHONY: coverage +coverage: + $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage + @echo "Testing of coverage in the sources finished, look at the " \ + "results in $(BUILDDIR)/coverage/python.txt." + +.PHONY: xml +xml: + $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml + @echo + @echo "Build finished. The XML files are in $(BUILDDIR)/xml." + +.PHONY: pseudoxml +pseudoxml: + $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml + @echo + @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." + +.PHONY: dummy +dummy: + $(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy + @echo + @echo "Build finished. Dummy builder generates no files." diff --git a/docs/building-images.rst b/docs/building-images.rst new file mode 100644 index 0000000000..bb1aa8af07 --- /dev/null +++ b/docs/building-images.rst @@ -0,0 +1,43 @@ +Building Images for Devstack +============================ + +There are `Docker CI Jenkins jobs`_ on tools-edx-jenkins that build and push new +Docker images to DockerHub on code changes to either the configuration repository or the IDA's codebase. These images +are tagged according to the branch from which they were built (see NOTES below). +If you want to build the images on your own, the Dockerfiles are available in the ``edx/configuration`` repo. + +NOTES: + +1. edxapp and IDAs use the ``latest`` tag for configuration changes which have been merged to master branch of + their repository and ``edx/configuration``. +2. Images for a named Open edX release are built from the corresponding branch + of each repository and tagged appropriately, for example ``hawthorn.master`` + or ``hawthorn.rc1``. +3. The elasticsearch used in devstack is built using elasticsearch-devstack/Dockerfile and the ``devstack`` tag. + +BUILD COMMANDS: + +.. code:: sh + + git checkout master + git pull + docker build -f docker/build/edxapp/Dockerfile . -t edxops/edxapp:latest + +.. code:: sh + + git checkout master + git pull + docker build -f docker/build/ecommerce/Dockerfile . -t edxops/ecommerce:devstack + +The build commands above will use your local configuration, but will pull +application code from the master branch of the application's repository. If you +would like to use code from another branch/tag/hash, modify the ``*_VERSION`` +variable that lives in the ``ansible_overrides.yml`` file beside the +``Dockerfile``. Note that edx-platform is an exception; the variable to modify is ``edx_platform_version`` +and not ``EDXAPP_VERSION``. + +For example, if you wanted to build tag ``release-2017-03-03`` for the +E-Commerce Service, you would modify ``ECOMMERCE_VERSION`` in +``docker/build/ecommerce/ansible_overrides.yml``. + +.. _Docker CI Jenkins Jobs: https://tools-edx-jenkins.edx.org/job/DockerCI diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000000..5e539c0fcf --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,470 @@ +# pylint: disable=invalid-name +""" +devstack documentation build configuration file. + +This file is execfile()d with the current directory set to its +containing dir. + +Note that not all possible configuration values are present in this +autogenerated file. + +All configuration values have a default; values that are commented out +serve to show the default. +""" + +import io +import os +import re +import sys +from subprocess import check_call + +import edx_theme + + +REPO_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +sys.path.append(REPO_ROOT) + +# Note: Devstack is unversioned, so stating as-such for now. +VERSION = 'Unversioned' + + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# import os +# import sys +# sys.path.insert(0, os.path.abspath('.')) + +# -- General configuration ------------------------------------------------ + +# If your documentation needs a minimal Sphinx version, state it here. +# +# needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'edx_theme', + 'sphinx.ext.autodoc', + 'sphinx.ext.doctest', + 'sphinx.ext.intersphinx', + 'sphinx.ext.ifconfig', + 'sphinx.ext.napoleon' +] + +# A list of warning types to suppress arbitrary warning messages. +suppress_warnings = [ + 'image.nonlocal_uri', +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +# +# source_suffix = ['.rst', '.md'] +source_suffix = '.rst' + +# The encoding of source files. +# +# source_encoding = 'utf-8-sig' + +# The top level toctree document. +top_level_doc = 'index' + +# General information about the project. +project = 'Open edX Devstack' +copyright = edx_theme.COPYRIGHT # pylint: disable=redefined-builtin +author = edx_theme.AUTHOR +project_title = 'devstack' +documentation_title = "{project_title}".format(project_title=project_title) + + +html_context = { + "display_github": True, # Integrate GitHub + "github_user": "edx", # Username + "github_repo": "devstack", # Repo name + "github_version": "master", # Version + "conf_py_path": "/docs/", # Path in the checkout to the docs root +} + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = VERSION +# The full version, including alpha/beta/rc tags. +release = VERSION + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +# +# today = '' +# +# Else, today_fmt is used as the format for a strftime call. +# +# today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This patterns also effect to html_static_path and html_extra_path +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +# The reST default role (used for this markup: `text`) to use for all +# documents. +# +# default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +# +# add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +# +# add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +# +# show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +# modindex_common_prefix = [] + +# If true, keep warnings as "system message" paragraphs in the built documents. +# keep_warnings = False + +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = False + + +# -- Options for HTML output ---------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. + +html_theme = 'edx_theme' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +# +# html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +html_theme_path = [edx_theme.get_html_theme_path()] + +# The name for this set of Sphinx documents. +# " v documentation" by default. +# +# html_title = 'devstack v0.1.0' + +# A shorter title for the navigation bar. Default is the same as html_title. +# +# html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +# +# html_logo = None + +# The name of an image file (relative to this directory) to use as a favicon +# of the docs. This file should be a Windows icon file (.ico) being 16x16 +# or 32x32 +# pixels large. +# +# html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = [] + +# Add any extra paths that contain custom files (such as robots.txt or +# .htaccess) here, relative to this directory. These files are copied +# directly to the root of the documentation. +# +# html_extra_path = [] + +# If not None, a 'Last updated on:' timestamp is inserted at every page +# bottom, using the given strftime format. +# The empty string is equivalent to '%b %d, %Y'. +# +# html_last_updated_fmt = None + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +# +# html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +# +# html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +# +# html_additional_pages = {} + +# If false, no module index is generated. +# +# html_domain_indices = True + +# If false, no index is generated. +# +# html_use_index = True + +# If true, the index is split into individual pages for each letter. +# +# html_split_index = False + +# If true, links to the reST sources are added to the pages. +# +# html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +# +# html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +# +# html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +# +# html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +# html_file_suffix = None + +# Language to be used for generating the HTML full-text search index. +# Sphinx supports the following languages: +# 'da', 'de', 'en', 'es', 'fi', 'fr', 'h', 'it', 'ja' +# 'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr', 'zh' +# +# html_search_language = 'en' + +# A dictionary with options for the search language support, empty by default. +# 'ja' uses this config value. +# 'zh' user can custom change `jieba` dictionary path. +# +# html_search_options = {'type': 'default'} + +# The name of a javascript file (relative to the configuration directory) that +# implements a search results scorer. If empty, the default will be used. +# +# html_search_scorer = 'scorer.js' + +# Output file base name for HTML help builder. +htmlhelp_basename = '{project_name}doc'.format(project_name=project) + +# -- Options for LaTeX output --------------------------------------------- + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # + # 'papersize': 'letterpaper', + + # The font size ('10pt', '11pt' or '12pt'). + # + # 'pointsize': '10pt', + + # Additional stuff for the LaTeX preamble. + # + # 'preamble': '', + + # Latex figure (float) alignment + # + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_target = '{project}.tex'.format(project=project) +latex_documents = [ + (top_level_doc, latex_target, documentation_title, + author, 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +# +# latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +# +# latex_use_parts = False + +# If true, show page references after internal links. +# +# latex_show_pagerefs = False + +# If true, show URL addresses after external links. +# +# latex_show_urls = False + +# Documents to append as an appendix to all manuals. +# +# latex_appendices = [] + +# It false, will not define \strong, \code, itleref, \crossref ... but only +# \sphinxstrong, ..., \sphinxtitleref, ... To help avoid clash with user added +# packages. +# +# latex_keep_old_macro_names = True + +# If false, no module index is generated. +# +# latex_domain_indices = True + + +# -- Options for manual page output --------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + (top_level_doc, project_title, documentation_title, + [author], 1) +] + +# If true, show URL addresses after external links. +# +# man_show_urls = False + + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (top_level_doc, project_title, documentation_title, + author, project_title, 'For developing on Open edX.', + 'Miscellaneous'), +] + +# Documents to append as an appendix to all manuals. +# +# texinfo_appendices = [] + +# If false, no module index is generated. +# +# texinfo_domain_indices = True + +# How to display URL addresses: 'footnote', 'no', or 'inline'. +# +# texinfo_show_urls = 'footnote' + +# If true, do not generate a @detailmenu in the "Top" node's menu. +# +# texinfo_no_detailmenu = False + + +# -- Options for Epub output ---------------------------------------------- + +# Bibliographic Dublin Core info. +epub_title = project +epub_author = author +epub_publisher = author +epub_copyright = copyright + +# The basename for the epub file. It defaults to the project name. +# epub_basename = project + +# The HTML theme for the epub output. Since the default themes are not +# optimized for small screen space, using the same theme for HTML and epub +# output is usually not wise. This defaults to 'epub', a theme designed to save +# visual space. +# +# epub_theme = 'epub' + +# The language of the text. It defaults to the language option +# or 'en' if the language is not set. +# +# epub_language = '' + +# The scheme of the identifier. Typical schemes are ISBN or URL. +# epub_scheme = '' + +# The unique identifier of the text. This can be a ISBN number +# or the project homepage. +# +# epub_identifier = '' + +# A unique identification for the text. +# +# epub_uid = '' + +# A tuple containing the cover image and cover page html template filenames. +# +# epub_cover = () + +# A sequence of (type, uri, title) tuples for the guide element of content.opf. +# +# epub_guide = () + +# HTML files that should be inserted before the pages created by sphinx. +# The format is a list of tuples containing the path and title. +# +# epub_pre_files = [] + +# HTML files that should be inserted after the pages created by sphinx. +# The format is a list of tuples containing the path and title. +# +# epub_post_files = [] + +# A list of files that should not be packed into the epub file. +epub_exclude_files = ['search.html'] + +# The depth of the table of contents in toc.ncx. +# +# epub_tocdepth = 3 + +# Allow duplicate toc entries. +# +# epub_tocdup = True + +# Choose between 'default' and 'includehidden'. +# +# epub_tocscope = 'default' + +# Fix unsupported image types using the Pillow. +# +# epub_fix_images = False + +# Scale large images. +# +# epub_max_image_width = 0 + +# How to display URL addresses: 'footnote', 'no', or 'inline'. +# +# epub_show_urls = 'inline' + +# If false, no index is generated. +# +# epub_use_index = True + + +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = { + 'python': ('https://docs.python.org/3.8', None), +} diff --git a/docs/database-dumps.rst b/docs/database-dumps.rst new file mode 100644 index 0000000000..6a82f4ada4 --- /dev/null +++ b/docs/database-dumps.rst @@ -0,0 +1,26 @@ +Updating Relational Database Dumps +================================== + +We use relational database dumps to spend less time running relational database +migrations and to speed up the provisioning of a devstack. These dumps are saved +as .sql scripts in the root directory of this git repository and they should be +updated occasionally - when relational database migrations take a prolonged amount +of time *or* we want to incorporate database schema changes which were done manually. + +To update the relational database dumps: + +1. Backup the data of your existing devstack if needed. + +2. If you are unsure whether the django_migrations tables (which keeps which migrations +were already applied) in each database are consistent with the existing database dumps, +disable the loading of these database dumps during provisioning by commenting out +the calls to ``load-db.sh`` in the ``provision-*.sh`` scripts. This ensures a start with a +completely fresh database and incorporates any changes that may have required some form +of manual intervention for existing installations (e.g. drop/move tables). + +3. Run the shell script which destroys any existing devstack, creates a new one +and updates the relational database dumps: + +.. code:: sh + + ./update-dbs-init-sql-scripts.sh diff --git a/docs/decisions/0001-avoid-default-service-set.rst b/docs/decisions/0001-avoid-default-service-set.rst new file mode 100644 index 0000000000..23f38e9d37 --- /dev/null +++ b/docs/decisions/0001-avoid-default-service-set.rst @@ -0,0 +1,42 @@ +1. Avoid default service set +============================ + +Status +------ + +Approved + +Context +------- + +Commands like ``make dev.pull`` and ``make dev.up`` operate by default on a large subset of the services that devstack supports (via overridable variable ``DEFAULT_SERVICES``). There are also variants such as ``make dev.up.studio+credentials`` which will operate on a more constrained subset. However, many developers are not aware of these variants or are not in the habit of using them. By not constraining the command to selected services, developers pull down Docker images that they do not need for their current workflow, or find that devstack is using more memory and CPU than needed due to running unnecessary services. These issues have been repeatedly observed in supporting fellow edX devs in internal communications, and are likely an issue in the community as well. We also see people run into bugs in unrelated services, distracting them from their main task. + +Several people and teams have made efforts to improve the documentation and offer these better-scoped commands, but we still see complaints about memory, CPU, and network usage that can be solved by avoiding the default set. + +The term "default" is also too prescriptive, since it usually connotes a desirable path and we actually don't want people to use this default. The contents of ``DEFAULT_SERVICES`` is also incoherent, as it does not reflect any one workflow, but rather is simply a "large set" that covers something like 80% of cases (but too much for any one of them). + +Decision +-------- + +We introduce an explicit alias for the default service set, ``large-and-slow``, and introduce targets like ``dev.pull.large-and-slow``. Creating a name for the large set with a built-in warning may help warn people away from it. + +Next, any direct usage of the bare target ``dev.pull`` triggers a warning in the terminal and an opportunity to cancel and use a more tightly scoped command. Using ``dev.pull.large-and-slow`` directly bypasses this warning; this set may still be needed for some use-cases, such as initial provisioning. This allows us to educate a broader range of developers (not just the ones who come and ask for help) and tighten the feedback loop to seconds rather than hours (warning in terminal vs. discussion in chat.) + +Finally, documentation is to be updated to better explain this distinction, and any mention of ``dev.pull`` updated to either ``dev.pull.large-and-slow`` or ``dev.pull.`` so that readers will be steered in the correct direction from the outset. + +The first pass only changes the ``pull`` and ``up`` families of make targets, since we believe they are the most commonly used and the most common to cause developer pain. ``provision``, ``check``, ``migrate``, and ``reset`` are good candidates for after this is proved out. + +Use of ``DEFAULT_SERVICES`` and the make targets which rely on it is not deprecated, but should always be an intentional act. + +Consequences +------------ + +People will be steered away from bare targets like ``dev.pull`` and ``DEFAULT_SERVICES`` may be reduced in importance. + +Developers first setting up devstack will still use the large set, since some parts of provisioning (specifically, the loading of test data) have non-trivial dependencies between services. + +Rejected Alternatives +--------------------- + +- Shrinking ``DEFAULT_SERVICES``: Likely to break any number of workflows, or at least confuse people who rely on it. +- Just document it better: We don't think people read the docs enough to discover docs on this issue. People probably mostly go looking through the docs when they have a specific error or a task they want to learn how to accomplish, but they may not even identify overly large service sets as a problem to solve. diff --git a/docs/decisions/0002-expect-cli-testing.rst b/docs/decisions/0002-expect-cli-testing.rst new file mode 100644 index 0000000000..805bcd193b --- /dev/null +++ b/docs/decisions/0002-expect-cli-testing.rst @@ -0,0 +1,35 @@ +2. Use ``expect`` for CLI testing +================================= + +Status +------ + +Approved + +Context +------- + +Devstack has a CLI that a large number of developers depend upon, and when it breaks it can cause disruption across multiple teams. However, there is limited automated testing that would prevent such breakage. The CI script is currently set up to run through some common commands for a static set of services, from cloning repositories all the way through provisioning. These can catch some basic problems but only exercise a few core Makefile targets. + +Recently the CLI was changed to warn the developer when "bare" commands such as ``make dev.pull`` are run. The new ``make_warn_default_large.sh`` prints a warning and then waits for acknowledgement before proceeding. It was not obvious how to add automated tests for this. Using pytest and Python's ``subprocess`` module turned out to be overly difficult—this type of explicit process management requires a lot of low-level work such as designating the spawned process as a process group leader, killing the group at the end or on error, reading into buffers before the command is finished, matching stderr and stdout against regexes, managing timeouts, etc. The Expect utility handles this using a domain-specific language, and while it is not installed by default on Mac or Linux, it is designed for exactly this sort of task. + +It is possible that there's an expect-like wrapper of subprocess that would work from pytest, but we couldn't find one in the time we'd allotted for the task. + +Decision +-------- + +A ``tests`` directory is added with a single Expect script which tests the warn-on-large-set path for one make command. More scripts can be added as other CLI changes are made. + +The Github CI configuration installs ``expect`` and runs the Expect script by name. + +Consequences +------------ + +Developers wishing to run the automated tests locally will have to have Expect installed. This should be available on both Mac and Linux. + +There is no provision made here for setting up different environments in which to run the tests (e.g. with/without an ``options.local.mk`` overrides file). If this is needed, it can be arranged from a wrapper script. + +Rejected Alternatives +--------------------- + +Manual invocation of ``subprocess``, as described above. diff --git a/docs/decisions/0003-usage-metrics.rst b/docs/decisions/0003-usage-metrics.rst new file mode 100644 index 0000000000..3907a64437 --- /dev/null +++ b/docs/decisions/0003-usage-metrics.rst @@ -0,0 +1,49 @@ +3. Collect usage metrics +======================== + +Status +------ + +Approved + +Context +------- + +Developer velocity can be significantly impacted by the development environment, but without a way to measure impact, it is difficult to tell if education initiatives, documentation, new capabilities, and other changes are having a positive effect on the developer experience. The Arch-BOM team has aready used surveys to get qualitative information about developer experience, but this self-reported information is "expensive" to get—people will only answer so many surveys before survey fatigue sets in. Quantitative information about tool usage patterns, failure rates, and other higher-frequency, mechanically collectible information would complement the more infrequent, qualitative reports. + +We believe that a framework for measuring the usage and time of essential devstack actions will give Arch-BOM more ongoing useful information of developer needs and trends over time in order to prioritize further devstack efforts. + + +Decision +-------- + +A number of high-use Makefile targets have been instrumented with metrics collection using an indirection technique. As an example, the target ``dev.provision.%`` now consists only of the command ``@scripts/send_metrics.py wrap "dev.provision.$*"``; the metrics script then calls ``make impl-dev.provision.%``, which is the "real" target. About 6 families of commands have been instrumented in this way. + +This ``send_metrics.py`` wrapper script calls Make as a child process, and if consent has been provided, the wrapper additionally collects command duration, exit code, make target, and some environmental information about git. + +If a consent decision has not been made, the wrapper script asks the developer (at the end of a command run) to opt in or out. The resulting explicit consent or decline is recorded via a config file, and an anonymous user ID is stored in this config file on first collection if consent is provided. + +Metrics are reported synchronously to Segment, then forwarded on to New Relic for analysis. There's a retention period on the data of a year. + + +Consequences +------------ + +The current implementation only instruments Makefile targets. The most basic interactions with devstack occur via the Make interface, with additional interaction occurring inside of various Docker shell environments. Most of devstack's command documentation covers Make commands, so this seems like a good first step. It's difficult to capture arbitrary commands, and there are privacy issues there as well, so for now we're just capturing Make targets. + +Since devstack is used by both employees and contractors and also the wider Open edX community, it's not sufficient to simply start collecting and reporting metrics; there needs to be informed consent. This limits the amount of participation, even of edX employees. (We don't have a way of telling whether a developer is an employee.) + +Commands run while not connected to the internet, or by people who have Segment blocked at the DNS level, will not have metrics captured. + + +Rejected Alternatives +--------------------- + +The explicit indirection technique is bulky and makes it harder to maintain the Makefile. However, all of the other techniques we considered have serious downsides: + +- Adding a command call at the beginning of each target's block would add almost as much "chaff", and would not capture timings or exit codes, nor target dependency timings and failures. +- Overriding the ``SHELL`` variable with a wrapper script would allow capturing some timings and exit codes, but only per-line, not per-target. Using ``.ONESHELL`` would solve this, except then the make target itself can't be captured without parsing the process tree—and this has only been tested on Linux, not Mac. +- Asking people to call ``./make.sh`` instead of ``make`` would allow full capturing, but lose tab-completion, and it is likely very few people would change their workflows to accommodate this request. +- Installing a package into the devstack virtualenv which declares a ``console_scripts`` override named ``make`` would allow intercepting make (and other) commands, but would only work for people who interact with devstack from a virtualenv, which turns out to be a minority of edX developers according to a poll. + +We'll continue looking for a low-profile way to instrument all targets, or change which targets we instrument over time. diff --git a/docs/decisions/0004-backends-depend-on-frontends.rst b/docs/decisions/0004-backends-depend-on-frontends.rst new file mode 100644 index 0000000000..86fb3855e3 --- /dev/null +++ b/docs/decisions/0004-backends-depend-on-frontends.rst @@ -0,0 +1,70 @@ +4. Backend services now depend on frontend apps +----------------------------------------------- + +Status +====== + +**Reverted** due to resource depletion concerns. + +A consequence of implementing this decision was that an increased number of containers (specifically, frontend containers) were started by common commands like ``make dev.provision`` and ``make dev.up.lms``. Unfortunately, the increased system resource consumption was leading to blocking workflow disruptions such as Docker network timeouts. + +In absence of an immediately obvious way of reducing the additional resource burden that this decision's implementation requires, we have decided to revert it. Future work could include: + +* Revisit the *Rejected Alternatives* listed at the bottom of this decision record. Both of those alternatives allow smaller groups of containers to be started for different situtations. +* Investigate how the memory and CPU footprints of the micro-frontend Docker containers could be reduced. +* Investigate running all micro-frontends from a singular Docker container. + +Context +======= + +Micro-frontends as default experiences +************************************** + +As of mid June 2021 (between the Lilac and Maple releases), an Open edX instance with default configuration will now direct users to the Learning MFE (Micro-Frontend) for courseware, with a temporary opt-out flag existing to revert to legacy LMS-rendered frontend. Thus, to test a typical learner experience, Devstack users now require the frontend-app-learning container to be started alongside the LMS. This is in contrast to the previous state of affairs, in which MFE experiences were only available via an opt-IN flag, allowing reasonable Devstack usage without having to start any MFE containers. + +We anticipate that other learner, author, and administrator experiences will soon begin to use MFE features by default, requiring that more and more MFEs be started in order to simulate user experiences in Devstack. Thus, we anticipate an imminent developer experience issue, in which developers will need to type in convoluated commands like:: + + make dev.up.frontend-app-authn+frontend-app-discussions+frontend-app-gradebook+frontend-app-learning + + +in order to enable the feature set that was previously available using simply:: + + make dev.up.lms + + +Docker-compose service dependencies +*********************************** + +Devstack uses docker-compose to orchestrate containers by defining services in ``docker-compose.yml``. Note that "services" here encompasses backends, frontends, and generic resources like MySQL. + +Each service definition may indicate a list of depentent services using the ``depends_on`` key. Dependencies are transitive, and may not be cyclical. When a developer runs ``make dev.up.``, docker-compose is invoked in order to start both the service as well as its dependencies. For example, LMS depends on Mongo and Discovery, among other services. So, running ``make dev.up.lms`` will start not just LMS, but also Mongo, Discovery, all of Discovery's dependencies, and so on. + +Currently, micro-frontend services (those prefixed with ``frontend-app-``) are defined to depend on backends, but not vice versa. So, starting frontend-app-learning will automatically start LMS, but starting LMS will not automatically start frontend-app-learning. This makes sense under logic that "frontends depend on the APIs of backends in order to function". + +However, it can be argued that the opposite dependency relationship also makes sense. That is, one may assert that backends should depend on frontends in order to expose their APIs in a usable way. One could further assert that frontends shouldn't have hard dependencies on backend APIs, and should instead gracefully degrade when some or all of its APIs are unavailable. + + +Decision +======== + +Whichever dependency direction (frontends depend on backends, or vice versa) is more logically sound, we conclude that, for the purposes of Devstack, *asserting that backends depend on frontends is more useful to developers*. Specifically, it is beneficial to current and future developer workflows if ``make dev.up.lms`` automatically starts and learning-related frontends, ``make dev.up.studio`` automatically starts all authoring-related frontends, ``make dev.up.ecommerce`` starts all purchasing-related frontends, and so on. + +A necessary corollary to this decision is that *all micro-frontends required for default functionality must be included in devstack*. While it is encouraged that *all* new and existing micro-frontends are added to devstack using the pattern described above, it is absolutely necessary that MFEs which are required for out-of-the-box functionality be added to devstack. + + +Consequences +============ + +* ``docker-compose.yml`` will be updated to reflect that backend services depend on frontend-app services, not the other way around. Devstack documentation will be upated accordingly. +* ``docker-compose-host.yml`` will be updated to address an issue with local usage of JS packages, which currently forces some frontend development workflows to occur outside of devstack. The `documentation in frontend-build`_ will be updated accordingly. See `ADR 5`_ for details. +* An email and Slack message will be sent out to explain these changes and how we anticipate that they will impact developer workflows. The email will explain that if a micro-frontend is required to simulate common user story in the default configuration, then that frontend should be devstack, and should be automatically started by the relevant backend using ``depends_on``. + + +.. _documentation in frontend-build: https://github.com/openedx/frontend-build#local-module-configuration-for-webpack +.. _ADR 5: ./0005-frontend-package-mounts.rst + +Rejected Alternatives +===================== + +* Keep the old dependency relationships, but add convenience targets (such as ``dev.up.domain.learning``) to start groups of related micro-frontends. We determine that this would increase the already-large congnitive overhead of the Devstack interface. +* Invert dependency relationships as described in this ADR, and also add targets such as ``make dev.up.lms-backend`` in order to start LMS without associated frontends. We determine that this would create a cascade of new inconsistencies in the Devstack interface: since only one of ``lms`` or ``lms-backend`` could exist as a docker-compose service, rules for the other would have to be hard-coded into the Makefile as special cases. diff --git a/docs/decisions/0005-frontend-package-mounts.rst b/docs/decisions/0005-frontend-package-mounts.rst new file mode 100644 index 0000000000..feb3089a28 --- /dev/null +++ b/docs/decisions/0005-frontend-package-mounts.rst @@ -0,0 +1,111 @@ +5. Mounting frontend packages from src directory +------------------------------------------------ + +Synopsis +======== + +``${DEVSTACK_WORKSPACE}/src`` will be mounted at ``/edx/app/src`` within frontend containers, allowing locally-modified NPM packages to be tested via devstack. This will result in workflow changes for some frontend developers, which we will communicate via email. + +Status +====== + +Approved + + +Context +======= + +Current SOA: Local packages for backend services +************************************************ + +Backend devstack services currently mount the host folder ``${DEVSTACK_WORKSPACE}/src`` into their respective Docker containers at ``/edx/src``, making the contents of ``src`` available within the container. This enables developers to install local versions of Python packages into backend devstack services, as long as the package is placed within the host ``src`` folder. As a concrete user story: + +* A dev runs their devstack with ``~`` (home folder) as their ``${DEVSTACK_WORKSPACE}``. +* They would like to run edx-platform with a modified version of the ``completion`` Python package. +* So, they place their modified ``completion`` repository in ``~/src``. +* The dev's modified ``completion`` repository is now available to backend containers at ``/edx/src/completion``. +* Within ``make lms-shell``, they can now run ``pip install -e /edx/src/completion`` in order to install the modified package. + +This workflow is made possible via the ``${DEVSTACK_WORKSPACE}/src:/edx/src:cached`` volume declarations for each service that exist in docker-compose-host.yml. This line simply tells docker-compose to mount the ``src`` directory within the host devstack workspace to the ``/edx/src`` directory within a service's Docker container. + + +Current SOA: Local packages for frontends +***************************************** + +Unfortunately, this flow is currently *not* an option for frontend services (i.e., micro-frontends) when they're run via devstack. This was probably not an intentional omission; frontend services were added to devstack in a somewhat ad-hoc way, and the local-package workflow was probably overlooked. + +There is, however, an established strategy for using local packages when running frontends *outside* of devstack. This stategy is described in the `frontend-build documentation `_. Essentially, frontend package respositories can be placed anywhere in the host system, and each frontend's ``module.config.js`` can be pointed at those local respositories using a path relative to the frontend itself. For example: + +* A frontend dev has ``frontend-app-profile`` within their home folder (``~``). +* They would like to run a modified version of Paragon, located at ``~/paragon``. +* They create a ``module.config.js``, as recommended by the frontend-build docs, specifying ``../paragon`` as the path. +* They can now ``npm run build`` Paragon, and then install and start ``frontend-app-profile``, which will use their modified Paragon repository. + + +The issue: Making the frontend strategy work with devstack +********************************************************** + +With the acceptance of `ADR 4: Backend services now depend on frontend apps <./0004-backends-depend-on-frontends.rst>`_, it is more important than ever that devstack has a local package workflow for frontends. + +Unfortunately, the current backend and frontend strategies are incompatible in two ways: + +* The current frontend strategy allows package repositories to be placed anywhere in the filesystem, with the docs recommending them to be siblings of the ``frontend-app-...`` repositories. The backend strategy, on the other hand, requires packages to be placed within ``${DEVSTACK_WORKSPACE}/src``. +* The frontend strategy occurs entirely within the host system; directory mounting is not required. In the backend strategy, though, packages get mounted at ``/edx/src``. + +The implication of this is that local frontend package strategy for devstack will have to either: + +#. be slightly different than the current non-devstack local frontend package strategy, or +#. be implemented differently than devstack's current local backend package strategy. + + +Decision +======== + +We will introduce a local frontend package strategy to devstack that is (a) as similar in mechanism as possible to devstack's local backend package strategy, while (b) differing just enough to make it compatible with non-devstack frontend development. See **Consequences** for specifics. + +This is in observance of the `worse-is-better `_ design philosophy, which prioritizes simplicity of implementation over simplicity of interface. We hope that maintaining consistency with devstack's local package strategy will be worth the short-term frontend workflow confusion that this change may cause. + + +Consequences +============ + +In docker-compose-host.yml, each frontend service will be given a new volume declaration:: + + services: + + ... + + frontend-app-XX: + volumes: + - ${DEVSTACK_WORKSPACE}/frontend-app-XX:/edx/app/frontend-app-XX:cached + - frontend_app_XX_node_modules:/edx/app/frontend-app-XX/node_modules + - ${DEVSTACK_WORKSPACE}/src:/edx/app/src:cached # <--- This line is new! + +This will cause the ``${DEVSTACK_WORKSPACE}/src`` folder to mounted at ``/edx/app/src`` of each frontend service, similar to how that folder is mounted at ``/edx/src`` of each backend service. Via ``module.config.js``, frontend developers will then be able to specify ``../src/PACKAGE`` as the path of any local frontend package. This scheme has the benefit of: + +* working within a frontend Devstack container, since ``../src/PACKAGE`` resolves to ``/edx/app/src/PACKAGE``, and +* working oustide of Devstack, since ``../src/PACKAGE`` points to ``PACKAGE`` when ``src`` is a sibling of the frontend application repository. + +Developers will be informed of this scheme via a frontend-build documentation update and an email. + + +Rejected alternatives +===================== + + +Mount frontend packages at ``/edx/src`` +*************************************** + +One alternative would be to mount packages at ``/edx/src`` within frontend containers instead of ``/edx/app/src``. This approach would have been maximally consistent with the existing local backend package strategy. However, it would make it impossible for frontend developers to maintain a single ``module.config.js`` for both with-devstack and sans-devstack development. + +Concretely: Within a devstack container, in order to reference, say, ``/edx/src/paragon`` from an app running within ``/edx/app/frontend-app-profile``, one would need to specify the path ``../../src/paragon`` within ``module.config.js``. In order to reference the same package *outside* of devstack, the proper path would be ``../src/paragon`` (recall that ``src`` and ``frontend-app-profile`` are expected to be sibling directories, both within the devstack workspace). + + +Explicit frontend mounts in devstack workspace +********************************************** + +A more radical alternative would be to explicitly mount certain local frontend packages from the devstack workspace into each frontend container. For example, ``${DEVSTACK_WORKSPACE}/frontend-platform`` would be mounted into every frontend container (if it existed) at ``/edx/app/frontend-platform``. This would be done for a handful of other commonly-developed frontend packages, including Paragon and the branding packages. + +This approach would have been the most compatible with the existing local frontend package strategy, but it would sharply differ from devstack's backend package strategy. + +For reference, here is a draft implementation of this rejected approach: https://github.com/openedx/devstack/pull/795. diff --git a/docs/developing_on_named_release_branches.rst b/docs/developing_on_named_release_branches.rst new file mode 100644 index 0000000000..2e17782000 --- /dev/null +++ b/docs/developing_on_named_release_branches.rst @@ -0,0 +1,192 @@ +Developing on Open edX named release branches +============================================= + +.. contents:: Table of Contents + +By default, the startup steps in `README.rst`_ will install the devstack using the master branch of all repos. If you want to install a named release instead, follow these steps before pulling the docker images in step 3 of the `Getting Started`_ guide: + +#. Set the ``OPENEDX_RELEASE`` environment variable to the appropriate image + tag; "hawthorn.master", "zebrawood.rc1", etc. Note that unlike a server + install, ``OPENEDX_RELEASE`` should not have the "open-release/" prefix. +#. Check out the appropriate branch in devstack, e.g. ``git checkout open-release/ironwood.master`` +#. Use ``make dev.checkout`` to check out the correct branch in the local + checkout of each service repository +#. Continue with step 3 in the `getting started`_ guide to pull the correct docker images. + +All ``make`` target and ``docker-compose`` calls should now use the correct +images until you change or unset ``OPENEDX_RELEASE`` again. To work on the +master branches and ``latest`` images, unset ``OPENEDX_RELEASE`` or set it to +an empty string. + +.. _README.rst: https://github.com/openedx/devstack +.. _getting started: https://github.com/openedx/devstack#getting-started + +How do I run multiple named Open edX releases on same machine? +-------------------------------------------------------------- +You can have multiple isolated Devstacks provisioned on a single computer now. Follow these directions **after installing at least two devstacks** to switch between them. + +#. If you haven't done so, follow the steps in the `Getting Started`_ section, to install the master devstack or any other named release. We recommend that you have at least one devstack on the master branch. +#. Change directory to your devstack and activate the virtual env. +#. Stop any running containers by issuing a ``make dev.stop``. +#. Follow the steps in `Getting Started`_ section again, setting the additional OPENEDX_RELEASE you want to install in step 2 + +The implication of this is that you can switch between isolated Devstack databases by changing the value of the ``OPENEDX_RELEASE`` environment variable. + +Switch between your Devstack releases by doing the following: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#. Stop the containers by issuing a ``make dev.stop`` for the running release. +#. Edit the project name in ``options.local.mk`` or set the ``OPENEDX_RELEASE`` environment variable and let the ``COMPOSE_PROJECT_NAME`` be assigned automatically. +#. Check out the appropriate branch in devstack, e.g. ``git checkout open-release/ironwood.master`` +#. Use ``make dev.checkout`` to check out the correct branch in the local + copy of each service repository +#. Bring up the containers with ``make dev.up``. + +**NOTE:** Additional instructions on switching releases using ``direnv`` can be found in `How do I switch releases using 'direnv'?`_ section. + +Examples of Docker Service Names After Setting the ``COMPOSE_PROJECT_NAME`` variable. Notice that the **devstack-juniper.master** name represents the ``COMPOSE_PROJECT_NAME``. + +- edx.devstack-juniper.master.lms +- edx.devstack-juniper.master.mysql57 + +Each instance has an isolated set of databases. This could, for example, be used to quickly switch between versions of Open edX without hitting as many issues with migrations, data integrity, etc. + +Unfortunately, this **does not** currently support running Devstacks simultaneously, because we hard-code host port numbers all over the place, and two running containers cannot share the same host port. + +Questions & Troubleshooting – Multiple Named Open edX Releases on Same Machine +------------------------------------------------------------------------------ + +This broke my existing Devstack! +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + See if the troubleshooting of this readme can help resolve your broken devstack first, then try posting on the `Open edX forums `__ to see if you have the same issue as any others. If you think you have found a bug, file a CR ticket. + +I’m getting errors related to ports already being used. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Make sure you bring down your devstack before changing the value of COMPOSE_PROJECT_NAME. If you forgot to, change the COMPOSE_PROJECT_NAME back to its original value, run ``make dev.stop``, and then try again. + +I have custom scripts/compose files that integrate with or extend Devstack. Will those still work? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +With the default value of COMPOSE_PROJECT_NAME = devstack, they should still work. If you choose a different COMPOSE_PROJECT_NAME, your extensions will likely break, because the names of containers change along with the project name. + +How do I switch releases using 'direnv'? +---------------------------------------- + +Follow directions in `Switch between your Devstack releases by doing the following:`_ then make the following adjustments. + +Make sure that you have setup each Open edX release in separate directories using `How do I enable environment variables for current directory using 'direnv'?`_ instructions. Open the next release project in a separate code editor, then activate the ``direnv`` environment variables and virtual environment for the next release by using a terminal shell to traverse to the directory with the corresponding release ``.envrc`` file. You may need to issue a ``direnv allow`` command to enable the ``.envrc`` file. + + .. code:: sh + + # You should see something like the following after successfully enabling 'direnv' for the Juniper release. + + direnv: loading ~/open-edx/devstack.juniper/.envrc + direnv: export +DEVSTACK_WORKSPACE +OPENEDX_RELEASE +VIRTUAL_ENV ~PATH + (venv)username@computer-name devstack.juniper % + +**NOTE:** Setting of the ``OPENEDX_RELEASE`` should have been handled within the ``.envrc`` file for named releases only and should not be defined for the ``master`` release. + +How do I enable environment variables for current directory using 'direnv'? +--------------------------------------------------------------------------- +We recommend separating the named releases into different directories, for clarity purposes. You can use `direnv `__ to define different environment variables per directory:: + + .. code:: + + # Example showing directory structure for separate Open edX releases. + + /Users//open-edx – root directory for platform development + |_ ./devstack.master – directory containing all repository information related to the main development release. + |_ ./devstack.juniper – directory containing all repository information related to the Juniper release. + +#. Install `direnv` using instructions on https://direnv.net/. Below you will find additional setup at the time of this writing so refer to latest of `direnv` site for additional configuration needed. + +#. Setup the following configuration to hook `direnv` for local directory environment overrides. There are two examples for BASH or ZSH (Mac OS X) shells. + + .. code:: sh + + ## ~/.bashrc for BASH shell + + ## Hook in `direnv` for local directory environment overrides. + ## https://direnv.net/docs/hook.html + eval "$(direnv hook bash)" + + # https://github.com/direnv/direnv/wiki/Python#bash + show_virtual_env() { + if [[ -n "$VIRTUAL_ENV" && -n "$DIRENV_DIR" ]]; then + echo "($(basename $VIRTUAL_ENV))" + fi + } + export -f show_virtual_env + PS1='$(show_virtual_env)'$PS1 + + # --------------------------------------------------- + + ## ~/.zshrc for ZSH shell for Mac OS X. + + ## Hook in `direnv` for local directory environment setup. + ## https://direnv.net/docs/hook.html + eval "$(direnv hook zsh)" + + # https://github.com/direnv/direnv/wiki/Python#zsh + setopt PROMPT_SUBST + + show_virtual_env() { + if [[ -n "$VIRTUAL_ENV" && -n "$DIRENV_DIR" ]]; then + echo "($(basename $VIRTUAL_ENV))" + fi + } + PS1='$(show_virtual_env)'$PS1 + +#. Setup `layout_python-venv` function to be used in local project directory `.envrc` file. + + .. code:: sh + + ## ~/.config/direnv/direnvrc + + # https://github.com/direnv/direnv/wiki/Python#venv-stdlib-module + + realpath() { + [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}" + } + layout_python-venv() { + local python=${1:-python3} + [[ $# -gt 0 ]] && shift + unset PYTHONHOME + if [[ -n $VIRTUAL_ENV ]]; then + VIRTUAL_ENV=$(realpath "${VIRTUAL_ENV}") + else + local python_version + python_version=$("$python" -c "import platform; print(platform.python_version())") + if [[ -z $python_version ]]; then + log_error "Could not detect Python version" + return 1 + fi + VIRTUAL_ENV=$PWD/.direnv/python-venv-$python_version + fi + export VIRTUAL_ENV + if [[ ! -d $VIRTUAL_ENV ]]; then + log_status "no venv found; creating $VIRTUAL_ENV" + "$python" -m venv "$VIRTUAL_ENV" + fi + + PATH="${VIRTUAL_ENV}/bin:${PATH}" + export PATH + } + +#. Example `.envrc` file used in project directory. Need to make sure that each release root has this unique file. + + .. code:: sh + + # Open edX named release project directory root. + ## /devstack.juniper/.envrc + + # https://discuss.openedx.org/t/docker-devstack-multiple-releases-one-machine/1902/10 + + # This is handled when OPENEDX_RELEASE is set. Leaving this in for manual override. + # export COMPOSE_PROJECT_NAME=devstack-juniper + + export DEVSTACK_WORKSPACE="$(pwd)" + export OPENEDX_RELEASE=juniper.master + export VIRTUAL_ENV="$(pwd)/devstack/venv" + + # https://github.com/direnv/direnv/wiki/Python#virtualenv + layout python-venv diff --git a/docs/devpi.rst b/docs/devpi.rst index dc1533b950..6e7d61101b 100644 --- a/docs/devpi.rst +++ b/docs/devpi.rst @@ -16,7 +16,7 @@ requirements of all Devstack applications. In general the operation of devpi should be transparent. You may notice some significant speedup in tox testing and ``paver update_prereqs`` operations after the first run. Container storage should persist through -``make down`` and ``make dev.up`` operations. +``make dev.remove-containers`` and ``make dev.up.`` operations. The devpi web interface can be browsed from the host at: http://localhost:3141/ @@ -52,7 +52,7 @@ Disabling devpi --------------- To temporarily remove devpi caching from an edxapp container, start a -shell (``lms-shell`` or ``studio-shell``) and move or delete +shell (``dev.shell.lms`` or ``dev.shell.studio``) and move or delete ``/root/.pip/pip.conf``. This will be undone on the next container restart unless the container state is persisted. @@ -60,6 +60,6 @@ Monitoring devpi ---------------- You can monitor the devpi logs by running this command on the host: -``docker logs -f edx.devstack.devpi`` or looking at the output in +``make devpi-logs`` or looking at the output in Kitematic. You can also check the devpi server status by visiting: http://localhost:3141/+status diff --git a/docs/devstack_faq.rst b/docs/devstack_faq.rst new file mode 100644 index 0000000000..b4cb2f1f92 --- /dev/null +++ b/docs/devstack_faq.rst @@ -0,0 +1,303 @@ +Frequently Asked Questions +========================== + +.. contents:: Table of Contents + :local: + +How do I define my own local targets? +------------------------------------- + +If you'd like to add some convenience make targets, you can add them to a ``local.mk`` file, ignored by git. + +How do I make payments? +----------------------- + +The ecommerce image comes pre-configured for payments via CyberSource and PayPal. Additionally, the provisioning scripts +add the demo course (``course-v1:edX+DemoX+Demo_Course``) to the ecommerce catalog. You can initiate a checkout by visiting +http://localhost:18130/basket/add/?sku=8CF08E5 or clicking one of the various upgrade links in the LMS. The following +details can be used for checkout. While the name and address fields are required for credit card payments, their values +are not checked in development, so put whatever you want in those fields. + +- Card Type: Visa +- Card Number: 4111111111111111 +- CVN: 123 (or any three digits) +- Expiry Date: 06/2025 (or any date in the future) + +PayPal (same for username and password): devstack@edx.org + +How do I develop on an installed Python package? +------------------------------------------------ + +If you want to modify an installed package – for instance ``edx-enterprise`` or ``completion`` – clone the repository in +``~/workspace/src/your-package``. Next, ssh into the appropriate docker container (``make lms-shell``), +run ``pip install -e /edx/src/your-package``, and restart the service. + +How do I upgrade Python packages? +--------------------------------- + +Unlike the ``node_modules`` directory, the ``virtualenv`` used to run Python +code in a Docker container only exists inside that container. Changes made to +a container's filesystem are not saved when the container exits, so if you +manually install or upgrade Python packages in a container (via +``pip install``, ``paver install_python_prereqs``, etc.), they will no +longer be present if you restart the container. (Devstack Docker containers +lose changes made to the filesystem when you reboot your computer, run +``make remove-containers``, restart or upgrade Docker itself, etc.) If you want to ensure +that your new or upgraded packages are present in the container every time it +starts, you have a few options: + +* Merge your updated requirements files and wait for a new `edxops Docker image`_ + for that service to be built and uploaded to `Docker Hub`_. You can + then download and use the updated image (for example, via ``make dev.pull.``). + The discovery and edxapp images are built automatically via a Jenkins job. All other + images are currently built as needed by edX employees, but will soon be built + automatically on a regular basis. See `building images for devstack`_ for more information. +* You can update your requirements files as appropriate and then build your + own updated image for the service as described above, tagging it such that + ``docker-compose`` will use it instead of the last image you downloaded. + (Alternatively, you can temporarily edit ``docker-compose.yml`` to replace + the ``image`` entry for that service with the ID of your new image.) You + should be sure to modify the variable override for the version of the + application code used for building the image. See `How do I build images?`_. + for more information. +* You can temporarily modify the main service command in + ``docker-compose.yml`` to first install your new package(s) each time the + container is started. For example, the part of the studio command which + reads ``...&& while true; do...`` could be changed to + ``...&& pip install my-new-package && while true; do...``. +* In order to work on locally pip-installed repos like edx-ora2, first clone + them into ``../src`` (relative to this directory). Then, inside your lms shell, + you can ``pip install -e /edx/src/edx-ora2``. If you want to keep this code + installed across stop/starts, modify ``docker-compose.yml`` as mentioned + above. + +How do I upgrade Node.js packages? +---------------------------------- + +JavaScript packages for Node.js are installed into the ``node_modules`` +directory of the local git repository checkout which is synced into the +corresponding Docker container. Hence these can be upgraded via any of the +usual methods for that service (``npm install``, +``paver install_node_prereqs``, etc.), and the changes will persist between +container restarts. + +How do I rebuild static assets? +------------------------------- + +Optimized static assets are built for all the Open edX services during +provisioning, but you may want to rebuild them for a particular service +after changing some files without re-provisioning the entire devstack. To +do this, run the ``make dev.static.`` target. For example: + +.. code:: sh + + make dev.static.credentials + +To rebuild static assets for all service containers: + +.. code:: sh + + make dev.static + +How do I enable comprehensive theming? +-------------------------------------- + +Following directions `Changing Themes for an Open edX Site`_ to get started. You can create your theme inside the ``${DEVSTACK_WORKSPACE}/edx-themes`` local directory as this maps to the Docker container ``/edx/app/edx-themes`` location. + +Devstack Envs Configuration +~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Make sure that you enable the following code in ./edx-platform/lms/envs/devstack.py as this will make sure that you have the appropriate Mako template overrides applied for your theme. Forgetting to enable this will not allow your theme template files to be overriden by the platform. See `discuss 3557 `__ for details concerning issues with not enabling the following code. + +.. code:: python + + ########################## THEMING ####################### + # If you want to enable theming in devstack, uncomment this section and add any relevant + # theme directories to COMPREHENSIVE_THEME_DIRS + + # We have to import the private method here because production.py calls + # derive_settings('lms.envs.production') which runs _make_mako_template_dirs with + # the settings from production, which doesn't include these theming settings. Thus, + # the templating engine is unable to find the themed templates because they don't exist + # in it's path. Re-calling derive_settings doesn't work because the settings was already + # changed from a function to a list, and it can't be derived again. + + from .common import _make_mako_template_dirs + ENABLE_COMPREHENSIVE_THEMING = True + COMPREHENSIVE_THEME_DIRS = [ + "/edx/app/edxapp/edx-platform/themes/", + "/edx/app/edx-themes/edx-platform/" + ] + TEMPLATES[1]["DIRS"] = _make_mako_template_dirs + derive_settings(__name__) + +How do I connect to the databases from an outside editor? +--------------------------------------------------------- + +To connect to the databases from an outside editor (such as MySQLWorkbench), +first uncomment these lines from ``docker-compose.yml``'s ``mysql57`` section + +.. code:: yaml + + ports: + - "3506:3306" + +Then bring your mysql container down and back up by running: + +.. code:: sh + + docker-compose stop mysql57 + docker-compose up -d mysql57 + +Then connect using the values below. Note that the username and password will +vary depending on the database. For all of the options, see ``provision.sql``. + +- Host: ``localhost`` +- Port: ``3506`` +- Username: ``edxapp001`` +- Password: ``password`` + +If you have trouble connecting, ensure the port was mapped successfully by +running ``make dev.ps`` and looking for a line like this: +``edx.devstack.mysql57 docker-entrypoint.sh mysql ... Up 0.0.0.0:3506→3306/tcp``. + +How do I build the service images myself? +----------------------------------------- + +See the instructions for `building images for devstack`_. + +How do I create relational database dumps? +------------------------------------------ + +See the instructions for `updating relational database dumps`_. + +How do I keep my database up to date? +------------------------------------- + +To run Django migrations for a particular service, bring up the service and use +``make dev.migrate.``. For example: + +.. code:: sh + + make dev.up.studio + make dev.migrate.studio + +To run migrations for all services at once, run: + +.. code:: sh + + make dev.up.large-and-slow + make dev.migrate + +Alternatively, you can discard and rebuild the entire database for all +devstack services by re-running ``make dev.provision.``. Note that +if your branch has fallen significantly behind master, it may not include all +of the migrations included in the database dump used by provisioning. In these +cases, it's usually best to first rebase the branch onto master to +get the missing migrations. + +How do I access a database shell? +--------------------------------- + +To access a MongoDB shell, run the following commands: + +.. code:: sh + + make dev.shell.mongo + mongo + +To access the MySQL shell for a particular database, run: + +.. code:: sh + + make dev.shell.mysql57 + mysql + use ; + +Equivalently, you can use the command ``make dev.dbshell.`` as a shortcut. For example, +this will put you in a MySQL shell using the E-Commerce database: + +.. code:: sh + + make dev.dbshell.ecommerce + +How do I create new migrations? +------------------------------- + +For LMS, log into the LMS shell and run the +``makemigrations`` command with the ``devstack_docker`` settings: + +.. code:: sh + + make dev.shell.lms + ./manage.py lms makemigrations --settings=devstack_docker + +For Studio, it is similar: + +.. code:: sh + + make dev.shell.studio + ./manage.py cms makemigrations --settings=devstack_docker + +Finally, for any other service, run: + +.. code:: sh + + make dev.shell. + ./manage.py makemigrations + +Also, make sure you are aware of the `Django Migration Don'ts`_ as the +edx-platform is deployed using the red-black method. + +Switching branches +------------------ + +You can usually switch branches on a service's repository without adverse +effects on a running container for it. The service in each container is +using runserver and should automatically reload when any changes are made +to the code on disk. However, note the points made above regarding +database migrations and package updates. + +When switching to a branch which differs greatly from the one you've been +working on (especially if the new branch is more recent), you may wish to +halt and remove the existing containers via ``make remove-containers``, pull the latest Docker +images via ``make dev.pull.``, and then re-run ``make dev.provision.`` +in order to recreate up-to-date databases, static assets, etc. + +If making a patch to a named release, you should pull and use Docker images +which were tagged for that release. + +Changing LMS/Studio settings +---------------------------- + +LMS and Studio (a.k.a. CMS) read many configuration settings from the container filesystem +in the following locations: + +- ``/edx/etc/lms.yml`` +- ``/edx/etc/studio.yml`` + +Changes to these files will *not* persist over a container restart, as they +are part of the layered container filesystem and not a mounted volume. However, you +may need to change these settings and then have the LMS or Studio pick up the changes. + +After changing settings, you can restart the LMS/Studio process without restarting the container by running the following on your host machine: + +.. code:: sh + + make dev.restart-devserver.lms # For LMS + make dev.restart-devserver.studio # For Studio/CMS + + +What is DevPI and how does it affect Devstack? +---------------------------------------------- + +LMS and Studio use a devpi container to cache PyPI dependencies, which speeds up several Devstack operations. +See the `devpi documentation`_. + +.. _edxops Docker image: https://hub.docker.com/r/edxops/ +.. _Docker Hub: https://hub.docker.com/ +.. _building images for devstack: docs/building-images.rst +.. _How do I build images?: docs/building-images.rst +.. _Changing Themes for an Open edX Site: https://edx.readthedocs.io/projects/edx-installing-configuring-and-running/en/latest/configuration/changing_appearance/theming/index.html +.. _updating relational database dumps: docs/database-dumps.rst +.. _Django Migration Don'ts: https://engineering.edx.org/django-migration-donts-f4588fd11b64 +.. _devpi documentation: docs/devpi.rst diff --git a/docs/devstack_interface.rst b/docs/devstack_interface.rst new file mode 100644 index 0000000000..2e27417a50 --- /dev/null +++ b/docs/devstack_interface.rst @@ -0,0 +1,131 @@ +Devstack Interface +------------------ + +Devstack comes built in with many useful make commands that act as an user interface. This UI is essentially a make wrapper around docker-compose commands. We attempt to give a short summary of what the make commands do below, but it would be a good idea for you to familiarize yourself with some knowledge of docker-compose. + +Due to the organic nature of how this user interface came into being, there are often multiple ways to do the same thing. The two main variants of commands are of the form: ``dev.ACTION.SERVICE`` vs ``SERVICE-ACTION``. The ``SERVICE-ACTION`` variant tends to be more tab-completion friendly. + +Examples: + +.. code:: sh + + make dev.up.registrar + make registrar-up + + make dev.shell.lms + make lms-shell + + make dev.logs.frontend-app-gradebook + make frontend-app-gradebook-logs + +The user interface for devstack often also gives you both big hammers(``make dev.pull.large-and-slow``) and small hammers(``make dev.pull.``) to do things. It is recommend you opt for the small hammer commands, because they often tend to be alot faster. + +Useful Commands and Summary +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. Note: this document does not contain all commands in Makefile. To see full range of the make interface, please see Makefile + +- ``dev.pull.`` - Pull latest Docker images for the service and its dependencies + + When to use: If you have not used Devstack for a while or pulled new images for a while, the installed requirements in your containers might no longer match those used by your code. So it is recommended you pull new images whenever you want your containers to have the latest requirements(python libraries...) installed. + + Note: for new service images to be used, you first need to bring down those services and then bring them back up after a pull. + + Note: Pulling new images will not affect your databases state + + Variations: + + + ``make dev.pull.large-and-slow``, ``make dev.pull``, or ``make pull`` will pull all images in the default devstack. + + When to use: Probably only when you are first setting up devstack. Do not use this often. This will take a lot of time. + + + ``make dev.pull.+`` will pull images for , , and their dependencies + + + ``make dev.pull.without-deps.`` will only pull image. + + When to use: If you only want to update one image and do not mind if the other images are behind latest. + +- ``dev.up.`` - Create and start containers. i.e. brings up the container and its dependencies + + When to use: When you are working on a specific service, use this command to bring up the necessary containers for your service i.e if working in lms, use ``make dev.up.lms`` to bring up containers for lms and its dependencies. + + Especially if you are running devstack after a few days of break, you will likely want to use ``make dev.pull.`` before this using this command. + + Also see below at ``dev.stop`` and ``dev.down`` for opposite counterparts of this command + + Variations: + + + ``make dev.up.large-and-slow``, ``make dev.up``, or ``make up`` will bring up containers for *everything* in default devstack + + When to use: Probably never, unless you are doing a full devstack level testing + + + ``make dev.up.+`` will bring up , , and their dependencies + + + ``make dev.up.without-deps.`` will only bring up the container + +- ``dev.stop``: Stops all running containers. This does not remove the containers or the networks they had created + + When to use: When you are pausing your work on devstack and you want to pick back up from where you left off. Next time you use dev.up. to bring up containers, you should be able to mostly pick back up from where you started. + + Variation: + + ``make dev.stop.`` will only stop the specified container + +- ``dev.down``: stops and removes all running containers as well as any networks that were created. Next time you use dev.up. to bring up containers, your containers have reverted back to the pulled image. + + Note: This will not affect content of the databases. + + When to use: use this command only if you are okay with removing any changes you might have made to your containers. You will likely want to use ``make dev.stop`` instead of ``make dev.down``. + + Variation: + + + ``make dev.down.`` will stop and remove only the specified container. + + Note: This will only bring down 's container and not its dependencies. + +- ``dev.shell.``: used to enter the shell of the specified service container. + + When to use: To update python packages, to run migrations, or any shell commands you want to run on the running service + + Variation: ``make -shell`` + + Tip: To enter either ``mysql`` or ``mongo`` shell, run ``make mysql-shell`` or ``make mongo-shell`` to enter container shell and then run either ``mysql`` or ``mongo`` to enter the database shell + +- ``dev.attach.``: dev.up is setup to bring up the service container in the background. This attaches the container to your shell. + + When to use: If you put a breakpoint somewhere in your code, the pdb shell will show up in here. + + Tip: use ``Ctrl+c`` to restart the devserver + + Tip: use ``Ctrl+p Ctrl+q`` to detach without closing your terminal + + Variation: ``make -attach`` + +- ``dev.logs.``: View the logs of the specified service + + When to use: during debugging, this would help you see live logs coming out of your container. + + Variation: ``make dev.logs`` to view logs for all running containers. Do not use this! This is likely very overwhelming. + + Variation: ``make -logs`` + +- ``dev.restart-devserver.`` restarts the Django/Sinatra server inside container without restarting the container itself. + + When to use: When automatic code reloading is not working and you need to manually restart a particular application server. + + Tip: This only works for backend services. To restart frontends, use ``dev.attach.frontend-app-`` and ``Ctrl+C``. + + Variation: ``make -restart-devserver``. + +- ``dev.restart-container.`` restarts service container. This is essentially a stronger version of ``dev.restrart-devserver`` + + Note: this will only restart and not its dependencies + + Variation: ``make dev.restart-container.+`` will restart both and + +- ``dev.backup`` creates a backup of all the database containers(mysql, elasticsearch, mongo) + + Also see below at ``dev.restore`` for opposite counterpart to this command. + +- ``dev.restore`` will restore your database volumes to the backups created using ``dev.backup`` + + Warning: This will overwrite your databases. Only use if you want all your database volumes to revert back to the backup. diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000000..39cf7e77b0 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,28 @@ +Open edX Devstack +================= + +Devstack is the local Docker-based environment for developing in the Open edX platform. + +Contents: + +.. toctree:: + :maxdepth: 2 + + readme + devstack_interface + devstack_faq + workflow + building-images + database-dumps + devpi + developing_on_named_release_branches + pycharm_integration + testing_and_debugging + troubleshoot_general_tips + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000000..70915aaa9c --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,281 @@ +@ECHO OFF + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set BUILDDIR=_build +set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . +set I18NSPHINXOPTS=%SPHINXOPTS% . +if NOT "%PAPER%" == "" ( + set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% + set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% +) + +if "%1" == "" goto help + +if "%1" == "help" ( + :help + echo.Please use `make ^` where ^ is one of + echo. html to make standalone HTML files + echo. dirhtml to make HTML files named index.html in directories + echo. singlehtml to make a single large HTML file + echo. pickle to make pickle files + echo. json to make JSON files + echo. htmlhelp to make HTML files and a HTML help project + echo. qthelp to make HTML files and a qthelp project + echo. devhelp to make HTML files and a Devhelp project + echo. epub to make an epub + echo. epub3 to make an epub3 + echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter + echo. text to make text files + echo. man to make manual pages + echo. texinfo to make Texinfo files + echo. gettext to make PO message catalogs + echo. changes to make an overview over all changed/added/deprecated items + echo. xml to make Docutils-native XML files + echo. pseudoxml to make pseudoxml-XML files for display purposes + echo. linkcheck to check all external links for integrity + echo. doctest to run all doctests embedded in the documentation if enabled + echo. coverage to run coverage check of the documentation if enabled + echo. dummy to check syntax errors of document sources + goto end +) + +if "%1" == "clean" ( + for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i + del /q /s %BUILDDIR%\* + goto end +) + + +REM Check if sphinx-build is available and fallback to Python version if any +%SPHINXBUILD% 1>NUL 2>NUL +if errorlevel 9009 goto sphinx_python +goto sphinx_ok + +:sphinx_python + +set SPHINXBUILD=python -m sphinx.__init__ +%SPHINXBUILD% 2> nul +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://sphinx-doc.org/ + exit /b 1 +) + +:sphinx_ok + + +if "%1" == "html" ( + %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/html. + goto end +) + +if "%1" == "dirhtml" ( + %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. + goto end +) + +if "%1" == "singlehtml" ( + %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. + goto end +) + +if "%1" == "pickle" ( + %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can process the pickle files. + goto end +) + +if "%1" == "json" ( + %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can process the JSON files. + goto end +) + +if "%1" == "htmlhelp" ( + %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can run HTML Help Workshop with the ^ +.hhp project file in %BUILDDIR%/htmlhelp. + goto end +) + +if "%1" == "qthelp" ( + %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can run "qcollectiongenerator" with the ^ +.qhcp project file in %BUILDDIR%/qthelp, like this: + echo.^> qcollectiongenerator %BUILDDIR%\qthelp\devstack.qhcp + echo.To view the help file: + echo.^> assistant -collectionFile %BUILDDIR%\qthelp\devstack.ghc + goto end +) + +if "%1" == "devhelp" ( + %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. + goto end +) + +if "%1" == "epub" ( + %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The epub file is in %BUILDDIR%/epub. + goto end +) + +if "%1" == "epub3" ( + %SPHINXBUILD% -b epub3 %ALLSPHINXOPTS% %BUILDDIR%/epub3 + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The epub3 file is in %BUILDDIR%/epub3. + goto end +) + +if "%1" == "latex" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "latexpdf" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + cd %BUILDDIR%/latex + make all-pdf + cd %~dp0 + echo. + echo.Build finished; the PDF files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "latexpdfja" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + cd %BUILDDIR%/latex + make all-pdf-ja + cd %~dp0 + echo. + echo.Build finished; the PDF files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "text" ( + %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The text files are in %BUILDDIR%/text. + goto end +) + +if "%1" == "man" ( + %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The manual pages are in %BUILDDIR%/man. + goto end +) + +if "%1" == "texinfo" ( + %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. + goto end +) + +if "%1" == "gettext" ( + %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The message catalogs are in %BUILDDIR%/locale. + goto end +) + +if "%1" == "changes" ( + %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes + if errorlevel 1 exit /b 1 + echo. + echo.The overview file is in %BUILDDIR%/changes. + goto end +) + +if "%1" == "linkcheck" ( + %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck + if errorlevel 1 exit /b 1 + echo. + echo.Link check complete; look for any errors in the above output ^ +or in %BUILDDIR%/linkcheck/output.txt. + goto end +) + +if "%1" == "doctest" ( + %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest + if errorlevel 1 exit /b 1 + echo. + echo.Testing of doctests in the sources finished, look at the ^ +results in %BUILDDIR%/doctest/output.txt. + goto end +) + +if "%1" == "coverage" ( + %SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage + if errorlevel 1 exit /b 1 + echo. + echo.Testing of coverage in the sources finished, look at the ^ +results in %BUILDDIR%/coverage/python.txt. + goto end +) + +if "%1" == "xml" ( + %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The XML files are in %BUILDDIR%/xml. + goto end +) + +if "%1" == "pseudoxml" ( + %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml. + goto end +) + +if "%1" == "dummy" ( + %SPHINXBUILD% -b dummy %ALLSPHINXOPTS% %BUILDDIR%/dummy + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. Dummy builder generates no files. + goto end +) + +:end diff --git a/docs/pycharm_integration.rst b/docs/pycharm_integration.rst index becdc55e52..36cc4945b4 100644 --- a/docs/pycharm_integration.rst +++ b/docs/pycharm_integration.rst @@ -18,17 +18,10 @@ Prerequisites Before running Run or Debug in PyCharm -------------------------------------- -Every time you run/debug a server or test in PyCharm, you must first ensure the -following: - -1. Ensure that all Docker images are stopped outside of PyCharm before starting - a server or tests from inside PyCharm. PyCharm will potentially disable the - start button with no further error when this problem occurs. See `Jetbrains - ticket PY-22893`_. - -2. If you are running with Docker Sync on a mac you will want to first run - ``docker-sync start`` to run sync in the background before running any - servers or tests. +Every time you run/debug a server or test in PyCharm, you must first ensure +that all Docker images are stopped outside of PyCharm. PyCharm will +potentially disable the start button with no further error when this problem +occurs. See `Jetbrains ticket PY-22893`_. Setup a Remote Interpreter -------------------------- @@ -43,21 +36,21 @@ use the following options: - Configuration files(s) - - Docker Sync (Mac) - - - ``/LOCAL/PATH/TO/devstack/docker-compose.yml`` (e.g.~/edx/devstack/docker-compose.yml) - - ``/LOCAL/PATH/TO/devstack/docker-compose-sync.yml`` + - ``/LOCAL/PATH/TO/devstack/docker-compose.yml`` (e.g.~/edx/devstack/docker-compose.yml) + - ``/LOCAL/PATH/TO/devstack/docker-compose-host.yml`` + - ``/LOCAL/PATH/TO/devstack/docker-compose-themes.yml`` - - Without Docker Sync +- Service: lms (or whatever IDA you wish to test) - - ``/LOCAL/PATH/TO/devstack/docker-compose.yml`` (e.g.~/edx/devstack/docker-compose.yml) - - ``/LOCAL/PATH/TO/devstack/docker-compose-host.yml`` +- Required Environment variables: -- Service: lms (or whatever IDA you wish to test) + - ``DEVSTACK_WORKSPACE=/LOCAL/PARENT/PATH/TO/workspace`` (i.e.: Path to where your local repositories are cloned. This needs to be full path an not relative (e.g. './') path to ensure proper configuration of python packages.) + - ``VIRTUAL_ENV=/LOCAL/PARENT/PATH/TO/workspace/devstack/venv`` (i.e.: Path to where your local devstack virtual environment exists for release.) -- Environment variables: +- Optional Environment variables: - - ``DEVSTACK_WORKSPACE=/LOCAL/PARENT/PATH/TO/workspace`` (i.e.: Path to where your local repositories are cloned) + - ``OPENEDX_RELEASE=release.version`` (i.e.: appropriate image tag; "juniper.master") + - ``COMPOSE_PROJECT_NAME=docker-compose.container`` (i.e.: "devstack-juniper.master"; appropriate docker-compose container project for devstack multiple release (same machine); ensures specific Docker containers get used based on release name; Ref: https://github.com/openedx/devstack/pull/532) - Python interpreter path: @@ -65,9 +58,10 @@ use the following options: - ``/edx/app//venvs//bin/python`` - - For example, the path would be the following for the Credentials Service: + - For example, the path would be the following for the Ecommerce Service: - - ``/edx/app/credentials/venvs/credentials/bin/python`` + - ``/edx/app/ecommerce/venvs/ecommerce/bin/python`` + - Note: The Credentials Service might not have a virtualenv set up in the container. - For either lms or studio, you need to use edxapp: @@ -83,6 +77,8 @@ so you can easily switch back to old without this delay. **Warning**: When you change configuration files, the service drop-down gets reset. Remember to restore to the IDA you wish to test. +**Some Tips**: If your remote isn't loading you may need to set your DEVSTACK_WORKSPACE variable globally in your ./bash_profile. Additionally try reseting docker as a last resort and things should sync successfully after that. + Setup Django Support -------------------- @@ -95,14 +91,18 @@ If your Django Project contains a single repo, like ecommerce, your settings would look as follows: Django Project Root: /Path/to/docker_devstack/ecommerce + Settings: ecommerce/settings/devstack.py + Manage Script: manage.py If you have all of the repos open in a single Django Project, you would use the following: Django Project Root: /Path/to/docker_devstack + Settings: ecommerce/ecommerce/settings/devstack.py + Manage Script: ecommerce/manage.py Note: With all repos in the same project, you would need to update these @@ -160,6 +160,8 @@ Configuration`_, with the following specific values. - ``DJANGO_SETTINGS_MODULE=lms.envs.devstack_docker`` (or cms.envs.devstack_docker) - ``PYTHONUNBUFFERED=1`` + - ``CONFIG_ROOT=/edx/app/edxapp`` + - ``LMS_CFG=/edx/etc/lms.yml`` 5. Python Interpreter: Choose the Docker Compose interpreter for this service. @@ -173,6 +175,31 @@ Configuration`_, with the following specific values. 8. Deselect "Add content..." and "Add source..." +9. Before launch: External tool, Activate tool window + + (i.e ensures release services are stopped prior to launching the debug/run configuration) + e.g. ``make OPENEDX_RELEASE=juniper.master stop.all`` from "devstack" repo.) + + - Click '+' then `Add New Configuration > Run External tool` + + - Assign values: + + - Name: "Stop all running containers for release." + - Description: "Stop all running containers for release." + - Tool Settings: + + - Program: make + - Arugments: OPENEDX_RELEASE=juniper.master stop.all + - Working directory: $ProjectFileDir$/devstack + + - Advanced Options + + - (Deselect) Synchronize files after execution + - (Select) Open console for tool output + + - (Select) Make console active on message in stdout + - (Select) Make console active on message in stderr + Setup a Run/Debug Configuration for python tests ------------------------------------------------ @@ -269,6 +296,33 @@ While working in PyCharm, you could see the following error: This issue has been fixed in PyCharm 2017.1.2. + +Cannot open the manage.py file +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The error happens when you try to run a stack (lms or studio for example):: + + Attaching to edx.devstack.lms + edx.devstack.lms | /edx/app/edxapp/venvs/edxapp/bin/python: can't open file '/edx/app/edxapp/edx-platform/manage.py': [Errno 2] No such file or directory + edx.devstack.lms exited with code 2 + Aborting on container exit... + +Best is to recheck all your settings in particular the Remote Interpreter's settings and make sure that you have included the docker-compose-host.yml file. Make also sure +that you have defined the DEVSTACK_WORKSPACE environment variable correctly (i.e. to the root of your workspace where all repositories are checked out). + +You can check which volumes are mounted on each docker container by using the Docker Tool Window. Please note that there is an unnecessary volume creation in the process that +maps /opt/project to the local source file folder. You can safely ignore this unless you forgot to add the docker-compose-host.yml to the Configuration files in the setup above. + +For info, the Docker Tool Window (https://www.jetbrains.com/help/pycharm/using-docker-compose-as-a-remote-interpreter.html) can help to see what's happening: + +1. Click on the Docker/devstack instances and find your instance (for example Docker/devstack/lms/edx.devstack.lms) + +2. Select the Volume Bindings tab + +3. Make sure that the Container path and Host path are right. Normally you should have a line mapping /edx/app/edxapp/edx-platform to the related local source folder (i.e. often DEVSTACK_WORKSPACE/edx-platform). + + + Project Interpreter has no packages ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -288,6 +342,6 @@ One way to do this is to follow these instructions: .. _Django Server Run/Debug Configuration: https://www.jetbrains.com/help/pycharm/2017.1/run-debug-configuration-django-server.html .. _Jetbrains ticket PY-22893: https://youtrack.jetbrains.com/issue/PY-22893 .. _PyCharm: https://www.jetbrains.com/pycharm/ -.. _PyCharm IDE setup: https://openedx.atlassian.net/wiki/spaces/OpenDev/pages/92209229/PyCharm +.. _PyCharm IDE setup: https://openedx.atlassian.net/wiki/spaces/AC/pages/92209229/PyCharm .. _README: ../README.rst .. _vendor documentation: https://www.jetbrains.com/help/pycharm/2017.1/configuring-remote-interpreters-via-docker-compose.html diff --git a/docs/readme.rst b/docs/readme.rst new file mode 100644 index 0000000000..72a3355815 --- /dev/null +++ b/docs/readme.rst @@ -0,0 +1 @@ +.. include:: ../README.rst diff --git a/docs/testing_and_debugging.rst b/docs/testing_and_debugging.rst new file mode 100644 index 0000000000..708f1095d9 --- /dev/null +++ b/docs/testing_and_debugging.rst @@ -0,0 +1,122 @@ +Testing and Debugging +===================== + +.. contents:: Table of Contents + +Debugging using PDB +------------------- + +It's possible to debug any of the containers' Python services using PDB. To do so, +start up the containers as usual with: + +.. code:: sh + + make dev.up + +This command starts each relevant container with the equivalent of the '--it' option, +allowing a developer to attach to the process once the process is up and running. + +To attach to a container and its process, use ``make dev.attach.``. For example: + +.. code:: sh + + make dev.attach.lms + +Set a PDB breakpoint anywhere in the code using one of the following: + +.. code:: sh + + breakpoint() # Works in Python >= 3.7 + import pdb;pdb.set_trace() # Works in any version of Python + +and your attached session will offer an interactive PDB prompt when the breakpoint is hit. + +You may be able to detach from the container with the ``Ctrl-P, Ctrl-Q`` key sequence. +If that doesn't work, you will have either close your terminal window or +stop the service with: + +.. code:: sh + + make dev.stop. + +You can bring that same service back up with: + +.. code:: sh + + make dev.up. + +Running LMS and Studio Tests +---------------------------- + +After entering a shell for the appropriate service via ``make lms-shell`` or +``make studio-shell``, you can run any of the usual paver commands from the +`edx-platform testing documentation`_. Examples: + +.. code:: sh + + paver run_quality + paver test_a11y + paver test_bokchoy + paver test_js + paver test_lib + paver test_python + +Tests can also be run individually. Example: + +.. code:: sh + + pytest openedx/core/djangoapps/user_api + +Tests can also be easily run with a shortcut from the host machine, +so that you maintain your command history: + +.. code:: sh + + ./in lms pytest openedx/core/djangoapps/user_api + +Connecting to Browser +~~~~~~~~~~~~~~~~~~~~~ + +If you want to see the browser being automated for JavaScript or bok-choy tests, +you can connect to the container running it via VNC. + ++------------------------+----------------------+ +| Browser | VNC connection | ++========================+======================+ +| Firefox (Default) | vnc://0.0.0.0:25900 | ++------------------------+----------------------+ +| Chrome (via Selenium) | vnc://0.0.0.0:15900 | ++------------------------+----------------------+ + +On macOS, enter the VNC connection string in the address bar in Safari to +connect via VNC. The VNC passwords for both browsers are randomly generated and +logged at container startup, and can be found by running ``make vnc-passwords``. + +Most tests are run in Firefox by default. To use Chrome for tests that normally +use Firefox instead, prefix the test command with +``SELENIUM_BROWSER=chrome SELENIUM_HOST=edx.devstack.chrome``. + +Running End-to-End Tests +------------------------ + +To run the base set of end-to-end tests for edx-platform, run the following +make target: + +.. code:: sh + + make e2e-tests + +If you want to use some of the other testing options described in the +`edx-e2e-tests README`_, you can instead start a shell for the e2e container +and run the tests manually via paver: + +.. code:: sh + + make e2e-shell + paver e2e_test + +The browser running the tests can be seen and interacted with via VNC as +described above (Firefox is used by default). + +.. _edx-platform testing documentation: https://github.com/openedx/edx-platform/blob/master/docs/guides/testing/testing.rst#running-python-unit-tests +.. _edx-e2e-tests README: https://github.com/edx/edx-e2e-tests/#how-to-run-lms-and-studio-tests diff --git a/docs/troubleshoot_general_tips.rst b/docs/troubleshoot_general_tips.rst new file mode 100644 index 0000000000..fe85be5738 --- /dev/null +++ b/docs/troubleshoot_general_tips.rst @@ -0,0 +1,216 @@ +Troubleshooting: Common Issues +============================== + +.. contents:: Table of Contents + +File ownership change +--------------------- + +If you notice that the ownership of some (maybe all) files have changed and you +need to enter your root password when editing a file, you might +have pulled changes to the remote repository from within a container. While running +``git pull``, git changes the owner of the files that you pull to the user that runs +that command. Within a container, that is the root user - so git operations +should be ran outside of the container. + +To fix this situation, change the owner back to yourself outside of the container by running: + +.. code:: sh + + $ sudo chown : -R . + +Running LMS commands within a container +--------------------------------------- + +Most of the ``paver`` commands require a settings flag. If omitted, the flag defaults to +``devstack``. If you run into issues running ``paver`` commands in a docker container, you should append +the ``devstack_docker`` flag. For example: + +.. code:: sh + + $ paver update_assets --settings=devstack_docker + +Resource busy or locked +----------------------- + +While running ``make static`` within the ecommerce container you could get an error +saying: + +.. code:: sh + + Error: Error: EBUSY: resource busy or locked, rmdir '/edx/app/ecommerce/ecommerce/ecommerce/static/build/' + +To fix this, remove the directory manually outside of the container and run the command again. + +No space left on device +----------------------- + +If you see the error ``no space left on device``, Docker has run +out of space in its Docker.qcow2 file. + +Here is an example error while running ``make dev.pull.``: + +.. code:: sh + + ... + 32d52c166025: Extracting [==================================================>] 1.598 GB/1.598 GB + ERROR: failed to register layer: Error processing tar file(exit status 1): write /edx/app/edxapp/edx-platform/.git/objects/pack/pack-4ff9873be2ca8ab77d4b0b302249676a37b3cd4b.pack: no space left on device + make: *** [pull] Error 1 + +Try this first to clean up dangling images: + +.. code:: sh + + docker system prune -f # (This is very safe, so try this first.) + +If you are still seeing issues, you can try cleaning up dangling volumes. + +1. Bring up all containers. + +.. code:: sh + + make dev.up.large-and-slow + +2. Remove all unused volumes. **Warning:** this will remove all Docker data on your system that is *not currently in use by a container*, which is why it's important to run the previous step. Otherwise, this will wipe out your Devstack data. + + docker volume prune -f + +No such file or directory +------------------------- + +While provisioning, some have seen the following error: + +.. code:: sh + + ... + cwd = os.getcwdu() + OSError: [Errno 2] No such file or directory + make: *** [dev.provision.services] Error 1 + +This issue can be worked around, but there's no guaranteed method to do so. +Rebooting and restarting Docker does *not* seem to correct the issue. You can +try the following: + +.. code:: sh + + # repeat the following until you get past the error. + make stop + make dev.provision. + +Memory Limit +------------ + +While provisioning, some have seen the following error: + +.. code:: sh + + ... + Build failed running pavelib.assets.update_assets: Subprocess return code: 137 + +This error is an indication that your docker process died during execution. Most likely, +this error is due to running out of memory. Try increasing the memory +allocated to Docker (Recommended: 8 CPUs, 10 GB Memory, 2GB Swap). + +Docker is using lots of CPU time when it should be idle +------------------------------------------------------- + +On the Mac, this often manifests as the ``hyperkit`` process using a high +percentage of available CPU resources. To identify the container(s) +responsible for the CPU usage: + +.. code:: sh + + make dev.stats + +Once you've identified a container using too much CPU time, check its logs; +for example: + +.. code:: sh + + make dev.logs.lms + +The most common culprit is an infinite restart loop where an error during +service startup causes the process to exit, but we've configured +``docker-compose`` to immediately try starting it again (so the container will +stay running long enough for you to use a shell to investigate and fix the +problem). Make sure the set of packages installed in the container matches +what your current code branch expects; you may need to rerun ``pip`` on a +requirements file or pull new container images that already have the required +package versions installed. + +Missing git branches +-------------------- + +When trying to check out a branch, you may see an error like this:: + + git checkout jj/REV-666-implement-evil-feature + > error: pathspec 'jj/REV-666-implement-evil-feature' did not match any file(s) known to git + +If you are sure you have (i) recently run ``git fetch`` and (ii) didn't misspell the +branch name, then it is possible your repository is set in "single-branch" mode, meaning +that it is configured to only fetch ``master``. Although devstack currently clones services' +repositories with all their branches, devstacks provisioned before September 2020 +will start out with single-branch repositories. You check if your repository is in this +state by running ``git branch -r``. If you only see a couple of entries +(``origin/master`` and ``origin/HEAD``), then your local repository is in single-branch +mode. + +You can manually reconfigure your repository to pull all branches by running these +commands from within the repository:: + + git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" + git fetch origin + git checkout jj/REV-666-implement-evil-feature + > Switched to branch 'jj/REV-666-implement-evil-feature'. + +General git troubleshooting +--------------------------- + +``git`` is powerful but complex; you may occasionally find your respository in a +confusing state. This problem isn't devstack-specific. + +If you find yourself stuck, folks in the edX-internal or Open edX Slack workspaces may +be able to give you a hand. + +Alternatively, if you are at a roadblock and +*don't care about any changes you've made to your local copy of the repository* +(i.e., you have pushed or otherwise saved your work elsewhere) +then you can always delete the repository and start over again:: + + rm -rf ./ + git clone git@github.com:openedx/ + +Finally, if you regularly find yourself mystified by git, consider reading +through `Understanding Git Conceptually`_. It explains core Git principles in way +that makes it easier to use the simpler ``git`` commands more effectively +and easier to use the more complicated ``git`` commands when you have to. + +Problems with shared directories +-------------------------------- + +If you have problems like shared directories not appearing as shared, or very +slow sync times (up to an hour), it might be due to symlinks. Be sure that +your actual devstack working directory matches the directory listed in the +Resources - File Sharing section of the Docker preferences. Using a symlink as +the current directory and sharing the real directory (or vice-versa) may work +erratically. + +Missing module +-------------- + +Occasionally, you'll get errors like 'Cannot import name Name from module xyz'. This usually happens because the code and the image are out of sync. To fix this, first make sure you have the latest images and the latest code. These instructions are written using the LMS as an example. Replace lms with studio, credentials, discovery, etc. as appropriate. + +#. Run ``make dev.stop.lms`` from devstack +#. To update your image, you can run ``make dev.pull.lms`` from devstack. +#. To get the latest code, you can run ``git fetch && git pull`` from the head of the code repository. If you are working on a branch, you may need to rebase it onto the latest master or main. +#. From devstack, run ``make dev.up.lms`` and ``make dev.logs.lms`` +#. If the import error is still there, run ``make dev.shell.lms`` and then, from within the service container, run ``make requirements`` +#. After doing this, it may Just Work or you may need to restart the service with ``make dev.restart-devserver.lms`` (run from devstack) + +Missing tables/migrations/fields +-------------------------------- +Another error you may get if the code and the image are out of sync is sql or Django ORM errors about missing tables or models not having a certain field. To fix this, make sure you have the latest images and latest code, similar to the steps for Missing Module. Once you have updated the image and code, run ``make dev.migrate.lms`` (or your other service) from devstack to apply the latest migrations. You shouldn't need to restart the webserver or container. + + + +.. _Understanding Git Conceptually: https://www.sbf5.com/~cduan/technical/git/ diff --git a/docs/workflow.rst b/docs/workflow.rst new file mode 100644 index 0000000000..080d99fc3f --- /dev/null +++ b/docs/workflow.rst @@ -0,0 +1,71 @@ +Workflow +======== + +Here's a common workflow you might use in devstack for feature development or debugging in an IDA. + +These instructions are written using the LMS as an example. Replace ``lms`` with ``studio``, ``credentials``, ``discovery``, etc. as appropriate. + +#. Get your IDA's repo ready for development. + + - You'll be developing from a git repo that is checked out to the same parent directory as the one devstack is in. For example, if you have ``~/edx-repos/devstack``, you'll be developing the LMS in ``~/edx-repos/edx-platform``. + + - Make sure your IDA's repo is checked out to the commit you want to use for development, and that that commit is based on an up to date branch, so that it matches the disk images devstack will pull. + +#. Activate your devstack virtualenv. See the main Getting Started instructions if you don't already have one. +#. Launch your service in a clean state: + + #. Run ``make dev.remove-containers dev.pull.lms dev.up.lms`` to halt any running services and remove their containers, pull the latest disk images, and launch your service. + #. Optionally, watch ``make dev.logs.lms`` to follow the logs. This lets you see when the service finishes coming up, and prints the port it is listening on. + + - Your service is up when you see a block of messages that looks like the following:: + + edx.devstack.lms | System check identified no issues (0 silenced). + edx.devstack.lms | November 25, 2020 - 19:04:18 + edx.devstack.lms | Django version 2.2.17, using settings 'lms.envs.devstack_docker' + edx.devstack.lms | Starting development server at http://0.0.0.0:18000/ + edx.devstack.lms | Quit the server with CONTROL-C. + + - If the logs show warning messages about missing tables or needed migrations, run ``make dev.migrate.lms`` and then continue + + - If there are complaints about import failures, Python package requirements may have changed since the last disk image. Run ``make lms-shell`` and then ``make requirements`` from inside the shell, then restart the service with ``make dev.restart-devserver.lms``. + +#. Your service should now be up and accessible, and you can develop in your IDA's repo. When you make changes on disk, a file watcher will restart the service in devstack. It may take a moment for the service to come back up with your changes. + + - For some changes, this auto-restarting is insufficient, and you'll need to make a change from inside ``make lms-shell`` (such as ``make requirements`` or a migrations or other management command) and then run ``make dev.restart-devserver.lms`` from the outside. Running ``make dev.restart-devserver.lms`` may also fix issues if the runserver command is not restarting automatically after code changes. + +#. When you're done, you can run ``make dev.stop.lms`` to shut down the service but leave the container intact (with requirements installations and other file changes preserved). + +Variations +---------- + +Multiple services +~~~~~~~~~~~~~~~~~ + +If you're working on multiple services at a time, you can use Make targets of a different form that take a list of services. For example, if you want to pull images for ``lms``, ``studio``, and ``credentials``, you can run ``make dev.pull.lms+studio+credentials``. This will pull down images for the three services, as well as for all of their runtime dependencies. + +You can also use the more tab-completion-friendly commands separately: ``make lms-pull studio-pull credentials-pull``. + +Time-savers +~~~~~~~~~~~ + +If you want to pull down just the images for one service but not its dependencies, there is a ``without-deps`` variant for both pulling images and for bringing a service up, and for both service-leading and service-trailing Make target variants. For example, ``dev.up.without-deps.lms`` and ``lms-up-without-deps`` may both be used, where the former is more amenable to use with multiple services at the same time. + +Database backups +~~~~~~~~~~~~~~~~ + +You can routinely create backups of your local databases. To create a backup, use ``make dev.backup``. When you want to restore you database to the backup, run ``make dev.restore``. Warning, this will retore all your databases. You might have to cycle the database containers off and on using ``make dev.down.`` and ``make dev.up.``. + +Running micro-frontends outside of devstack +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Although several micro-frontends (MFEs) are built into devstack (the full list is in the `service table`_), some users prefer to run those MFEs directly on their host machine. You can achieve this by first removing the devstack MFE container, and then starting the host version. For example:: + + make dev.down.frontend-app-learning # Bring down the devstack version of the Learning MFE. + cd # Navigate to the Learning MFE's repository. + npm install && npm start # Install JS packages, and start the NPM devserver on your local host. + +Of course ``learning`` can be replaced with ``gradebook``, ``payment``, or another frontend-app name. + +If you forget to bring down the devstack version of the MFE, you will notice a port conflict when trying to start the host version. + +.. _service table: ../README.rst#service-list diff --git a/dump-db.sh b/dump-db.sh deleted file mode 100755 index 9d9c135704..0000000000 --- a/dump-db.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash - -# Dump the specified database to a file of the same name. -# -# Example: -# $ dump-db edxapp -# -# This will dump the edxapp database to a file named exapp.sql. - -if [ -z "$1" ] -then - echo "You must supply a database name!" - exit 1 -fi - -echo "Dumping the $1 database..." -docker exec -i edx.devstack.mysql mysqldump --add-drop-database --skip-add-drop-table -B $1 > $1.sql -echo "Finished dumping the $1 database!" diff --git a/ecommerce.sql b/ecommerce.sql index 77ae00c7af..39b727456a 100644 --- a/ecommerce.sql +++ b/ecommerce.sql @@ -1,8 +1,8 @@ --- MySQL dump 10.13 Distrib 5.6.39, for Linux (x86_64) +-- MySQL dump 10.13 Distrib 5.7.39, for Linux (x86_64) -- -- Host: localhost Database: ecommerce -- ------------------------------------------------------ --- Server version 5.6.39 +-- Server version 5.7.39 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; @@ -40,8 +40,9 @@ CREATE TABLE `address_country` ( `display_order` smallint(5) unsigned NOT NULL, `is_shipping_country` tinyint(1) NOT NULL, PRIMARY KEY (`iso_3166_1_a2`), - KEY `address_country_010c8bce` (`display_order`), - KEY `address_country_0b3676f8` (`is_shipping_country`) + KEY `address_country_display_order_dc88cde8` (`display_order`), + KEY `address_country_is_shipping_country_f7b6c461` (`is_shipping_country`), + KEY `address_country_printable_name_450b016c` (`printable_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -77,16 +78,17 @@ CREATE TABLE `address_useraddress` ( `notes` longtext NOT NULL, `is_default_for_shipping` tinyint(1) NOT NULL, `is_default_for_billing` tinyint(1) NOT NULL, - `num_orders` int(10) unsigned NOT NULL, + `num_orders_as_shipping_address` int(10) unsigned NOT NULL, `hash` varchar(255) NOT NULL, `date_created` datetime(6) NOT NULL, `country_id` varchar(2) NOT NULL, `user_id` int(11) NOT NULL, + `num_orders_as_billing_address` int(10) unsigned NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `address_useraddress_user_id_9d1738c7_uniq` (`user_id`,`hash`), - KEY `address_use_country_id_fa26a249_fk_address_country_iso_3166_1_a2` (`country_id`), - KEY `address_useraddress_0800fc57` (`hash`), - CONSTRAINT `address_use_country_id_fa26a249_fk_address_country_iso_3166_1_a2` FOREIGN KEY (`country_id`) REFERENCES `address_country` (`iso_3166_1_a2`), + UNIQUE KEY `address_useraddress_user_id_hash_9d1738c7_uniq` (`user_id`,`hash`), + KEY `address_useraddress_country_id_fa26a249_fk_address_c` (`country_id`), + KEY `address_useraddress_hash_e0a6b290` (`hash`), + CONSTRAINT `address_useraddress_country_id_fa26a249_fk_address_c` FOREIGN KEY (`country_id`) REFERENCES `address_country` (`iso_3166_1_a2`), CONSTRAINT `address_useraddress_user_id_6edf0244_fk_ecommerce_user_id` FOREIGN KEY (`user_id`) REFERENCES `ecommerce_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -115,8 +117,8 @@ CREATE TABLE `analytics_productrecord` ( `product_id` int(11) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `product_id` (`product_id`), - KEY `analytics_productrecord_81a5c7b1` (`num_purchases`), - CONSTRAINT `analytics_productrec_product_id_dad3a871_fk_catalogue_product_id` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`) + KEY `analytics_productrecord_num_purchases_405301a0` (`num_purchases`), + CONSTRAINT `analytics_productrec_product_id_dad3a871_fk_catalogue` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -141,9 +143,9 @@ CREATE TABLE `analytics_userproductview` ( `product_id` int(11) NOT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `analytics_userproduc_product_id_a55b87ad_fk_catalogue_product_id` (`product_id`), + KEY `analytics_userproduc_product_id_a55b87ad_fk_catalogue` (`product_id`), KEY `analytics_userproductview_user_id_5e49a8b1_fk_ecommerce_user_id` (`user_id`), - CONSTRAINT `analytics_userproduc_product_id_a55b87ad_fk_catalogue_product_id` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`), + CONSTRAINT `analytics_userproduc_product_id_a55b87ad_fk_catalogue` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`), CONSTRAINT `analytics_userproductview_user_id_5e49a8b1_fk_ecommerce_user_id` FOREIGN KEY (`user_id`) REFERENCES `ecommerce_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -175,9 +177,9 @@ CREATE TABLE `analytics_userrecord` ( `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `user_id` (`user_id`), - KEY `analytics_userrecord_29bdb5ea` (`num_orders`), - KEY `analytics_userrecord_89bb6879` (`num_order_lines`), - KEY `analytics_userrecord_25cd4b4a` (`num_order_items`), + KEY `analytics_userrecord_num_orders_b352ffd1` (`num_orders`), + KEY `analytics_userrecord_num_order_lines_97cc087f` (`num_order_lines`), + KEY `analytics_userrecord_num_order_items_fb2a8304` (`num_order_items`), CONSTRAINT `analytics_userrecord_user_id_702cff4c_fk_ecommerce_user_id` FOREIGN KEY (`user_id`) REFERENCES `ecommerce_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -204,7 +206,7 @@ CREATE TABLE `analytics_usersearch` ( `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `analytics_usersearch_user_id_1775992d_fk_ecommerce_user_id` (`user_id`), - KEY `analytics_usersearch_1b1cc7f0` (`query`), + KEY `analytics_usersearch_query_ad36478b` (`query`), CONSTRAINT `analytics_usersearch_user_id_1775992d_fk_ecommerce_user_id` FOREIGN KEY (`user_id`) REFERENCES `ecommerce_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -226,7 +228,7 @@ UNLOCK TABLES; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `auth_group` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(80) NOT NULL, + `name` varchar(150) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -252,9 +254,9 @@ CREATE TABLE `auth_group_permissions` ( `group_id` int(11) NOT NULL, `permission_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `auth_group_permissions_group_id_0cd325b0_uniq` (`group_id`,`permission_id`), - KEY `auth_group_permissi_permission_id_84c5c92e_fk_auth_permission_id` (`permission_id`), - CONSTRAINT `auth_group_permissi_permission_id_84c5c92e_fk_auth_permission_id` FOREIGN KEY (`permission_id`) REFERENCES `auth_permission` (`id`), + UNIQUE KEY `auth_group_permissions_group_id_permission_id_0cd325b0_uniq` (`group_id`,`permission_id`), + KEY `auth_group_permissio_permission_id_84c5c92e_fk_auth_perm` (`permission_id`), + CONSTRAINT `auth_group_permissio_permission_id_84c5c92e_fk_auth_perm` FOREIGN KEY (`permission_id`) REFERENCES `auth_permission` (`id`), CONSTRAINT `auth_group_permissions_group_id_b120cbf9_fk_auth_group_id` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -280,9 +282,9 @@ CREATE TABLE `auth_permission` ( `content_type_id` int(11) NOT NULL, `codename` varchar(100) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `auth_permission_content_type_id_01ab375a_uniq` (`content_type_id`,`codename`), - CONSTRAINT `auth_permissi_content_type_id_2f476e4b_fk_django_content_type_id` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=385 DEFAULT CHARSET=utf8; + UNIQUE KEY `auth_permission_content_type_id_codename_01ab375a_uniq` (`content_type_id`,`codename`), + CONSTRAINT `auth_permission_content_type_id_2f476e4b_fk_django_co` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=625 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -291,7 +293,7 @@ CREATE TABLE `auth_permission` ( LOCK TABLES `auth_permission` WRITE; /*!40000 ALTER TABLE `auth_permission` DISABLE KEYS */; -INSERT INTO `auth_permission` VALUES (1,'Can add content type',1,'add_contenttype'),(2,'Can change content type',1,'change_contenttype'),(3,'Can delete content type',1,'delete_contenttype'),(4,'Can add permission',2,'add_permission'),(5,'Can change permission',2,'change_permission'),(6,'Can delete permission',2,'delete_permission'),(7,'Can add group',3,'add_group'),(8,'Can change group',3,'change_group'),(9,'Can delete group',3,'delete_group'),(10,'Can add site configuration',4,'add_siteconfiguration'),(11,'Can change site configuration',4,'change_siteconfiguration'),(12,'Can delete site configuration',4,'delete_siteconfiguration'),(13,'Can add user',5,'add_user'),(14,'Can change user',5,'change_user'),(15,'Can delete user',5,'delete_user'),(16,'Can add user',6,'add_client'),(17,'Can change user',6,'change_client'),(18,'Can delete user',6,'delete_client'),(19,'Can add Country',7,'add_country'),(20,'Can change Country',7,'change_country'),(21,'Can delete Country',7,'delete_country'),(22,'Can add User address',8,'add_useraddress'),(23,'Can change User address',8,'change_useraddress'),(24,'Can delete User address',8,'delete_useraddress'),(25,'Can add log entry',9,'add_logentry'),(26,'Can change log entry',9,'change_logentry'),(27,'Can delete log entry',9,'delete_logentry'),(28,'Can add Attribute option',10,'add_attributeoption'),(29,'Can change Attribute option',10,'change_attributeoption'),(30,'Can delete Attribute option',10,'delete_attributeoption'),(31,'Can add Product',11,'add_product'),(32,'Can change Product',11,'change_product'),(33,'Can delete Product',11,'delete_product'),(34,'Can add Option',12,'add_option'),(35,'Can change Option',12,'change_option'),(36,'Can delete Option',12,'delete_option'),(37,'Can add Product class',13,'add_productclass'),(38,'Can change Product class',13,'change_productclass'),(39,'Can delete Product class',13,'delete_productclass'),(40,'Can add Category',14,'add_category'),(41,'Can change Category',14,'change_category'),(42,'Can delete Category',14,'delete_category'),(43,'Can add catalog',15,'add_catalog'),(44,'Can change catalog',15,'change_catalog'),(45,'Can delete catalog',15,'delete_catalog'),(46,'Can add Product recommendation',16,'add_productrecommendation'),(47,'Can change Product recommendation',16,'change_productrecommendation'),(48,'Can delete Product recommendation',16,'delete_productrecommendation'),(49,'Can add Product attribute',17,'add_productattribute'),(50,'Can change Product attribute',17,'change_productattribute'),(51,'Can delete Product attribute',17,'delete_productattribute'),(52,'Can add Attribute option group',18,'add_attributeoptiongroup'),(53,'Can change Attribute option group',18,'change_attributeoptiongroup'),(54,'Can delete Attribute option group',18,'delete_attributeoptiongroup'),(55,'Can add Product image',19,'add_productimage'),(56,'Can change Product image',19,'change_productimage'),(57,'Can delete Product image',19,'delete_productimage'),(58,'Can add Product attribute value',20,'add_productattributevalue'),(59,'Can change Product attribute value',20,'change_productattributevalue'),(60,'Can delete Product attribute value',20,'delete_productattributevalue'),(61,'Can add Product category',21,'add_productcategory'),(62,'Can change Product category',21,'change_productcategory'),(63,'Can delete Product category',21,'delete_productcategory'),(64,'Can add historical Product attribute value',22,'add_historicalproductattributevalue'),(65,'Can change historical Product attribute value',22,'change_historicalproductattributevalue'),(66,'Can delete historical Product attribute value',22,'delete_historicalproductattributevalue'),(67,'Can add historical Product',23,'add_historicalproduct'),(68,'Can change historical Product',23,'change_historicalproduct'),(69,'Can delete historical Product',23,'delete_historicalproduct'),(70,'Can add User product view',24,'add_userproductview'),(71,'Can change User product view',24,'change_userproductview'),(72,'Can delete User product view',24,'delete_userproductview'),(73,'Can add User record',25,'add_userrecord'),(74,'Can change User record',25,'change_userrecord'),(75,'Can delete User record',25,'delete_userrecord'),(76,'Can add User search query',26,'add_usersearch'),(77,'Can change User search query',26,'change_usersearch'),(78,'Can delete User search query',26,'delete_usersearch'),(79,'Can add Product record',27,'add_productrecord'),(80,'Can change Product record',27,'change_productrecord'),(81,'Can delete Product record',27,'delete_productrecord'),(82,'Can add sample',28,'add_sample'),(83,'Can change sample',28,'change_sample'),(84,'Can delete sample',28,'delete_sample'),(85,'Can add switch',29,'add_switch'),(86,'Can change switch',29,'change_switch'),(87,'Can delete switch',29,'delete_switch'),(88,'Can add flag',30,'add_flag'),(89,'Can change flag',30,'change_flag'),(90,'Can delete flag',30,'delete_flag'),(91,'Can add site',31,'add_site'),(92,'Can change site',31,'change_site'),(93,'Can delete site',31,'delete_site'),(94,'Can add historical Stock record',32,'add_historicalstockrecord'),(95,'Can change historical Stock record',32,'change_historicalstockrecord'),(96,'Can delete historical Stock record',32,'delete_historicalstockrecord'),(97,'Can add Partner',33,'add_partner'),(98,'Can change Partner',33,'change_partner'),(99,'Can delete Partner',33,'delete_partner'),(100,'Can add Partner address',34,'add_partneraddress'),(101,'Can change Partner address',34,'change_partneraddress'),(102,'Can delete Partner address',34,'delete_partneraddress'),(103,'Can add Stock record',35,'add_stockrecord'),(104,'Can change Stock record',35,'change_stockrecord'),(105,'Can delete Stock record',35,'delete_stockrecord'),(106,'Can add Stock alert',36,'add_stockalert'),(107,'Can change Stock alert',36,'change_stockalert'),(108,'Can delete Stock alert',36,'delete_stockalert'),(109,'Can add Product alert',37,'add_productalert'),(110,'Can change Product alert',37,'change_productalert'),(111,'Can delete Product alert',37,'delete_productalert'),(112,'Can add Email',38,'add_email'),(113,'Can change Email',38,'change_email'),(114,'Can delete Email',38,'delete_email'),(115,'Can add Communication event type',39,'add_communicationeventtype'),(116,'Can change Communication event type',39,'change_communicationeventtype'),(117,'Can delete Communication event type',39,'delete_communicationeventtype'),(118,'Can add Notification',40,'add_notification'),(119,'Can change Notification',40,'change_notification'),(120,'Can delete Notification',40,'delete_notification'),(121,'Can add basket attribute',41,'add_basketattribute'),(122,'Can change basket attribute',41,'change_basketattribute'),(123,'Can delete basket attribute',41,'delete_basketattribute'),(124,'Can add basket attribute type',42,'add_basketattributetype'),(125,'Can change basket attribute type',42,'change_basketattributetype'),(126,'Can delete basket attribute type',42,'delete_basketattributetype'),(127,'Can add Basket',43,'add_basket'),(128,'Can change Basket',43,'change_basket'),(129,'Can delete Basket',43,'delete_basket'),(130,'Can add Basket line',44,'add_line'),(131,'Can change Basket line',44,'change_line'),(132,'Can delete Basket line',44,'delete_line'),(133,'Can add Line attribute',45,'add_lineattribute'),(134,'Can change Line attribute',45,'change_lineattribute'),(135,'Can delete Line attribute',45,'delete_lineattribute'),(136,'Can add Line Price',46,'add_lineprice'),(137,'Can change Line Price',46,'change_lineprice'),(138,'Can delete Line Price',46,'delete_lineprice'),(139,'Can add Shipping address',47,'add_shippingaddress'),(140,'Can change Shipping address',47,'change_shippingaddress'),(141,'Can delete Shipping address',47,'delete_shippingaddress'),(142,'Can add Billing address',48,'add_billingaddress'),(143,'Can change Billing address',48,'change_billingaddress'),(144,'Can delete Billing address',48,'delete_billingaddress'),(145,'Can add Shipping Event',49,'add_shippingevent'),(146,'Can change Shipping Event',49,'change_shippingevent'),(147,'Can delete Shipping Event',49,'delete_shippingevent'),(148,'Can add Order Line',50,'add_line'),(149,'Can change Order Line',50,'change_line'),(150,'Can delete Order Line',50,'delete_line'),(151,'Can add Payment Event',51,'add_paymentevent'),(152,'Can change Payment Event',51,'change_paymentevent'),(153,'Can delete Payment Event',51,'delete_paymentevent'),(154,'Can add Communication Event',52,'add_communicationevent'),(155,'Can change Communication Event',52,'change_communicationevent'),(156,'Can delete Communication Event',52,'delete_communicationevent'),(157,'Can add Order Note',53,'add_ordernote'),(158,'Can change Order Note',53,'change_ordernote'),(159,'Can delete Order Note',53,'delete_ordernote'),(160,'Can add Order',54,'add_order'),(161,'Can change Order',54,'change_order'),(162,'Can delete Order',54,'delete_order'),(163,'Can add Payment Event Quantity',55,'add_paymenteventquantity'),(164,'Can change Payment Event Quantity',55,'change_paymenteventquantity'),(165,'Can delete Payment Event Quantity',55,'delete_paymenteventquantity'),(166,'Can add Shipping Event Type',56,'add_shippingeventtype'),(167,'Can change Shipping Event Type',56,'change_shippingeventtype'),(168,'Can delete Shipping Event Type',56,'delete_shippingeventtype'),(169,'Can add Shipping Event Quantity',57,'add_shippingeventquantity'),(170,'Can change Shipping Event Quantity',57,'change_shippingeventquantity'),(171,'Can delete Shipping Event Quantity',57,'delete_shippingeventquantity'),(172,'Can add Payment Event Type',58,'add_paymenteventtype'),(173,'Can change Payment Event Type',58,'change_paymenteventtype'),(174,'Can delete Payment Event Type',58,'delete_paymenteventtype'),(175,'Can add Line Attribute',59,'add_lineattribute'),(176,'Can change Line Attribute',59,'change_lineattribute'),(177,'Can delete Line Attribute',59,'delete_lineattribute'),(178,'Can add Order Discount',60,'add_orderdiscount'),(179,'Can change Order Discount',60,'change_orderdiscount'),(180,'Can delete Order Discount',60,'delete_orderdiscount'),(181,'Can add range product',61,'add_rangeproduct'),(182,'Can change range product',61,'change_rangeproduct'),(183,'Can delete range product',61,'delete_rangeproduct'),(184,'Can add Benefit',62,'add_benefit'),(185,'Can change Benefit',62,'change_benefit'),(186,'Can delete Benefit',62,'delete_benefit'),(187,'Can add Multibuy discount benefit',62,'add_multibuydiscountbenefit'),(188,'Can change Multibuy discount benefit',62,'change_multibuydiscountbenefit'),(189,'Can delete Multibuy discount benefit',62,'delete_multibuydiscountbenefit'),(190,'Can add Range',63,'add_range'),(191,'Can change Range',63,'change_range'),(192,'Can delete Range',63,'delete_range'),(193,'Can add Condition',64,'add_condition'),(194,'Can change Condition',64,'change_condition'),(195,'Can delete Condition',64,'delete_condition'),(196,'Can add shipping benefit',62,'add_shippingbenefit'),(197,'Can change shipping benefit',62,'change_shippingbenefit'),(198,'Can delete shipping benefit',62,'delete_shippingbenefit'),(199,'Can add Shipping percentage discount benefit',62,'add_shippingpercentagediscountbenefit'),(200,'Can change Shipping percentage discount benefit',62,'change_shippingpercentagediscountbenefit'),(201,'Can delete Shipping percentage discount benefit',62,'delete_shippingpercentagediscountbenefit'),(202,'Can add Conditional offer',65,'add_conditionaloffer'),(203,'Can change Conditional offer',65,'change_conditionaloffer'),(204,'Can delete Conditional offer',65,'delete_conditionaloffer'),(205,'Can add Shipping absolute discount benefit',62,'add_shippingabsolutediscountbenefit'),(206,'Can change Shipping absolute discount benefit',62,'change_shippingabsolutediscountbenefit'),(207,'Can delete Shipping absolute discount benefit',62,'delete_shippingabsolutediscountbenefit'),(208,'Can add Percentage discount benefit',62,'add_percentagediscountbenefit'),(209,'Can change Percentage discount benefit',62,'change_percentagediscountbenefit'),(210,'Can delete Percentage discount benefit',62,'delete_percentagediscountbenefit'),(211,'Can add Absolute discount benefit',62,'add_absolutediscountbenefit'),(212,'Can change Absolute discount benefit',62,'change_absolutediscountbenefit'),(213,'Can delete Absolute discount benefit',62,'delete_absolutediscountbenefit'),(214,'Can add Coverage Condition',64,'add_coveragecondition'),(215,'Can change Coverage Condition',64,'change_coveragecondition'),(216,'Can delete Coverage Condition',64,'delete_coveragecondition'),(217,'Can add Range Product Uploaded File',66,'add_rangeproductfileupload'),(218,'Can change Range Product Uploaded File',66,'change_rangeproductfileupload'),(219,'Can delete Range Product Uploaded File',66,'delete_rangeproductfileupload'),(220,'Can add Fixed price benefit',62,'add_fixedpricebenefit'),(221,'Can change Fixed price benefit',62,'change_fixedpricebenefit'),(222,'Can delete Fixed price benefit',62,'delete_fixedpricebenefit'),(223,'Can add Fixed price shipping benefit',62,'add_shippingfixedpricebenefit'),(224,'Can change Fixed price shipping benefit',62,'change_shippingfixedpricebenefit'),(225,'Can delete Fixed price shipping benefit',62,'delete_shippingfixedpricebenefit'),(226,'Can add Value condition',64,'add_valuecondition'),(227,'Can change Value condition',64,'change_valuecondition'),(228,'Can delete Value condition',64,'delete_valuecondition'),(229,'Can add Count condition',64,'add_countcondition'),(230,'Can change Count condition',64,'change_countcondition'),(231,'Can delete Count condition',64,'delete_countcondition'),(232,'Can add Voucher Application',67,'add_voucherapplication'),(233,'Can change Voucher Application',67,'change_voucherapplication'),(234,'Can delete Voucher Application',67,'delete_voucherapplication'),(235,'Can add Voucher',68,'add_voucher'),(236,'Can change Voucher',68,'change_voucher'),(237,'Can delete Voucher',68,'delete_voucher'),(238,'Can add course',69,'add_course'),(239,'Can change course',69,'change_course'),(240,'Can delete course',69,'delete_course'),(241,'Can add flat page',70,'add_flatpage'),(242,'Can change flat page',70,'change_flatpage'),(243,'Can delete flat page',70,'delete_flatpage'),(244,'Can add session',71,'add_session'),(245,'Can change session',71,'change_session'),(246,'Can delete session',71,'delete_session'),(247,'Can add nonce',72,'add_nonce'),(248,'Can change nonce',72,'change_nonce'),(249,'Can delete nonce',72,'delete_nonce'),(250,'Can add code',73,'add_code'),(251,'Can change code',73,'change_code'),(252,'Can delete code',73,'delete_code'),(253,'Can add association',74,'add_association'),(254,'Can change association',74,'change_association'),(255,'Can delete association',74,'delete_association'),(256,'Can add partial',75,'add_partial'),(257,'Can change partial',75,'change_partial'),(258,'Can delete partial',75,'delete_partial'),(259,'Can add user social auth',76,'add_usersocialauth'),(260,'Can change user social auth',76,'change_usersocialauth'),(261,'Can delete user social auth',76,'delete_usersocialauth'),(262,'Can add business client',77,'add_businessclient'),(263,'Can change business client',77,'change_businessclient'),(264,'Can delete business client',77,'delete_businessclient'),(265,'Can add historical course',78,'add_historicalcourse'),(266,'Can change historical course',78,'change_historicalcourse'),(267,'Can delete historical course',78,'delete_historicalcourse'),(268,'Can add historical invoice',79,'add_historicalinvoice'),(269,'Can change historical invoice',79,'change_historicalinvoice'),(270,'Can delete historical invoice',79,'delete_historicalinvoice'),(271,'Can add invoice',80,'add_invoice'),(272,'Can change invoice',80,'change_invoice'),(273,'Can delete invoice',80,'delete_invoice'),(274,'Can add referral',81,'add_referral'),(275,'Can change referral',81,'change_referral'),(276,'Can delete referral',81,'delete_referral'),(277,'Can add site theme',82,'add_sitetheme'),(278,'Can change site theme',82,'change_sitetheme'),(279,'Can delete site theme',82,'delete_sitetheme'),(280,'Can add historical refund line',83,'add_historicalrefundline'),(281,'Can change historical refund line',83,'change_historicalrefundline'),(282,'Can delete historical refund line',83,'delete_historicalrefundline'),(283,'Can add refund line',84,'add_refundline'),(284,'Can change refund line',84,'change_refundline'),(285,'Can delete refund line',84,'delete_refundline'),(286,'Can add refund',85,'add_refund'),(287,'Can change refund',85,'change_refund'),(288,'Can delete refund',85,'delete_refund'),(289,'Can add historical refund',86,'add_historicalrefund'),(290,'Can change historical refund',86,'change_historicalrefund'),(291,'Can delete historical refund',86,'delete_historicalrefund'),(292,'Can add Weight-based Shipping Method',87,'add_weightbased'),(293,'Can change Weight-based Shipping Method',87,'change_weightbased'),(294,'Can delete Weight-based Shipping Method',87,'delete_weightbased'),(295,'Can add Order and Item Charge',88,'add_orderanditemcharges'),(296,'Can change Order and Item Charge',88,'change_orderanditemcharges'),(297,'Can delete Order and Item Charge',88,'delete_orderanditemcharges'),(298,'Can add Weight Band',89,'add_weightband'),(299,'Can change Weight Band',89,'change_weightband'),(300,'Can delete Weight Band',89,'delete_weightband'),(301,'Can add Vote',90,'add_vote'),(302,'Can change Vote',90,'change_vote'),(303,'Can delete Vote',90,'delete_vote'),(304,'Can add Product review',91,'add_productreview'),(305,'Can change Product review',91,'change_productreview'),(306,'Can delete Product review',91,'delete_productreview'),(307,'Can add paypal web profile',92,'add_paypalwebprofile'),(308,'Can change paypal web profile',92,'change_paypalwebprofile'),(309,'Can delete paypal web profile',92,'delete_paypalwebprofile'),(310,'Can add Paypal Processor Configuration',93,'add_paypalprocessorconfiguration'),(311,'Can change Paypal Processor Configuration',93,'change_paypalprocessorconfiguration'),(312,'Can delete Paypal Processor Configuration',93,'delete_paypalprocessorconfiguration'),(313,'Can add Bankcard',94,'add_bankcard'),(314,'Can change Bankcard',94,'change_bankcard'),(315,'Can delete Bankcard',94,'delete_bankcard'),(316,'Can add Payment Processor Response',95,'add_paymentprocessorresponse'),(317,'Can change Payment Processor Response',95,'change_paymentprocessorresponse'),(318,'Can delete Payment Processor Response',95,'delete_paymentprocessorresponse'),(319,'Can add Transaction',96,'add_transaction'),(320,'Can change Transaction',96,'change_transaction'),(321,'Can delete Transaction',96,'delete_transaction'),(322,'Can add Source Type',97,'add_sourcetype'),(323,'Can change Source Type',97,'change_sourcetype'),(324,'Can delete Source Type',97,'delete_sourcetype'),(325,'Can add SDN Check Failure',98,'add_sdncheckfailure'),(326,'Can change SDN Check Failure',98,'change_sdncheckfailure'),(327,'Can delete SDN Check Failure',98,'delete_sdncheckfailure'),(328,'Can add Source',99,'add_source'),(329,'Can change Source',99,'change_source'),(330,'Can delete Source',99,'delete_source'),(331,'Can add historical Order',111,'add_historicalorder'),(332,'Can change historical Order',111,'change_historicalorder'),(333,'Can delete historical Order',111,'delete_historicalorder'),(334,'Can add historical Order Line',112,'add_historicalline'),(335,'Can change historical Order Line',112,'change_historicalline'),(336,'Can delete historical Order Line',112,'delete_historicalline'),(337,'Can add Automatic product list',113,'add_automaticproductlist'),(338,'Can change Automatic product list',113,'change_automaticproductlist'),(339,'Can delete Automatic product list',113,'delete_automaticproductlist'),(340,'Can add Raw HTML',114,'add_rawhtml'),(341,'Can change Raw HTML',114,'change_rawhtml'),(342,'Can delete Raw HTML',114,'delete_rawhtml'),(343,'Can add Image',115,'add_image'),(344,'Can change Image',115,'change_image'),(345,'Can delete Image',115,'delete_image'),(346,'Can add Multi Image',116,'add_multiimage'),(347,'Can change Multi Image',116,'change_multiimage'),(348,'Can delete Multi Image',116,'delete_multiimage'),(349,'Can add Ordered product',117,'add_orderedproduct'),(350,'Can change Ordered product',117,'change_orderedproduct'),(351,'Can delete Ordered product',117,'delete_orderedproduct'),(352,'Can add Tabbed Block',118,'add_tabbedblock'),(353,'Can change Tabbed Block',118,'change_tabbedblock'),(354,'Can delete Tabbed Block',118,'delete_tabbedblock'),(355,'Can add Page Promotion',119,'add_pagepromotion'),(356,'Can change Page Promotion',119,'change_pagepromotion'),(357,'Can delete Page Promotion',119,'delete_pagepromotion'),(358,'Can add Hand Picked Product List',120,'add_handpickedproductlist'),(359,'Can change Hand Picked Product List',120,'change_handpickedproductlist'),(360,'Can delete Hand Picked Product List',120,'delete_handpickedproductlist'),(361,'Can add Ordered Product List',121,'add_orderedproductlist'),(362,'Can change Ordered Product List',121,'change_orderedproductlist'),(363,'Can delete Ordered Product List',121,'delete_orderedproductlist'),(364,'Can add Single product',122,'add_singleproduct'),(365,'Can change Single product',122,'change_singleproduct'),(366,'Can delete Single product',122,'delete_singleproduct'),(367,'Can add Keyword Promotion',123,'add_keywordpromotion'),(368,'Can change Keyword Promotion',123,'change_keywordpromotion'),(369,'Can delete Keyword Promotion',123,'delete_keywordpromotion'),(370,'Can add order line vouchers',124,'add_orderlinevouchers'),(371,'Can change order line vouchers',124,'change_orderlinevouchers'),(372,'Can delete order line vouchers',124,'delete_orderlinevouchers'),(373,'Can add coupon vouchers',125,'add_couponvouchers'),(374,'Can change coupon vouchers',125,'change_couponvouchers'),(375,'Can delete coupon vouchers',125,'delete_couponvouchers'),(376,'Can add Wish List',126,'add_wishlist'),(377,'Can change Wish List',126,'change_wishlist'),(378,'Can delete Wish List',126,'delete_wishlist'),(379,'Can add Wish list line',127,'add_line'),(380,'Can change Wish list line',127,'change_line'),(381,'Can delete Wish list line',127,'delete_line'),(382,'Can add kv store',128,'add_kvstore'),(383,'Can change kv store',128,'change_kvstore'),(384,'Can delete kv store',128,'delete_kvstore'); +INSERT INTO `auth_permission` VALUES (1,'Can add Country',1,'add_country'),(2,'Can change Country',1,'change_country'),(3,'Can delete Country',1,'delete_country'),(4,'Can view Country',1,'view_country'),(5,'Can add User address',2,'add_useraddress'),(6,'Can change User address',2,'change_useraddress'),(7,'Can delete User address',2,'delete_useraddress'),(8,'Can view User address',2,'view_useraddress'),(9,'Can add log entry',3,'add_logentry'),(10,'Can change log entry',3,'change_logentry'),(11,'Can delete log entry',3,'delete_logentry'),(12,'Can view log entry',3,'view_logentry'),(13,'Can add Product record',4,'add_productrecord'),(14,'Can change Product record',4,'change_productrecord'),(15,'Can delete Product record',4,'delete_productrecord'),(16,'Can view Product record',4,'view_productrecord'),(17,'Can add User product view',5,'add_userproductview'),(18,'Can change User product view',5,'change_userproductview'),(19,'Can delete User product view',5,'delete_userproductview'),(20,'Can view User product view',5,'view_userproductview'),(21,'Can add User record',6,'add_userrecord'),(22,'Can change User record',6,'change_userrecord'),(23,'Can delete User record',6,'delete_userrecord'),(24,'Can view User record',6,'view_userrecord'),(25,'Can add User search query',7,'add_usersearch'),(26,'Can change User search query',7,'change_usersearch'),(27,'Can delete User search query',7,'delete_usersearch'),(28,'Can view User search query',7,'view_usersearch'),(29,'Can add permission',8,'add_permission'),(30,'Can change permission',8,'change_permission'),(31,'Can delete permission',8,'delete_permission'),(32,'Can view permission',8,'view_permission'),(33,'Can add group',9,'add_group'),(34,'Can change group',9,'change_group'),(35,'Can delete group',9,'delete_group'),(36,'Can view group',9,'view_group'),(37,'Can add Basket',10,'add_basket'),(38,'Can change Basket',10,'change_basket'),(39,'Can delete Basket',10,'delete_basket'),(40,'Can view Basket',10,'view_basket'),(41,'Can add Basket line',11,'add_line'),(42,'Can change Basket line',11,'change_line'),(43,'Can delete Basket line',11,'delete_line'),(44,'Can view Basket line',11,'view_line'),(45,'Can add Line attribute',12,'add_lineattribute'),(46,'Can change Line attribute',12,'change_lineattribute'),(47,'Can delete Line attribute',12,'delete_lineattribute'),(48,'Can view Line attribute',12,'view_lineattribute'),(49,'Can add basket attribute',13,'add_basketattribute'),(50,'Can change basket attribute',13,'change_basketattribute'),(51,'Can delete basket attribute',13,'delete_basketattribute'),(52,'Can view basket attribute',13,'view_basketattribute'),(53,'Can add basket attribute type',14,'add_basketattributetype'),(54,'Can change basket attribute type',14,'change_basketattributetype'),(55,'Can delete basket attribute type',14,'delete_basketattributetype'),(56,'Can view basket attribute type',14,'view_basketattributetype'),(57,'Can add Attribute option',15,'add_attributeoption'),(58,'Can change Attribute option',15,'change_attributeoption'),(59,'Can delete Attribute option',15,'delete_attributeoption'),(60,'Can view Attribute option',15,'view_attributeoption'),(61,'Can add Attribute option group',16,'add_attributeoptiongroup'),(62,'Can change Attribute option group',16,'change_attributeoptiongroup'),(63,'Can delete Attribute option group',16,'delete_attributeoptiongroup'),(64,'Can view Attribute option group',16,'view_attributeoptiongroup'),(65,'Can add Category',17,'add_category'),(66,'Can change Category',17,'change_category'),(67,'Can delete Category',17,'delete_category'),(68,'Can view Category',17,'view_category'),(69,'Can add Option',18,'add_option'),(70,'Can change Option',18,'change_option'),(71,'Can delete Option',18,'delete_option'),(72,'Can view Option',18,'view_option'),(73,'Can add Product',19,'add_product'),(74,'Can change Product',19,'change_product'),(75,'Can delete Product',19,'delete_product'),(76,'Can view Product',19,'view_product'),(77,'Can add Product attribute',20,'add_productattribute'),(78,'Can change Product attribute',20,'change_productattribute'),(79,'Can delete Product attribute',20,'delete_productattribute'),(80,'Can view Product attribute',20,'view_productattribute'),(81,'Can add Product attribute value',21,'add_productattributevalue'),(82,'Can change Product attribute value',21,'change_productattributevalue'),(83,'Can delete Product attribute value',21,'delete_productattributevalue'),(84,'Can view Product attribute value',21,'view_productattributevalue'),(85,'Can add Product category',22,'add_productcategory'),(86,'Can change Product category',22,'change_productcategory'),(87,'Can delete Product category',22,'delete_productcategory'),(88,'Can view Product category',22,'view_productcategory'),(89,'Can add Product class',23,'add_productclass'),(90,'Can change Product class',23,'change_productclass'),(91,'Can delete Product class',23,'delete_productclass'),(92,'Can view Product class',23,'view_productclass'),(93,'Can add Product image',24,'add_productimage'),(94,'Can change Product image',24,'change_productimage'),(95,'Can delete Product image',24,'delete_productimage'),(96,'Can view Product image',24,'view_productimage'),(97,'Can add Product recommendation',25,'add_productrecommendation'),(98,'Can change Product recommendation',25,'change_productrecommendation'),(99,'Can delete Product recommendation',25,'delete_productrecommendation'),(100,'Can view Product recommendation',25,'view_productrecommendation'),(101,'Can add catalog',26,'add_catalog'),(102,'Can change catalog',26,'change_catalog'),(103,'Can delete catalog',26,'delete_catalog'),(104,'Can view catalog',26,'view_catalog'),(105,'Can add historical Product',27,'add_historicalproduct'),(106,'Can change historical Product',27,'change_historicalproduct'),(107,'Can delete historical Product',27,'delete_historicalproduct'),(108,'Can view historical Product',27,'view_historicalproduct'),(109,'Can add historical Product attribute value',28,'add_historicalproductattributevalue'),(110,'Can change historical Product attribute value',28,'change_historicalproductattributevalue'),(111,'Can delete historical Product attribute value',28,'delete_historicalproductattributevalue'),(112,'Can view historical Product attribute value',28,'view_historicalproductattributevalue'),(113,'Can add historical Category',29,'add_historicalcategory'),(114,'Can change historical Category',29,'change_historicalcategory'),(115,'Can delete historical Category',29,'delete_historicalcategory'),(116,'Can view historical Category',29,'view_historicalcategory'),(117,'Can add historical Option',30,'add_historicaloption'),(118,'Can change historical Option',30,'change_historicaloption'),(119,'Can delete historical Option',30,'delete_historicaloption'),(120,'Can view historical Option',30,'view_historicaloption'),(121,'Can add historical Product attribute',31,'add_historicalproductattribute'),(122,'Can change historical Product attribute',31,'change_historicalproductattribute'),(123,'Can delete historical Product attribute',31,'delete_historicalproductattribute'),(124,'Can view historical Product attribute',31,'view_historicalproductattribute'),(125,'Can add historical Product category',32,'add_historicalproductcategory'),(126,'Can change historical Product category',32,'change_historicalproductcategory'),(127,'Can delete historical Product category',32,'delete_historicalproductcategory'),(128,'Can view historical Product category',32,'view_historicalproductcategory'),(129,'Can add historical Product class',33,'add_historicalproductclass'),(130,'Can change historical Product class',33,'change_historicalproductclass'),(131,'Can delete historical Product class',33,'delete_historicalproductclass'),(132,'Can view historical Product class',33,'view_historicalproductclass'),(133,'Can add content type',34,'add_contenttype'),(134,'Can change content type',34,'change_contenttype'),(135,'Can delete content type',34,'delete_contenttype'),(136,'Can view content type',34,'view_contenttype'),(137,'Can add user',35,'add_user'),(138,'Can change user',35,'change_user'),(139,'Can delete user',35,'delete_user'),(140,'Can view user',35,'view_user'),(141,'Can add site configuration',36,'add_siteconfiguration'),(142,'Can change site configuration',36,'change_siteconfiguration'),(143,'Can delete site configuration',36,'delete_siteconfiguration'),(144,'Can view site configuration',36,'view_siteconfiguration'),(145,'Can add user',37,'add_client'),(146,'Can change user',37,'change_client'),(147,'Can delete user',37,'delete_client'),(148,'Can view user',37,'view_client'),(149,'Can add course',38,'add_course'),(150,'Can change course',38,'change_course'),(151,'Can delete course',38,'delete_course'),(152,'Can view course',38,'view_course'),(153,'Can add Communication event type',39,'add_communicationeventtype'),(154,'Can change Communication event type',39,'change_communicationeventtype'),(155,'Can delete Communication event type',39,'delete_communicationeventtype'),(156,'Can view Communication event type',39,'view_communicationeventtype'),(157,'Can add Email',40,'add_email'),(158,'Can change Email',40,'change_email'),(159,'Can delete Email',40,'delete_email'),(160,'Can view Email',40,'view_email'),(161,'Can add Notification',41,'add_notification'),(162,'Can change Notification',41,'change_notification'),(163,'Can delete Notification',41,'delete_notification'),(164,'Can view Notification',41,'view_notification'),(165,'Can add Product alert',42,'add_productalert'),(166,'Can change Product alert',42,'change_productalert'),(167,'Can delete Product alert',42,'delete_productalert'),(168,'Can view Product alert',42,'view_productalert'),(169,'Can add Benefit',43,'add_benefit'),(170,'Can change Benefit',43,'change_benefit'),(171,'Can delete Benefit',43,'delete_benefit'),(172,'Can view Benefit',43,'view_benefit'),(173,'Can add Condition',44,'add_condition'),(174,'Can change Condition',44,'change_condition'),(175,'Can delete Condition',44,'delete_condition'),(176,'Can view Condition',44,'view_condition'),(177,'Can add Conditional offer',45,'add_conditionaloffer'),(178,'Can change Conditional offer',45,'change_conditionaloffer'),(179,'Can delete Conditional offer',45,'delete_conditionaloffer'),(180,'Can view Conditional offer',45,'view_conditionaloffer'),(181,'Can add Range',46,'add_range'),(182,'Can change Range',46,'change_range'),(183,'Can delete Range',46,'delete_range'),(184,'Can view Range',46,'view_range'),(185,'Can add range product',47,'add_rangeproduct'),(186,'Can change range product',47,'change_rangeproduct'),(187,'Can delete range product',47,'delete_rangeproduct'),(188,'Can view range product',47,'view_rangeproduct'),(189,'Can add Range Product Uploaded File',48,'add_rangeproductfileupload'),(190,'Can change Range Product Uploaded File',48,'change_rangeproductfileupload'),(191,'Can delete Range Product Uploaded File',48,'delete_rangeproductfileupload'),(192,'Can view Range Product Uploaded File',48,'view_rangeproductfileupload'),(193,'Can add Absolute discount benefit',49,'add_absolutediscountbenefit'),(194,'Can change Absolute discount benefit',49,'change_absolutediscountbenefit'),(195,'Can delete Absolute discount benefit',49,'delete_absolutediscountbenefit'),(196,'Can view Absolute discount benefit',49,'view_absolutediscountbenefit'),(197,'Can add Count condition',50,'add_countcondition'),(198,'Can change Count condition',50,'change_countcondition'),(199,'Can delete Count condition',50,'delete_countcondition'),(200,'Can view Count condition',50,'view_countcondition'),(201,'Can add Coverage Condition',51,'add_coveragecondition'),(202,'Can change Coverage Condition',51,'change_coveragecondition'),(203,'Can delete Coverage Condition',51,'delete_coveragecondition'),(204,'Can view Coverage Condition',51,'view_coveragecondition'),(205,'Can add Fixed price benefit',52,'add_fixedpricebenefit'),(206,'Can change Fixed price benefit',52,'change_fixedpricebenefit'),(207,'Can delete Fixed price benefit',52,'delete_fixedpricebenefit'),(208,'Can view Fixed price benefit',52,'view_fixedpricebenefit'),(209,'Can add Multibuy discount benefit',53,'add_multibuydiscountbenefit'),(210,'Can change Multibuy discount benefit',53,'change_multibuydiscountbenefit'),(211,'Can delete Multibuy discount benefit',53,'delete_multibuydiscountbenefit'),(212,'Can view Multibuy discount benefit',53,'view_multibuydiscountbenefit'),(213,'Can add Percentage discount benefit',54,'add_percentagediscountbenefit'),(214,'Can change Percentage discount benefit',54,'change_percentagediscountbenefit'),(215,'Can delete Percentage discount benefit',54,'delete_percentagediscountbenefit'),(216,'Can view Percentage discount benefit',54,'view_percentagediscountbenefit'),(217,'Can add shipping benefit',55,'add_shippingbenefit'),(218,'Can change shipping benefit',55,'change_shippingbenefit'),(219,'Can delete shipping benefit',55,'delete_shippingbenefit'),(220,'Can view shipping benefit',55,'view_shippingbenefit'),(221,'Can add Shipping absolute discount benefit',56,'add_shippingabsolutediscountbenefit'),(222,'Can change Shipping absolute discount benefit',56,'change_shippingabsolutediscountbenefit'),(223,'Can delete Shipping absolute discount benefit',56,'delete_shippingabsolutediscountbenefit'),(224,'Can view Shipping absolute discount benefit',56,'view_shippingabsolutediscountbenefit'),(225,'Can add Fixed price shipping benefit',57,'add_shippingfixedpricebenefit'),(226,'Can change Fixed price shipping benefit',57,'change_shippingfixedpricebenefit'),(227,'Can delete Fixed price shipping benefit',57,'delete_shippingfixedpricebenefit'),(228,'Can view Fixed price shipping benefit',57,'view_shippingfixedpricebenefit'),(229,'Can add Shipping percentage discount benefit',58,'add_shippingpercentagediscountbenefit'),(230,'Can change Shipping percentage discount benefit',58,'change_shippingpercentagediscountbenefit'),(231,'Can delete Shipping percentage discount benefit',58,'delete_shippingpercentagediscountbenefit'),(232,'Can view Shipping percentage discount benefit',58,'view_shippingpercentagediscountbenefit'),(233,'Can add Value condition',59,'add_valuecondition'),(234,'Can change Value condition',59,'change_valuecondition'),(235,'Can delete Value condition',59,'delete_valuecondition'),(236,'Can view Value condition',59,'view_valuecondition'),(237,'Can add Billing address',60,'add_billingaddress'),(238,'Can change Billing address',60,'change_billingaddress'),(239,'Can delete Billing address',60,'delete_billingaddress'),(240,'Can view Billing address',60,'view_billingaddress'),(241,'Can add Communication Event',61,'add_communicationevent'),(242,'Can change Communication Event',61,'change_communicationevent'),(243,'Can delete Communication Event',61,'delete_communicationevent'),(244,'Can view Communication Event',61,'view_communicationevent'),(245,'Can add Order Line',62,'add_line'),(246,'Can change Order Line',62,'change_line'),(247,'Can delete Order Line',62,'delete_line'),(248,'Can view Order Line',62,'view_line'),(249,'Can add Line Attribute',63,'add_lineattribute'),(250,'Can change Line Attribute',63,'change_lineattribute'),(251,'Can delete Line Attribute',63,'delete_lineattribute'),(252,'Can view Line Attribute',63,'view_lineattribute'),(253,'Can add Line Price',64,'add_lineprice'),(254,'Can change Line Price',64,'change_lineprice'),(255,'Can delete Line Price',64,'delete_lineprice'),(256,'Can view Line Price',64,'view_lineprice'),(257,'Can add Order',65,'add_order'),(258,'Can change Order',65,'change_order'),(259,'Can delete Order',65,'delete_order'),(260,'Can view Order',65,'view_order'),(261,'Can add Order Discount',66,'add_orderdiscount'),(262,'Can change Order Discount',66,'change_orderdiscount'),(263,'Can delete Order Discount',66,'delete_orderdiscount'),(264,'Can view Order Discount',66,'view_orderdiscount'),(265,'Can add Order Note',67,'add_ordernote'),(266,'Can change Order Note',67,'change_ordernote'),(267,'Can delete Order Note',67,'delete_ordernote'),(268,'Can view Order Note',67,'view_ordernote'),(269,'Can add Payment Event',68,'add_paymentevent'),(270,'Can change Payment Event',68,'change_paymentevent'),(271,'Can delete Payment Event',68,'delete_paymentevent'),(272,'Can view Payment Event',68,'view_paymentevent'),(273,'Can add Payment Event Quantity',69,'add_paymenteventquantity'),(274,'Can change Payment Event Quantity',69,'change_paymenteventquantity'),(275,'Can delete Payment Event Quantity',69,'delete_paymenteventquantity'),(276,'Can view Payment Event Quantity',69,'view_paymenteventquantity'),(277,'Can add Payment Event Type',70,'add_paymenteventtype'),(278,'Can change Payment Event Type',70,'change_paymenteventtype'),(279,'Can delete Payment Event Type',70,'delete_paymenteventtype'),(280,'Can view Payment Event Type',70,'view_paymenteventtype'),(281,'Can add Shipping address',71,'add_shippingaddress'),(282,'Can change Shipping address',71,'change_shippingaddress'),(283,'Can delete Shipping address',71,'delete_shippingaddress'),(284,'Can view Shipping address',71,'view_shippingaddress'),(285,'Can add Shipping Event',72,'add_shippingevent'),(286,'Can change Shipping Event',72,'change_shippingevent'),(287,'Can delete Shipping Event',72,'delete_shippingevent'),(288,'Can view Shipping Event',72,'view_shippingevent'),(289,'Can add Shipping Event Quantity',73,'add_shippingeventquantity'),(290,'Can change Shipping Event Quantity',73,'change_shippingeventquantity'),(291,'Can delete Shipping Event Quantity',73,'delete_shippingeventquantity'),(292,'Can view Shipping Event Quantity',73,'view_shippingeventquantity'),(293,'Can add Shipping Event Type',74,'add_shippingeventtype'),(294,'Can change Shipping Event Type',74,'change_shippingeventtype'),(295,'Can delete Shipping Event Type',74,'delete_shippingeventtype'),(296,'Can view Shipping Event Type',74,'view_shippingeventtype'),(297,'Can add Partner',75,'add_partner'),(298,'Can change Partner',75,'change_partner'),(299,'Can delete Partner',75,'delete_partner'),(300,'Can view Partner',75,'view_partner'),(301,'Can add Partner address',76,'add_partneraddress'),(302,'Can change Partner address',76,'change_partneraddress'),(303,'Can delete Partner address',76,'delete_partneraddress'),(304,'Can view Partner address',76,'view_partneraddress'),(305,'Can add Stock alert',77,'add_stockalert'),(306,'Can change Stock alert',77,'change_stockalert'),(307,'Can delete Stock alert',77,'delete_stockalert'),(308,'Can view Stock alert',77,'view_stockalert'),(309,'Can add Stock record',78,'add_stockrecord'),(310,'Can change Stock record',78,'change_stockrecord'),(311,'Can delete Stock record',78,'delete_stockrecord'),(312,'Can view Stock record',78,'view_stockrecord'),(313,'Can add site',79,'add_site'),(314,'Can change site',79,'change_site'),(315,'Can delete site',79,'delete_site'),(316,'Can view site',79,'view_site'),(317,'Can add Voucher',80,'add_voucher'),(318,'Can change Voucher',80,'change_voucher'),(319,'Can delete Voucher',80,'delete_voucher'),(320,'Can view Voucher',80,'view_voucher'),(321,'Can add Voucher Application',81,'add_voucherapplication'),(322,'Can change Voucher Application',81,'change_voucherapplication'),(323,'Can delete Voucher Application',81,'delete_voucherapplication'),(324,'Can view Voucher Application',81,'view_voucherapplication'),(325,'Can add flag',82,'add_flag'),(326,'Can change flag',82,'change_flag'),(327,'Can delete flag',82,'delete_flag'),(328,'Can view flag',82,'view_flag'),(329,'Can add sample',83,'add_sample'),(330,'Can change sample',83,'change_sample'),(331,'Can delete sample',83,'delete_sample'),(332,'Can view sample',83,'view_sample'),(333,'Can add switch',84,'add_switch'),(334,'Can change switch',84,'change_switch'),(335,'Can delete switch',84,'delete_switch'),(336,'Can view switch',84,'view_switch'),(337,'Can add flat page',85,'add_flatpage'),(338,'Can change flat page',85,'change_flatpage'),(339,'Can delete flat page',85,'delete_flatpage'),(340,'Can view flat page',85,'view_flatpage'),(341,'Can add session',86,'add_session'),(342,'Can change session',86,'change_session'),(343,'Can delete session',86,'delete_session'),(344,'Can view session',86,'view_session'),(345,'Can add association',87,'add_association'),(346,'Can change association',87,'change_association'),(347,'Can delete association',87,'delete_association'),(348,'Can view association',87,'view_association'),(349,'Can add code',88,'add_code'),(350,'Can change code',88,'change_code'),(351,'Can delete code',88,'delete_code'),(352,'Can view code',88,'view_code'),(353,'Can add nonce',89,'add_nonce'),(354,'Can change nonce',89,'change_nonce'),(355,'Can delete nonce',89,'delete_nonce'),(356,'Can view nonce',89,'view_nonce'),(357,'Can add user social auth',90,'add_usersocialauth'),(358,'Can change user social auth',90,'change_usersocialauth'),(359,'Can delete user social auth',90,'delete_usersocialauth'),(360,'Can view user social auth',90,'view_usersocialauth'),(361,'Can add partial',91,'add_partial'),(362,'Can change partial',91,'change_partial'),(363,'Can delete partial',91,'delete_partial'),(364,'Can view partial',91,'view_partial'),(365,'Can add business client',92,'add_businessclient'),(366,'Can change business client',92,'change_businessclient'),(367,'Can delete business client',92,'delete_businessclient'),(368,'Can view business client',92,'view_businessclient'),(369,'Can add ecommerce feature role',93,'add_ecommercefeaturerole'),(370,'Can change ecommerce feature role',93,'change_ecommercefeaturerole'),(371,'Can delete ecommerce feature role',93,'delete_ecommercefeaturerole'),(372,'Can view ecommerce feature role',93,'view_ecommercefeaturerole'),(373,'Can add ecommerce feature role assignment',94,'add_ecommercefeatureroleassignment'),(374,'Can change ecommerce feature role assignment',94,'change_ecommercefeatureroleassignment'),(375,'Can delete ecommerce feature role assignment',94,'delete_ecommercefeatureroleassignment'),(376,'Can view ecommerce feature role assignment',94,'view_ecommercefeatureroleassignment'),(377,'Can add historical business client',95,'add_historicalbusinessclient'),(378,'Can change historical business client',95,'change_historicalbusinessclient'),(379,'Can delete historical business client',95,'delete_historicalbusinessclient'),(380,'Can view historical business client',95,'view_historicalbusinessclient'),(381,'Can add historical course',96,'add_historicalcourse'),(382,'Can change historical course',96,'change_historicalcourse'),(383,'Can delete historical course',96,'delete_historicalcourse'),(384,'Can view historical course',96,'view_historicalcourse'),(385,'Can add invoice',97,'add_invoice'),(386,'Can change invoice',97,'change_invoice'),(387,'Can delete invoice',97,'delete_invoice'),(388,'Can view invoice',97,'view_invoice'),(389,'Can add historical invoice',98,'add_historicalinvoice'),(390,'Can change historical invoice',98,'change_historicalinvoice'),(391,'Can delete historical invoice',98,'delete_historicalinvoice'),(392,'Can view historical invoice',98,'view_historicalinvoice'),(393,'Can add referral',99,'add_referral'),(394,'Can change referral',99,'change_referral'),(395,'Can delete referral',99,'delete_referral'),(396,'Can view referral',99,'view_referral'),(397,'Can add site theme',100,'add_sitetheme'),(398,'Can change site theme',100,'change_sitetheme'),(399,'Can delete site theme',100,'delete_sitetheme'),(400,'Can view site theme',100,'view_sitetheme'),(401,'Can add Order and Item Charge',101,'add_orderanditemcharges'),(402,'Can change Order and Item Charge',101,'change_orderanditemcharges'),(403,'Can delete Order and Item Charge',101,'delete_orderanditemcharges'),(404,'Can view Order and Item Charge',101,'view_orderanditemcharges'),(405,'Can add Weight Band',102,'add_weightband'),(406,'Can change Weight Band',102,'change_weightband'),(407,'Can delete Weight Band',102,'delete_weightband'),(408,'Can view Weight Band',102,'view_weightband'),(409,'Can add Weight-based Shipping Method',103,'add_weightbased'),(410,'Can change Weight-based Shipping Method',103,'change_weightbased'),(411,'Can delete Weight-based Shipping Method',103,'delete_weightbased'),(412,'Can view Weight-based Shipping Method',103,'view_weightbased'),(413,'Can add Product review',104,'add_productreview'),(414,'Can change Product review',104,'change_productreview'),(415,'Can delete Product review',104,'delete_productreview'),(416,'Can view Product review',104,'view_productreview'),(417,'Can add Vote',105,'add_vote'),(418,'Can change Vote',105,'change_vote'),(419,'Can delete Vote',105,'delete_vote'),(420,'Can view Vote',105,'view_vote'),(421,'Can add Wish list line',106,'add_line'),(422,'Can change Wish list line',106,'change_line'),(423,'Can delete Wish list line',106,'delete_line'),(424,'Can view Wish list line',106,'view_line'),(425,'Can add Wish List',107,'add_wishlist'),(426,'Can change Wish List',107,'change_wishlist'),(427,'Can delete Wish List',107,'delete_wishlist'),(428,'Can view Wish List',107,'view_wishlist'),(429,'Can add refund',108,'add_refund'),(430,'Can change refund',108,'change_refund'),(431,'Can delete refund',108,'delete_refund'),(432,'Can view refund',108,'view_refund'),(433,'Can add refund line',109,'add_refundline'),(434,'Can change refund line',109,'change_refundline'),(435,'Can delete refund line',109,'delete_refundline'),(436,'Can view refund line',109,'view_refundline'),(437,'Can add historical refund',110,'add_historicalrefund'),(438,'Can change historical refund',110,'change_historicalrefund'),(439,'Can delete historical refund',110,'delete_historicalrefund'),(440,'Can view historical refund',110,'view_historicalrefund'),(441,'Can add historical refund line',111,'add_historicalrefundline'),(442,'Can change historical refund line',111,'change_historicalrefundline'),(443,'Can delete historical refund line',111,'delete_historicalrefundline'),(444,'Can view historical refund line',111,'view_historicalrefundline'),(445,'Can add offer assignment',112,'add_offerassignment'),(446,'Can change offer assignment',112,'change_offerassignment'),(447,'Can delete offer assignment',112,'delete_offerassignment'),(448,'Can view offer assignment',112,'view_offerassignment'),(449,'Can add offer assignment email attempt',113,'add_offerassignmentemailattempt'),(450,'Can change offer assignment email attempt',113,'change_offerassignmentemailattempt'),(451,'Can delete offer assignment email attempt',113,'delete_offerassignmentemailattempt'),(452,'Can view offer assignment email attempt',113,'view_offerassignmentemailattempt'),(453,'Can add historical Benefit',114,'add_historicalbenefit'),(454,'Can change historical Benefit',114,'change_historicalbenefit'),(455,'Can delete historical Benefit',114,'delete_historicalbenefit'),(456,'Can view historical Benefit',114,'view_historicalbenefit'),(457,'Can add historical condition',115,'add_historicalcondition'),(458,'Can change historical condition',115,'change_historicalcondition'),(459,'Can delete historical condition',115,'delete_historicalcondition'),(460,'Can view historical condition',115,'view_historicalcondition'),(461,'Can add historical Conditional offer',116,'add_historicalconditionaloffer'),(462,'Can change historical Conditional offer',116,'change_historicalconditionaloffer'),(463,'Can delete historical Conditional offer',116,'delete_historicalconditionaloffer'),(464,'Can view historical Conditional offer',116,'view_historicalconditionaloffer'),(465,'Can add historical offer assignment',117,'add_historicalofferassignment'),(466,'Can change historical offer assignment',117,'change_historicalofferassignment'),(467,'Can delete historical offer assignment',117,'delete_historicalofferassignment'),(468,'Can view historical offer assignment',117,'view_historicalofferassignment'),(469,'Can add historical Range',118,'add_historicalrange'),(470,'Can change historical Range',118,'change_historicalrange'),(471,'Can delete historical Range',118,'delete_historicalrange'),(472,'Can view historical Range',118,'view_historicalrange'),(473,'Can add historical range product',119,'add_historicalrangeproduct'),(474,'Can change historical range product',119,'change_historicalrangeproduct'),(475,'Can delete historical range product',119,'delete_historicalrangeproduct'),(476,'Can view historical range product',119,'view_historicalrangeproduct'),(477,'Can add offer assignment email templates',120,'add_offerassignmentemailtemplates'),(478,'Can change offer assignment email templates',120,'change_offerassignmentemailtemplates'),(479,'Can delete offer assignment email templates',120,'delete_offerassignmentemailtemplates'),(480,'Can view offer assignment email templates',120,'view_offerassignmentemailtemplates'),(481,'Can add offer usage email',121,'add_offerusageemail'),(482,'Can change offer usage email',121,'change_offerusageemail'),(483,'Can delete offer usage email',121,'delete_offerusageemail'),(484,'Can view offer usage email',121,'view_offerusageemail'),(485,'Can add code assignment nudge email templates',122,'add_codeassignmentnudgeemailtemplates'),(486,'Can change code assignment nudge email templates',122,'change_codeassignmentnudgeemailtemplates'),(487,'Can delete code assignment nudge email templates',122,'delete_codeassignmentnudgeemailtemplates'),(488,'Can view code assignment nudge email templates',122,'view_codeassignmentnudgeemailtemplates'),(489,'Can add code assignment nudge emails',123,'add_codeassignmentnudgeemails'),(490,'Can change code assignment nudge emails',123,'change_codeassignmentnudgeemails'),(491,'Can delete code assignment nudge emails',123,'delete_codeassignmentnudgeemails'),(492,'Can view code assignment nudge emails',123,'view_codeassignmentnudgeemails'),(493,'Can add offer assignment email sent record',124,'add_offerassignmentemailsentrecord'),(494,'Can change offer assignment email sent record',124,'change_offerassignmentemailsentrecord'),(495,'Can delete offer assignment email sent record',124,'delete_offerassignmentemailsentrecord'),(496,'Can view offer assignment email sent record',124,'view_offerassignmentemailsentrecord'),(497,'Can add historical Order Line',125,'add_historicalline'),(498,'Can change historical Order Line',125,'change_historicalline'),(499,'Can delete historical Order Line',125,'delete_historicalline'),(500,'Can view historical Order Line',125,'view_historicalline'),(501,'Can add historical Order',126,'add_historicalorder'),(502,'Can change historical Order',126,'change_historicalorder'),(503,'Can delete historical Order',126,'delete_historicalorder'),(504,'Can view historical Order',126,'view_historicalorder'),(505,'Can add manual enrollment order discount benefit',127,'add_manualenrollmentorderdiscountbenefit'),(506,'Can change manual enrollment order discount benefit',127,'change_manualenrollmentorderdiscountbenefit'),(507,'Can delete manual enrollment order discount benefit',127,'delete_manualenrollmentorderdiscountbenefit'),(508,'Can view manual enrollment order discount benefit',127,'view_manualenrollmentorderdiscountbenefit'),(509,'Can add manual enrollment order discount condition',128,'add_manualenrollmentorderdiscountcondition'),(510,'Can change manual enrollment order discount condition',128,'change_manualenrollmentorderdiscountcondition'),(511,'Can delete manual enrollment order discount condition',128,'delete_manualenrollmentorderdiscountcondition'),(512,'Can view manual enrollment order discount condition',128,'view_manualenrollmentorderdiscountcondition'),(513,'Can add historical Order Discount',129,'add_historicalorderdiscount'),(514,'Can change historical Order Discount',129,'change_historicalorderdiscount'),(515,'Can delete historical Order Discount',129,'delete_historicalorderdiscount'),(516,'Can view historical Order Discount',129,'view_historicalorderdiscount'),(517,'Can add Order Status Change',130,'add_orderstatuschange'),(518,'Can change Order Status Change',130,'change_orderstatuschange'),(519,'Can delete Order Status Change',130,'delete_orderstatuschange'),(520,'Can view Order Status Change',130,'view_orderstatuschange'),(521,'Can add mark orders status complete config',131,'add_markordersstatuscompleteconfig'),(522,'Can change mark orders status complete config',131,'change_markordersstatuscompleteconfig'),(523,'Can delete mark orders status complete config',131,'delete_markordersstatuscompleteconfig'),(524,'Can view mark orders status complete config',131,'view_markordersstatuscompleteconfig'),(525,'Can add historical Stock record',132,'add_historicalstockrecord'),(526,'Can change historical Stock record',132,'change_historicalstockrecord'),(527,'Can delete historical Stock record',132,'delete_historicalstockrecord'),(528,'Can view historical Stock record',132,'view_historicalstockrecord'),(529,'Can add historical Partner',133,'add_historicalpartner'),(530,'Can change historical Partner',133,'change_historicalpartner'),(531,'Can delete historical Partner',133,'delete_historicalpartner'),(532,'Can view historical Partner',133,'view_historicalpartner'),(533,'Can add Bankcard',134,'add_bankcard'),(534,'Can change Bankcard',134,'change_bankcard'),(535,'Can delete Bankcard',134,'delete_bankcard'),(536,'Can view Bankcard',134,'view_bankcard'),(537,'Can add Source',135,'add_source'),(538,'Can change Source',135,'change_source'),(539,'Can delete Source',135,'delete_source'),(540,'Can view Source',135,'view_source'),(541,'Can add Source Type',136,'add_sourcetype'),(542,'Can change Source Type',136,'change_sourcetype'),(543,'Can delete Source Type',136,'delete_sourcetype'),(544,'Can view Source Type',136,'view_sourcetype'),(545,'Can add Transaction',137,'add_transaction'),(546,'Can change Transaction',137,'change_transaction'),(547,'Can delete Transaction',137,'delete_transaction'),(548,'Can view Transaction',137,'view_transaction'),(549,'Can add Payment Processor Response',138,'add_paymentprocessorresponse'),(550,'Can change Payment Processor Response',138,'change_paymentprocessorresponse'),(551,'Can delete Payment Processor Response',138,'delete_paymentprocessorresponse'),(552,'Can view Payment Processor Response',138,'view_paymentprocessorresponse'),(553,'Can add paypal web profile',139,'add_paypalwebprofile'),(554,'Can change paypal web profile',139,'change_paypalwebprofile'),(555,'Can delete paypal web profile',139,'delete_paypalwebprofile'),(556,'Can view paypal web profile',139,'view_paypalwebprofile'),(557,'Can add Paypal Processor Configuration',140,'add_paypalprocessorconfiguration'),(558,'Can change Paypal Processor Configuration',140,'change_paypalprocessorconfiguration'),(559,'Can delete Paypal Processor Configuration',140,'delete_paypalprocessorconfiguration'),(560,'Can view Paypal Processor Configuration',140,'view_paypalprocessorconfiguration'),(561,'Can add SDN Check Failure',141,'add_sdncheckfailure'),(562,'Can change SDN Check Failure',141,'change_sdncheckfailure'),(563,'Can delete SDN Check Failure',141,'delete_sdncheckfailure'),(564,'Can view SDN Check Failure',141,'view_sdncheckfailure'),(565,'Can add enterprise contract metadata',142,'add_enterprisecontractmetadata'),(566,'Can change enterprise contract metadata',142,'change_enterprisecontractmetadata'),(567,'Can delete enterprise contract metadata',142,'delete_enterprisecontractmetadata'),(568,'Can view enterprise contract metadata',142,'view_enterprisecontractmetadata'),(569,'Can add sdn fallback metadata',143,'add_sdnfallbackmetadata'),(570,'Can change sdn fallback metadata',143,'change_sdnfallbackmetadata'),(571,'Can delete sdn fallback metadata',143,'delete_sdnfallbackmetadata'),(572,'Can view sdn fallback metadata',143,'view_sdnfallbackmetadata'),(573,'Can add sdn fallback data',144,'add_sdnfallbackdata'),(574,'Can change sdn fallback data',144,'change_sdnfallbackdata'),(575,'Can delete sdn fallback data',144,'delete_sdnfallbackdata'),(576,'Can view sdn fallback data',144,'view_sdnfallbackdata'),(577,'Can add coupon vouchers',145,'add_couponvouchers'),(578,'Can change coupon vouchers',145,'change_couponvouchers'),(579,'Can delete coupon vouchers',145,'delete_couponvouchers'),(580,'Can view coupon vouchers',145,'view_couponvouchers'),(581,'Can add order line vouchers',146,'add_orderlinevouchers'),(582,'Can change order line vouchers',146,'change_orderlinevouchers'),(583,'Can delete order line vouchers',146,'delete_orderlinevouchers'),(584,'Can view order line vouchers',146,'view_orderlinevouchers'),(585,'Can add VoucherSet',147,'add_voucherset'),(586,'Can change VoucherSet',147,'change_voucherset'),(587,'Can delete VoucherSet',147,'delete_voucherset'),(588,'Can view VoucherSet',147,'view_voucherset'),(589,'Can add historical Voucher Application',148,'add_historicalvoucherapplication'),(590,'Can change historical Voucher Application',148,'change_historicalvoucherapplication'),(591,'Can delete historical Voucher Application',148,'delete_historicalvoucherapplication'),(592,'Can view historical Voucher Application',148,'view_historicalvoucherapplication'),(593,'Can add kv store',149,'add_kvstore'),(594,'Can change kv store',149,'change_kvstore'),(595,'Can delete kv store',149,'delete_kvstore'),(596,'Can view kv store',149,'view_kvstore'),(597,'Can add Communication event type',150,'add_communicationeventtype'),(598,'Can change Communication event type',150,'change_communicationeventtype'),(599,'Can delete Communication event type',150,'delete_communicationeventtype'),(600,'Can view Communication event type',150,'view_communicationeventtype'),(601,'Can add Notification',151,'add_notification'),(602,'Can change Notification',151,'change_notification'),(603,'Can delete Notification',151,'delete_notification'),(604,'Can view Notification',151,'view_notification'),(605,'Can add Email',152,'add_email'),(606,'Can change Email',152,'change_email'),(607,'Can delete Email',152,'delete_email'),(608,'Can view Email',152,'view_email'),(609,'Can add template file attachment',153,'add_templatefileattachment'),(610,'Can change template file attachment',153,'change_templatefileattachment'),(611,'Can delete template file attachment',153,'delete_templatefileattachment'),(612,'Can view template file attachment',153,'view_templatefileattachment'),(613,'Can add surcharge',154,'add_surcharge'),(614,'Can change surcharge',154,'change_surcharge'),(615,'Can delete surcharge',154,'delete_surcharge'),(616,'Can view surcharge',154,'view_surcharge'),(617,'Can add IAP Processor Configuration',155,'add_iapprocessorconfiguration'),(618,'Can change IAP Processor Configuration',155,'change_iapprocessorconfiguration'),(619,'Can delete IAP Processor Configuration',155,'delete_iapprocessorconfiguration'),(620,'Can view IAP Processor Configuration',155,'view_iapprocessorconfiguration'),(621,'Can add payment processor response extension',156,'add_paymentprocessorresponseextension'),(622,'Can change payment processor response extension',156,'change_paymentprocessorresponseextension'),(623,'Can delete payment processor response extension',156,'delete_paymentprocessorresponseextension'),(624,'Can view payment processor response extension',156,'view_paymentprocessorresponseextension'); /*!40000 ALTER TABLE `auth_permission` ENABLE KEYS */; UNLOCK TABLES; @@ -337,7 +339,7 @@ CREATE TABLE `basket_basket_vouchers` ( `basket_id` int(11) NOT NULL, `voucher_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `basket_basket_vouchers_basket_id_0731eee2_uniq` (`basket_id`,`voucher_id`), + UNIQUE KEY `basket_basket_vouchers_basket_id_voucher_id_0731eee2_uniq` (`basket_id`,`voucher_id`), KEY `basket_basket_vouchers_voucher_id_c2b66981_fk_voucher_voucher_id` (`voucher_id`), CONSTRAINT `basket_basket_vouchers_basket_id_f857c2f8_fk_basket_basket_id` FOREIGN KEY (`basket_id`) REFERENCES `basket_basket` (`id`), CONSTRAINT `basket_basket_vouchers_voucher_id_c2b66981_fk_voucher_voucher_id` FOREIGN KEY (`voucher_id`) REFERENCES `voucher_voucher` (`id`) @@ -365,9 +367,9 @@ CREATE TABLE `basket_basketattribute` ( `attribute_type_id` int(11) NOT NULL, `basket_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `basket_basketattribute_basket_id_a6c168f8_uniq` (`basket_id`,`attribute_type_id`), - KEY `bask_attribute_type_id_822adc5d_fk_basket_basketattributetype_id` (`attribute_type_id`), - CONSTRAINT `bask_attribute_type_id_822adc5d_fk_basket_basketattributetype_id` FOREIGN KEY (`attribute_type_id`) REFERENCES `basket_basketattributetype` (`id`), + UNIQUE KEY `basket_basketattribute_basket_id_attribute_type_id_a6c168f8_uniq` (`basket_id`,`attribute_type_id`), + KEY `basket_basketattribu_attribute_type_id_822adc5d_fk_basket_ba` (`attribute_type_id`), + CONSTRAINT `basket_basketattribu_attribute_type_id_822adc5d_fk_basket_ba` FOREIGN KEY (`attribute_type_id`) REFERENCES `basket_basketattributetype` (`id`), CONSTRAINT `basket_basketattribute_basket_id_55c452f8_fk_basket_basket_id` FOREIGN KEY (`basket_id`) REFERENCES `basket_basket` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -392,7 +394,7 @@ CREATE TABLE `basket_basketattributetype` ( `name` varchar(128) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -401,7 +403,7 @@ CREATE TABLE `basket_basketattributetype` ( LOCK TABLES `basket_basketattributetype` WRITE; /*!40000 ALTER TABLE `basket_basketattributetype` DISABLE KEYS */; -INSERT INTO `basket_basketattributetype` VALUES (2,'bundle_identifier'),(1,'sailthru_bid'); +INSERT INTO `basket_basketattributetype` VALUES (3,'bundle_identifier'),(1,'email_opt_in'),(5,'payment_intent_id'),(2,'purchased_for_organization'),(4,'sailthru_bid'); /*!40000 ALTER TABLE `basket_basketattributetype` ENABLE KEYS */; UNLOCK TABLES; @@ -422,11 +424,14 @@ CREATE TABLE `basket_line` ( `basket_id` int(11) NOT NULL, `product_id` int(11) NOT NULL, `stockrecord_id` int(11) NOT NULL, + `date_updated` datetime(6) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `basket_line_basket_id_8977e974_uniq` (`basket_id`,`line_reference`), - KEY `basket_line_767217f5` (`line_reference`), + UNIQUE KEY `basket_line_basket_id_line_reference_8977e974_uniq` (`basket_id`,`line_reference`), + KEY `basket_line_line_reference_08e91113` (`line_reference`), KEY `basket_line_product_id_303d743e_fk_catalogue_product_id` (`product_id`), KEY `basket_line_stockrecord_id_7039d8a4_fk_partner_stockrecord_id` (`stockrecord_id`), + KEY `basket_line_date_created_eb0dfb1b` (`date_created`), + KEY `basket_line_date_updated_a74d069d` (`date_updated`), CONSTRAINT `basket_line_basket_id_b615c905_fk_basket_basket_id` FOREIGN KEY (`basket_id`) REFERENCES `basket_basket` (`id`), CONSTRAINT `basket_line_product_id_303d743e_fk_catalogue_product_id` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`), CONSTRAINT `basket_line_stockrecord_id_7039d8a4_fk_partner_stockrecord_id` FOREIGN KEY (`stockrecord_id`) REFERENCES `partner_stockrecord` (`id`) @@ -481,8 +486,8 @@ CREATE TABLE `catalogue_attributeoption` ( `option` varchar(255) NOT NULL, `group_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `catalogue_attributeoption_group_id_7a8f6c11_uniq` (`group_id`,`option`), - CONSTRAINT `catalogue_group_id_3d4a5e24_fk_catalogue_attributeoptiongroup_id` FOREIGN KEY (`group_id`) REFERENCES `catalogue_attributeoptiongroup` (`id`) + UNIQUE KEY `catalogue_attributeoption_group_id_option_7a8f6c11_uniq` (`group_id`,`option`), + CONSTRAINT `catalogue_attributeo_group_id_3d4a5e24_fk_catalogue` FOREIGN KEY (`group_id`) REFERENCES `catalogue_attributeoptiongroup` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -553,10 +558,10 @@ CREATE TABLE `catalogue_catalog_stock_records` ( `catalog_id` int(11) NOT NULL, `stockrecord_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `catalogue_catalog_stock_records_catalog_id_f363d53b_uniq` (`catalog_id`,`stockrecord_id`), - KEY `catalogue_cata_stockrecord_id_e480f401_fk_partner_stockrecord_id` (`stockrecord_id`), - CONSTRAINT `catalogue_cata_stockrecord_id_e480f401_fk_partner_stockrecord_id` FOREIGN KEY (`stockrecord_id`) REFERENCES `partner_stockrecord` (`id`), - CONSTRAINT `catalogue_catalog_st_catalog_id_8fa6c918_fk_catalogue_catalog_id` FOREIGN KEY (`catalog_id`) REFERENCES `catalogue_catalog` (`id`) + UNIQUE KEY `catalogue_catalog_stock__catalog_id_stockrecord_i_f363d53b_uniq` (`catalog_id`,`stockrecord_id`), + KEY `catalogue_catalog_st_stockrecord_id_e480f401_fk_partner_s` (`stockrecord_id`), + CONSTRAINT `catalogue_catalog_st_catalog_id_8fa6c918_fk_catalogue` FOREIGN KEY (`catalog_id`) REFERENCES `catalogue_catalog` (`id`), + CONSTRAINT `catalogue_catalog_st_stockrecord_id_e480f401_fk_partner_s` FOREIGN KEY (`stockrecord_id`) REFERENCES `partner_stockrecord` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -584,11 +589,15 @@ CREATE TABLE `catalogue_category` ( `description` longtext NOT NULL, `image` varchar(255) DEFAULT NULL, `slug` varchar(255) NOT NULL, + `ancestors_are_public` tinyint(1) NOT NULL, + `is_public` tinyint(1) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `path` (`path`), - KEY `catalogue_category_b068931c` (`name`), - KEY `catalogue_category_2dbcba41` (`slug`) -) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8; + KEY `catalogue_category_name_1f342ac2` (`name`), + KEY `catalogue_category_slug_9635febd` (`slug`), + KEY `catalogue_category_ancestors_are_public_d088d0db` (`ancestors_are_public`), + KEY `catalogue_category_is_public_ab0536be` (`is_public`) +) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -597,10 +606,291 @@ CREATE TABLE `catalogue_category` ( LOCK TABLES `catalogue_category` WRITE; /*!40000 ALTER TABLE `catalogue_category` DISABLE KEYS */; -INSERT INTO `catalogue_category` VALUES (1,'0001',1,1,'Seats','All course seats','','seats'),(2,'0002',1,15,'Coupons','All Coupons','','coupons'),(3,'00020001',2,0,'Affiliate Promotion','','','affiliate-promotion'),(4,'00020002',2,0,'Bulk Enrollment','','','bulk-enrollment'),(5,'00020003',2,0,'ConnectEd','','','connected'),(6,'00020004',2,0,'Course Promotion','','','course-promotion'),(7,'00020005',2,0,'Customer Service','','','customer-service'),(8,'00020006',2,0,'Financial Assistance','','','financial-assistance'),(9,'00020007',2,0,'Geography Promotion','','','geography-promotion'),(10,'00020008',2,0,'Marketing Partner Promotion','','','marketing-partner-promotion'),(11,'00020009',2,0,'Marketing-Other','','','marketing-other'),(12,'0002000A',2,0,'Paid Cohort','','','paid-cohort'),(13,'0002000B',2,0,'Other','','','other'),(14,'0002000C',2,0,'Retention Promotion','','','retention-promotion'),(15,'0002000D',2,0,'Services-Other','','','services-other'),(16,'0002000E',2,0,'Support-Other','','','support-other'),(17,'0002000F',2,0,'Upsell Promotion','','','upsell-promotion'),(18,'0003',1,0,'Course Entitlements','All course entitlements','','course_entitlements'),(19,'0004',1,0,'Donations','All donations','','donations'); +INSERT INTO `catalogue_category` VALUES (1,'0001',1,1,'Seats','All course seats','','seats',1,1),(2,'0002',1,27,'Coupons','All Coupons','','coupons',1,1),(3,'00020001',2,0,'Affiliate Promotion','','','affiliate-promotion',1,1),(4,'00020002',2,0,'Bulk Enrollment','','','bulk-enrollment',1,1),(5,'00020003',2,0,'ConnectEd','','','connected',1,1),(6,'00020004',2,0,'Course Promotion','','','course-promotion',1,1),(7,'00020005',2,0,'Customer Service','','','customer-service',1,1),(8,'00020006',2,0,'Financial Assistance','','','financial-assistance',1,1),(9,'00020007',2,0,'Geography Promotion','','','geography-promotion',1,1),(10,'00020008',2,0,'Marketing Partner Promotion','','','marketing-partner-promotion',1,1),(11,'00020009',2,0,'Marketing-Other','','','marketing-other',1,1),(12,'0002000A',2,0,'Paid Cohort','','','paid-cohort',1,1),(13,'0002000B',2,0,'Other','','','other',1,1),(14,'0002000C',2,0,'Retention Promotion','','','retention-promotion',1,1),(15,'0002000D',2,0,'Services-Other','','','services-other',1,1),(16,'0002000E',2,0,'Support-Other','','','support-other',1,1),(17,'0002000F',2,0,'Upsell Promotion','','','upsell-promotion',1,1),(18,'0003',1,0,'Course Entitlements','All course entitlements','','course_entitlements',1,1),(19,'0004',1,0,'Donations','All donations','','donations',1,1),(20,'0005',1,0,'Journals','All journals','','journals',1,1),(21,'0002000G',2,0,'Bulk Enrollment - Prepay','','','bulk-enrollment-prepay',1,1),(22,'0002000H',2,0,'Bulk Enrollment - Upon Redemption','','','bulk-enrollment-upon-redemption',1,1),(23,'0002000I',2,0,'Bulk Enrollment - Integration','','','bulk-enrollment-integration',1,1),(24,'0002000J',2,0,'On-Campus Learners','','','on-campus-learners',1,1),(25,'0002000K',2,0,'Partner No Rev - Prepay','','','partner-no-rev-prepay',1,1),(26,'0002000L',2,0,'Partner No Rev - Upon Redemption','','','partner-no-rev-upon-redemption',1,1),(27,'0002000M',2,0,'Security Disclosure Reward','','','security-disclosure-reward',1,1),(28,'0002000N',2,0,'edX Employee Request','','','edx-employee-request',1,1),(29,'0002000O',2,0,'Partner No Rev - RAP','','','partner-no-rev-rap',1,1),(30,'0002000P',2,0,'Partner No Rev - ORAP','','','partner-no-rev-orap',1,1),(31,'0002000Q',2,0,'B2B Affiliate Promotion','','','b2b-affiliate-promotion',1,1),(32,'0002000R',2,0,'Scholarship','','','scholarship',1,1); /*!40000 ALTER TABLE `catalogue_category` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `catalogue_historicalcategory` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `catalogue_historicalcategory` ( + `id` int(11) NOT NULL, + `path` varchar(255) NOT NULL, + `depth` int(10) unsigned NOT NULL, + `numchild` int(10) unsigned NOT NULL, + `name` varchar(255) NOT NULL, + `description` longtext NOT NULL, + `image` longtext, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `ancestors_are_public` tinyint(1) NOT NULL, + `is_public` tinyint(1) NOT NULL, + PRIMARY KEY (`history_id`), + KEY `catalogue_historical_history_user_id_584e44e9_fk_ecommerce` (`history_user_id`), + KEY `catalogue_historicalcategory_id_c46b902a` (`id`), + KEY `catalogue_historicalcategory_path_aacdec55` (`path`), + KEY `catalogue_historicalcategory_name_dfd7cbbe` (`name`), + KEY `catalogue_historicalcategory_ancestors_are_public_4bb224ba` (`ancestors_are_public`), + KEY `catalogue_historicalcategory_is_public_55b70eef` (`is_public`), + CONSTRAINT `catalogue_historical_history_user_id_584e44e9_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `catalogue_historicalcategory` +-- + +LOCK TABLES `catalogue_historicalcategory` WRITE; +/*!40000 ALTER TABLE `catalogue_historicalcategory` DISABLE KEYS */; +/*!40000 ALTER TABLE `catalogue_historicalcategory` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `catalogue_historicaloption` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `catalogue_historicaloption` ( + `id` int(11) NOT NULL, + `name` varchar(128) NOT NULL, + `type` varchar(128) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `catalogue_historical_history_user_id_38090a96_fk_ecommerce` (`history_user_id`), + KEY `catalogue_historicaloption_id_d1fe6cd6` (`id`), + CONSTRAINT `catalogue_historical_history_user_id_38090a96_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `catalogue_historicaloption` +-- + +LOCK TABLES `catalogue_historicaloption` WRITE; +/*!40000 ALTER TABLE `catalogue_historicaloption` DISABLE KEYS */; +/*!40000 ALTER TABLE `catalogue_historicaloption` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `catalogue_historicalproduct` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `catalogue_historicalproduct` ( + `id` int(11) NOT NULL, + `structure` varchar(10) NOT NULL, + `upc` varchar(64) DEFAULT NULL, + `title` varchar(255) NOT NULL, + `slug` varchar(255) NOT NULL, + `description` longtext NOT NULL, + `rating` double DEFAULT NULL, + `date_created` datetime(6) NOT NULL, + `date_updated` datetime(6) NOT NULL, + `is_discountable` tinyint(1) NOT NULL, + `expires` datetime(6) DEFAULT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `course_id` varchar(255) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `parent_id` int(11) DEFAULT NULL, + `product_class_id` int(11) DEFAULT NULL, + `is_public` tinyint(1) NOT NULL, + PRIMARY KEY (`history_id`), + KEY `catalogue_historical_history_user_id_4ea2c15a_fk_ecommerce` (`history_user_id`), + KEY `catalogue_historicalproduct_id_06ee7e8f` (`id`), + KEY `catalogue_historicalproduct_upc_db26d500` (`upc`), + KEY `catalogue_historicalproduct_slug_11827938` (`slug`), + KEY `catalogue_historicalproduct_date_updated_3b1e9108` (`date_updated`), + KEY `catalogue_historicalproduct_course_id_f51a879f` (`course_id`), + KEY `catalogue_historicalproduct_parent_id_9895554d` (`parent_id`), + KEY `catalogue_historicalproduct_product_class_id_1210a16e` (`product_class_id`), + KEY `catalogue_historicalproduct_date_created_236cc17e` (`date_created`), + KEY `catalogue_historicalproduct_is_public_e19f5cd3` (`is_public`), + CONSTRAINT `catalogue_historical_history_user_id_4ea2c15a_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `catalogue_historicalproduct` +-- + +LOCK TABLES `catalogue_historicalproduct` WRITE; +/*!40000 ALTER TABLE `catalogue_historicalproduct` DISABLE KEYS */; +INSERT INTO `catalogue_historicalproduct` VALUES (1,'parent',NULL,'','','',NULL,'2021-07-30 20:19:59.104604','2021-07-30 20:19:59.104650',1,NULL,1,'2021-07-30 20:19:59.105366',NULL,'+','course-v1:edX+DemoX+Demo_Course',NULL,NULL,1,1),(1,'parent',NULL,'Seat in edX Demonstration Course','seat-in-edx-demonstration-course','',NULL,'2021-07-30 20:19:59.104604','2021-07-30 20:19:59.112912',1,NULL,2,'2021-07-30 20:19:59.113899',NULL,'~','course-v1:edX+DemoX+Demo_Course',NULL,NULL,1,1),(2,'child',NULL,'Seat in edX Demonstration Course','seat-in-edx-demonstration-course','',NULL,'2021-07-30 20:19:59.137887','2021-07-30 20:19:59.137934',1,NULL,3,'2021-07-30 20:19:59.138571',NULL,'+','course-v1:edX+DemoX+Demo_Course',NULL,1,NULL,1),(3,'child',NULL,'Seat in edX Demonstration Course with verified certificate (and ID verification)','seat-in-edx-demonstration-course-with-verified-certificate-and-id-verification','',NULL,'2021-07-30 20:19:59.183843','2021-07-30 20:19:59.183896',1,'2022-07-30 20:19:59.064405',4,'2021-07-30 20:19:59.185592',NULL,'+','course-v1:edX+DemoX+Demo_Course',NULL,1,NULL,1),(4,'standalone',NULL,'Enrollment code for verified seat in edX Demonstration Course','enrollment-code-for-verified-seat-in-edx-demonstration-course','',NULL,'2021-07-30 20:19:59.198338','2021-07-30 20:19:59.198403',1,'2022-07-30 20:19:59.064405',5,'2021-07-30 20:19:59.199249',NULL,'+','course-v1:edX+DemoX+Demo_Course',NULL,NULL,3,1),(1,'parent',NULL,'Seat in edX Demonstration Course','seat-in-edx-demonstration-course','',NULL,'2021-07-30 20:19:59.104604','2023-02-10 18:45:44.453776',1,NULL,6,'2023-02-10 18:45:44.455621',NULL,'~','course-v1:edX+DemoX+Demo_Course',NULL,NULL,1,1),(2,'child',NULL,'Seat in edX Demonstration Course','seat-in-edx-demonstration-course','',NULL,'2021-07-30 20:19:59.137887','2023-02-10 18:45:44.530199',1,NULL,7,'2023-02-10 18:45:44.533808',NULL,'~','course-v1:edX+DemoX+Demo_Course',NULL,1,NULL,1),(3,'child',NULL,'Seat in edX Demonstration Course with verified certificate','seat-in-edx-demonstration-course-with-verified-certificate-and-id-verification','',NULL,'2021-07-30 20:19:59.183843','2023-02-10 18:45:44.595187',1,'2024-02-10 18:45:44.397877',8,'2023-02-10 18:45:44.596482',NULL,'~','course-v1:edX+DemoX+Demo_Course',NULL,1,NULL,1),(4,'standalone',NULL,'Enrollment code for verified seat in edX Demonstration Course','enrollment-code-for-verified-seat-in-edx-demonstration-course','',NULL,'2021-07-30 20:19:59.198338','2023-02-10 18:45:44.619550',1,'2022-07-30 20:19:59.064405',9,'2023-02-10 18:45:44.622680',NULL,'~','course-v1:edX+DemoX+Demo_Course',NULL,NULL,3,1),(1,'parent',NULL,'Seat in edX Demonstration Course','seat-in-edx-demonstration-course','',NULL,'2021-07-30 20:19:59.104604','2023-02-21 14:41:58.435143',1,NULL,10,'2023-02-21 14:41:58.436284',NULL,'~','course-v1:edX+DemoX+Demo_Course',NULL,NULL,1,1),(2,'child',NULL,'Seat in edX Demonstration Course','seat-in-edx-demonstration-course','',NULL,'2021-07-30 20:19:59.137887','2023-02-21 14:41:58.491359',1,NULL,11,'2023-02-21 14:41:58.493371',NULL,'~','course-v1:edX+DemoX+Demo_Course',NULL,1,NULL,1),(3,'child',NULL,'Seat in edX Demonstration Course with verified certificate','seat-in-edx-demonstration-course-with-verified-certificate-and-id-verification','',NULL,'2021-07-30 20:19:59.183843','2023-02-21 14:41:58.543609',1,'2024-02-21 14:41:58.376814',12,'2023-02-21 14:41:58.544822',NULL,'~','course-v1:edX+DemoX+Demo_Course',NULL,1,NULL,1),(4,'standalone',NULL,'Enrollment code for verified seat in edX Demonstration Course','enrollment-code-for-verified-seat-in-edx-demonstration-course','',NULL,'2021-07-30 20:19:59.198338','2023-02-21 14:41:58.566891',1,'2022-07-30 20:19:59.064405',13,'2023-02-21 14:41:58.568331',NULL,'~','course-v1:edX+DemoX+Demo_Course',NULL,NULL,3,1); +/*!40000 ALTER TABLE `catalogue_historicalproduct` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `catalogue_historicalproductattribute` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `catalogue_historicalproductattribute` ( + `id` int(11) NOT NULL, + `name` varchar(128) NOT NULL, + `code` varchar(128) NOT NULL, + `type` varchar(20) NOT NULL, + `required` tinyint(1) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `option_group_id` int(11) DEFAULT NULL, + `product_class_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `catalogue_historical_history_user_id_6aab3050_fk_ecommerce` (`history_user_id`), + KEY `catalogue_historicalproductattribute_id_4708da5b` (`id`), + KEY `catalogue_historicalproductattribute_code_972c7779` (`code`), + KEY `catalogue_historicalproductattribute_option_group_id_be14add3` (`option_group_id`), + KEY `catalogue_historicalproductattribute_product_class_id_af241c79` (`product_class_id`), + CONSTRAINT `catalogue_historical_history_user_id_6aab3050_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `catalogue_historicalproductattribute` +-- + +LOCK TABLES `catalogue_historicalproductattribute` WRITE; +/*!40000 ALTER TABLE `catalogue_historicalproductattribute` DISABLE KEYS */; +/*!40000 ALTER TABLE `catalogue_historicalproductattribute` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `catalogue_historicalproductattributevalue` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `catalogue_historicalproductattributevalue` ( + `id` int(11) NOT NULL, + `value_text` longtext, + `value_integer` int(11) DEFAULT NULL, + `value_boolean` tinyint(1) DEFAULT NULL, + `value_float` double DEFAULT NULL, + `value_richtext` longtext, + `value_date` date DEFAULT NULL, + `value_datetime` datetime(6) DEFAULT NULL, + `value_file` longtext, + `value_image` longtext, + `entity_object_id` int(10) unsigned DEFAULT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `attribute_id` int(11) DEFAULT NULL, + `entity_content_type_id` int(11) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `product_id` int(11) DEFAULT NULL, + `value_option_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `catalogue_historical_history_user_id_34610f3f_fk_ecommerce` (`history_user_id`), + KEY `catalogue_historicalproductattributevalue_id_a19c2a60` (`id`), + KEY `catalogue_historicalproductattributevalue_attribute_id_c5781bb7` (`attribute_id`), + KEY `catalogue_historicalproduct_entity_content_type_id_ad5d20d5` (`entity_content_type_id`), + KEY `catalogue_historicalproductattributevalue_product_id_2903d7cb` (`product_id`), + KEY `catalogue_historicalproduct_value_option_id_99818585` (`value_option_id`), + KEY `catalogue_historicalproductattributevalue_value_boolean_79128283` (`value_boolean`), + KEY `catalogue_historicalproductattributevalue_value_date_aad9b6b2` (`value_date`), + KEY `catalogue_historicalproduct_value_datetime_e61e4058` (`value_datetime`), + KEY `catalogue_historicalproductattributevalue_value_float_79557818` (`value_float`), + KEY `catalogue_historicalproductattributevalue_value_integer_5e216649` (`value_integer`), + CONSTRAINT `catalogue_historical_history_user_id_34610f3f_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `catalogue_historicalproductattributevalue` +-- + +LOCK TABLES `catalogue_historicalproductattributevalue` WRITE; +/*!40000 ALTER TABLE `catalogue_historicalproductattributevalue` DISABLE KEYS */; +INSERT INTO `catalogue_historicalproductattributevalue` VALUES (1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'','',NULL,1,'2021-07-30 20:19:59.121201',NULL,'+',1,NULL,NULL,1,NULL),(1,'course-v1:edX+DemoX+Demo_Course',NULL,NULL,NULL,NULL,NULL,NULL,'','',NULL,2,'2021-07-30 20:19:59.123180',NULL,'~',1,NULL,NULL,1,NULL),(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'','',NULL,3,'2021-07-30 20:19:59.148840',NULL,'+',1,NULL,NULL,2,NULL),(2,'course-v1:edX+DemoX+Demo_Course',NULL,NULL,NULL,NULL,NULL,NULL,'','',NULL,4,'2021-07-30 20:19:59.154339',NULL,'~',1,NULL,NULL,2,NULL),(3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'','',NULL,5,'2021-07-30 20:19:59.161021',NULL,'+',2,NULL,NULL,2,NULL),(3,NULL,NULL,0,NULL,NULL,NULL,NULL,'','',NULL,6,'2021-07-30 20:19:59.163540',NULL,'~',2,NULL,NULL,2,NULL),(4,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'','',NULL,7,'2021-07-30 20:19:59.203500',NULL,'+',8,NULL,NULL,4,NULL),(4,'course-v1:edX+DemoX+Demo_Course',NULL,NULL,NULL,NULL,NULL,NULL,'','',NULL,8,'2021-07-30 20:19:59.205115',NULL,'~',8,NULL,NULL,4,NULL),(5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'','',NULL,9,'2021-07-30 20:19:59.210822',NULL,'+',10,NULL,NULL,4,NULL),(5,NULL,NULL,1,NULL,NULL,NULL,NULL,'','',NULL,10,'2021-07-30 20:19:59.212697',NULL,'~',10,NULL,NULL,4,NULL),(6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'','',NULL,11,'2021-07-30 20:19:59.217989',NULL,'+',9,NULL,NULL,4,NULL),(6,'verified',NULL,NULL,NULL,NULL,NULL,NULL,'','',NULL,12,'2021-07-30 20:19:59.220349',NULL,'~',9,NULL,NULL,4,NULL),(7,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'','',NULL,13,'2021-07-30 20:19:59.235025',NULL,'+',3,NULL,NULL,3,NULL),(7,'verified',NULL,NULL,NULL,NULL,NULL,NULL,'','',NULL,14,'2021-07-30 20:19:59.238855',NULL,'~',3,NULL,NULL,3,NULL),(8,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'','',NULL,15,'2021-07-30 20:19:59.244094',NULL,'+',1,NULL,NULL,3,NULL),(8,'course-v1:edX+DemoX+Demo_Course',NULL,NULL,NULL,NULL,NULL,NULL,'','',NULL,16,'2021-07-30 20:19:59.246416',NULL,'~',1,NULL,NULL,3,NULL),(9,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'','',NULL,17,'2021-07-30 20:19:59.251230',NULL,'+',2,NULL,NULL,3,NULL),(9,NULL,NULL,1,NULL,NULL,NULL,NULL,'','',NULL,18,'2021-07-30 20:19:59.253267',NULL,'~',2,NULL,NULL,3,NULL); +/*!40000 ALTER TABLE `catalogue_historicalproductattributevalue` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `catalogue_historicalproductcategory` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `catalogue_historicalproductcategory` ( + `id` int(11) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `category_id` int(11) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `product_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `catalogue_historical_history_user_id_b2a38081_fk_ecommerce` (`history_user_id`), + KEY `catalogue_historicalproductcategory_id_61c44723` (`id`), + KEY `catalogue_historicalproductcategory_category_id_806ddb2d` (`category_id`), + KEY `catalogue_historicalproductcategory_product_id_98bbd24d` (`product_id`), + CONSTRAINT `catalogue_historical_history_user_id_b2a38081_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `catalogue_historicalproductcategory` +-- + +LOCK TABLES `catalogue_historicalproductcategory` WRITE; +/*!40000 ALTER TABLE `catalogue_historicalproductcategory` DISABLE KEYS */; +INSERT INTO `catalogue_historicalproductcategory` VALUES (1,1,'2021-07-30 20:19:59.111603',NULL,'+',1,NULL,1); +/*!40000 ALTER TABLE `catalogue_historicalproductcategory` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `catalogue_historicalproductclass` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `catalogue_historicalproductclass` ( + `id` int(11) NOT NULL, + `name` varchar(128) NOT NULL, + `requires_shipping` tinyint(1) NOT NULL, + `track_stock` tinyint(1) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `catalogue_historical_history_user_id_6e1db4c7_fk_ecommerce` (`history_user_id`), + KEY `catalogue_historicalproductclass_id_6f7b6d39` (`id`), + CONSTRAINT `catalogue_historical_history_user_id_6e1db4c7_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `catalogue_historicalproductclass` +-- + +LOCK TABLES `catalogue_historicalproductclass` WRITE; +/*!40000 ALTER TABLE `catalogue_historicalproductclass` DISABLE KEYS */; +/*!40000 ALTER TABLE `catalogue_historicalproductclass` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `catalogue_option` -- @@ -648,17 +938,20 @@ CREATE TABLE `catalogue_product` ( `product_class_id` int(11) DEFAULT NULL, `course_id` varchar(255) DEFAULT NULL, `expires` datetime(6) DEFAULT NULL, + `is_public` tinyint(1) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `upc` (`upc`), - KEY `catalogue_product_2dbcba41` (`slug`), - KEY `catalogue_product_9474e4b5` (`date_updated`), + KEY `catalogue_product_slug_c8e2e2b9` (`slug`), + KEY `catalogue_product_date_updated_d3a1785d` (`date_updated`), KEY `catalogue_product_parent_id_9bfd2382_fk_catalogue_product_id` (`parent_id`), KEY `catalogue_product_course_id_1918bc6b_fk_courses_course_id` (`course_id`), - KEY `catalogue_product_class_id_0c6c5b54_fk_catalogue_productclass_id` (`product_class_id`), - CONSTRAINT `catalogue_product_class_id_0c6c5b54_fk_catalogue_productclass_id` FOREIGN KEY (`product_class_id`) REFERENCES `catalogue_productclass` (`id`), + KEY `catalogue_product_product_class_id_0c6c5b54_fk_catalogue` (`product_class_id`), + KEY `catalogue_product_date_created_d66f485a` (`date_created`), + KEY `catalogue_product_is_public_1cf798c5` (`is_public`), CONSTRAINT `catalogue_product_course_id_1918bc6b_fk_courses_course_id` FOREIGN KEY (`course_id`) REFERENCES `courses_course` (`id`), - CONSTRAINT `catalogue_product_parent_id_9bfd2382_fk_catalogue_product_id` FOREIGN KEY (`parent_id`) REFERENCES `catalogue_product` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; + CONSTRAINT `catalogue_product_parent_id_9bfd2382_fk_catalogue_product_id` FOREIGN KEY (`parent_id`) REFERENCES `catalogue_product` (`id`), + CONSTRAINT `catalogue_product_product_class_id_0c6c5b54_fk_catalogue` FOREIGN KEY (`product_class_id`) REFERENCES `catalogue_productclass` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -667,7 +960,7 @@ CREATE TABLE `catalogue_product` ( LOCK TABLES `catalogue_product` WRITE; /*!40000 ALTER TABLE `catalogue_product` DISABLE KEYS */; -INSERT INTO `catalogue_product` VALUES (1,'parent',NULL,'Seat in edX Demonstration Course','seat-in-edx-demonstration-course','',NULL,'2018-02-02 15:05:41.711720','2018-02-02 15:05:41.717384',1,NULL,1,'course-v1:edX+DemoX+Demo_Course',NULL),(2,'child',NULL,'Seat in edX Demonstration Course','seat-in-edx-demonstration-course','',NULL,'2018-02-02 15:05:41.733143','2018-02-02 15:05:41.733175',1,1,NULL,'course-v1:edX+DemoX+Demo_Course',NULL),(3,'child',NULL,'Seat in edX Demonstration Course with verified certificate (and ID verification)','seat-in-edx-demonstration-course-with-verified-certificate-and-id-verification','',NULL,'2018-02-02 15:05:41.764904','2018-02-02 15:05:41.764939',1,1,NULL,'course-v1:edX+DemoX+Demo_Course','2019-02-02 15:05:41.690970'); +INSERT INTO `catalogue_product` VALUES (1,'parent',NULL,'Seat in edX Demonstration Course','seat-in-edx-demonstration-course','',NULL,'2021-07-30 20:19:59.104604','2023-02-21 14:41:58.435143',1,NULL,1,'course-v1:edX+DemoX+Demo_Course',NULL,1),(2,'child',NULL,'Seat in edX Demonstration Course','seat-in-edx-demonstration-course','',NULL,'2021-07-30 20:19:59.137887','2023-02-21 14:41:58.491359',1,1,NULL,'course-v1:edX+DemoX+Demo_Course',NULL,1),(3,'child',NULL,'Seat in edX Demonstration Course with verified certificate','seat-in-edx-demonstration-course-with-verified-certificate-and-id-verification','',NULL,'2021-07-30 20:19:59.183843','2023-02-21 14:41:58.543609',1,1,NULL,'course-v1:edX+DemoX+Demo_Course','2024-02-21 14:41:58.376814',1),(4,'standalone',NULL,'Enrollment code for verified seat in edX Demonstration Course','enrollment-code-for-verified-seat-in-edx-demonstration-course','',NULL,'2021-07-30 20:19:59.198338','2023-02-21 14:41:58.566891',1,NULL,3,'course-v1:edX+DemoX+Demo_Course','2022-07-30 20:19:59.064405',1); /*!40000 ALTER TABLE `catalogue_product` ENABLE KEYS */; UNLOCK TABLES; @@ -682,10 +975,10 @@ CREATE TABLE `catalogue_product_product_options` ( `product_id` int(11) NOT NULL, `option_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `catalogue_product_product_options_product_id_9b3abb31_uniq` (`product_id`,`option_id`), - KEY `catalogue_product_prod_option_id_ff470e13_fk_catalogue_option_id` (`option_id`), - CONSTRAINT `catalogue_product_pr_product_id_ad2b46bd_fk_catalogue_product_id` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`), - CONSTRAINT `catalogue_product_prod_option_id_ff470e13_fk_catalogue_option_id` FOREIGN KEY (`option_id`) REFERENCES `catalogue_option` (`id`) + UNIQUE KEY `catalogue_product_produc_product_id_option_id_9b3abb31_uniq` (`product_id`,`option_id`), + KEY `catalogue_product_pr_option_id_ff470e13_fk_catalogue` (`option_id`), + CONSTRAINT `catalogue_product_pr_option_id_ff470e13_fk_catalogue` FOREIGN KEY (`option_id`) REFERENCES `catalogue_option` (`id`), + CONSTRAINT `catalogue_product_pr_product_id_ad2b46bd_fk_catalogue` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -713,12 +1006,12 @@ CREATE TABLE `catalogue_productattribute` ( `option_group_id` int(11) DEFAULT NULL, `product_class_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `ca_option_group_id_6b422dc2_fk_catalogue_attributeoptiongroup_id` (`option_group_id`), - KEY `catalogue_productattribute_c1336794` (`code`), - KEY `catalogue_product_class_id_7af808ec_fk_catalogue_productclass_id` (`product_class_id`), - CONSTRAINT `ca_option_group_id_6b422dc2_fk_catalogue_attributeoptiongroup_id` FOREIGN KEY (`option_group_id`) REFERENCES `catalogue_attributeoptiongroup` (`id`), - CONSTRAINT `catalogue_product_class_id_7af808ec_fk_catalogue_productclass_id` FOREIGN KEY (`product_class_id`) REFERENCES `catalogue_productclass` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; + KEY `catalogue_productattribute_code_9ffea293` (`code`), + KEY `catalogue_productatt_product_class_id_7af808ec_fk_catalogue` (`product_class_id`), + KEY `catalogue_productatt_option_group_id_6b422dc2_fk_catalogue` (`option_group_id`), + CONSTRAINT `catalogue_productatt_option_group_id_6b422dc2_fk_catalogue` FOREIGN KEY (`option_group_id`) REFERENCES `catalogue_attributeoptiongroup` (`id`), + CONSTRAINT `catalogue_productatt_product_class_id_7af808ec_fk_catalogue` FOREIGN KEY (`product_class_id`) REFERENCES `catalogue_productclass` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -727,7 +1020,7 @@ CREATE TABLE `catalogue_productattribute` ( LOCK TABLES `catalogue_productattribute` WRITE; /*!40000 ALTER TABLE `catalogue_productattribute` DISABLE KEYS */; -INSERT INTO `catalogue_productattribute` VALUES (1,'course_key','course_key','text',1,NULL,1),(2,'id_verification_required','id_verification_required','boolean',0,NULL,1),(3,'certificate_type','certificate_type','text',0,NULL,1),(4,'credit_provider','credit_provider','text',0,NULL,1),(5,'credit_hours','credit_hours','integer',0,NULL,1),(6,'Coupon vouchers','coupon_vouchers','entity',1,NULL,2),(7,'Note','note','text',0,NULL,2),(8,'Course Key','course_key','text',1,NULL,3),(9,'Seat Type','seat_type','text',1,NULL,3),(10,'id_verification_required','id_verification_required','boolean',0,NULL,3),(11,'UUID','UUID','text',1,NULL,4),(12,'certificate_type','certificate_type','text',0,NULL,4); +INSERT INTO `catalogue_productattribute` VALUES (1,'course_key','course_key','text',1,NULL,1),(2,'id_verification_required','id_verification_required','boolean',0,NULL,1),(3,'certificate_type','certificate_type','text',0,NULL,1),(4,'credit_provider','credit_provider','text',0,NULL,1),(5,'credit_hours','credit_hours','integer',0,NULL,1),(6,'Coupon vouchers','coupon_vouchers','entity',1,NULL,2),(7,'Note','note','text',0,NULL,2),(8,'Course Key','course_key','text',1,NULL,3),(9,'Seat Type','seat_type','text',1,NULL,3),(10,'id_verification_required','id_verification_required','boolean',0,NULL,3),(11,'UUID','UUID','text',1,NULL,4),(12,'certificate_type','certificate_type','text',0,NULL,4),(13,'id_verification_required','id_verification_required','boolean',0,NULL,4),(15,'Notification Email','notify_email','text',0,NULL,2),(16,'Enterprise Customer UUID','enterprise_customer_uuid','text',0,NULL,2),(17,'Enterprise Contract Metadata','enterprise_contract_metadata','entity',0,NULL,2),(18,'Inactive','inactive','boolean',0,NULL,2),(19,'Sales Force ID','sales_force_id','text',0,NULL,2),(20,'Is Public Code?','is_public_code','boolean',0,NULL,2),(21,'variant_id','variant_id','text',0,NULL,4); /*!40000 ALTER TABLE `catalogue_productattribute` ENABLE KEYS */; UNLOCK TABLES; @@ -752,16 +1045,22 @@ CREATE TABLE `catalogue_productattributevalue` ( `entity_content_type_id` int(11) DEFAULT NULL, `product_id` int(11) NOT NULL, `value_option_id` int(11) DEFAULT NULL, + `value_datetime` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `catalogue_productattributevalue_attribute_id_1e8e7112_uniq` (`attribute_id`,`product_id`), - KEY `catalo_entity_content_type_id_f7186ab5_fk_django_content_type_id` (`entity_content_type_id`), - KEY `catalogue_productatt_product_id_a03cd90e_fk_catalogue_product_id` (`product_id`), - KEY `catalog_value_option_id_21026066_fk_catalogue_attributeoption_id` (`value_option_id`), - CONSTRAINT `catalo_entity_content_type_id_f7186ab5_fk_django_content_type_id` FOREIGN KEY (`entity_content_type_id`) REFERENCES `django_content_type` (`id`), - CONSTRAINT `catalog_value_option_id_21026066_fk_catalogue_attributeoption_id` FOREIGN KEY (`value_option_id`) REFERENCES `catalogue_attributeoption` (`id`), - CONSTRAINT `catalogue_attribute_id_0287c1e7_fk_catalogue_productattribute_id` FOREIGN KEY (`attribute_id`) REFERENCES `catalogue_productattribute` (`id`), - CONSTRAINT `catalogue_productatt_product_id_a03cd90e_fk_catalogue_product_id` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; + UNIQUE KEY `catalogue_productattribu_attribute_id_product_id_1e8e7112_uniq` (`attribute_id`,`product_id`), + KEY `catalogue_productatt_entity_content_type__f7186ab5_fk_django_co` (`entity_content_type_id`), + KEY `catalogue_productatt_product_id_a03cd90e_fk_catalogue` (`product_id`), + KEY `catalogue_productatt_value_option_id_21026066_fk_catalogue` (`value_option_id`), + KEY `catalogue_productattributevalue_value_boolean_c5b0d66a` (`value_boolean`), + KEY `catalogue_productattributevalue_value_date_d18775c1` (`value_date`), + KEY `catalogue_productattributevalue_value_datetime_b474ac38` (`value_datetime`), + KEY `catalogue_productattributevalue_value_float_5ef8d3db` (`value_float`), + KEY `catalogue_productattributevalue_value_integer_55fbb7d6` (`value_integer`), + CONSTRAINT `catalogue_productatt_attribute_id_0287c1e7_fk_catalogue` FOREIGN KEY (`attribute_id`) REFERENCES `catalogue_productattribute` (`id`), + CONSTRAINT `catalogue_productatt_entity_content_type__f7186ab5_fk_django_co` FOREIGN KEY (`entity_content_type_id`) REFERENCES `django_content_type` (`id`), + CONSTRAINT `catalogue_productatt_product_id_a03cd90e_fk_catalogue` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`), + CONSTRAINT `catalogue_productatt_value_option_id_21026066_fk_catalogue` FOREIGN KEY (`value_option_id`) REFERENCES `catalogue_attributeoption` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -770,10 +1069,37 @@ CREATE TABLE `catalogue_productattributevalue` ( LOCK TABLES `catalogue_productattributevalue` WRITE; /*!40000 ALTER TABLE `catalogue_productattributevalue` DISABLE KEYS */; -INSERT INTO `catalogue_productattributevalue` VALUES (1,'course-v1:edX+DemoX+Demo_Course',NULL,NULL,NULL,NULL,NULL,'','',NULL,1,NULL,1,NULL),(2,'course-v1:edX+DemoX+Demo_Course',NULL,NULL,NULL,NULL,NULL,'','',NULL,1,NULL,2,NULL),(3,NULL,NULL,0,NULL,NULL,NULL,'','',NULL,2,NULL,2,NULL),(4,'verified',NULL,NULL,NULL,NULL,NULL,'','',NULL,3,NULL,3,NULL),(5,'course-v1:edX+DemoX+Demo_Course',NULL,NULL,NULL,NULL,NULL,'','',NULL,1,NULL,3,NULL),(6,NULL,NULL,1,NULL,NULL,NULL,'','',NULL,2,NULL,3,NULL); +INSERT INTO `catalogue_productattributevalue` VALUES (1,'course-v1:edX+DemoX+Demo_Course',NULL,NULL,NULL,NULL,NULL,'','',NULL,1,NULL,1,NULL,NULL),(2,'course-v1:edX+DemoX+Demo_Course',NULL,NULL,NULL,NULL,NULL,'','',NULL,1,NULL,2,NULL,NULL),(3,NULL,NULL,0,NULL,NULL,NULL,'','',NULL,2,NULL,2,NULL,NULL),(4,'course-v1:edX+DemoX+Demo_Course',NULL,NULL,NULL,NULL,NULL,'','',NULL,8,NULL,4,NULL,NULL),(5,NULL,NULL,1,NULL,NULL,NULL,'','',NULL,10,NULL,4,NULL,NULL),(6,'verified',NULL,NULL,NULL,NULL,NULL,'','',NULL,9,NULL,4,NULL,NULL),(7,'verified',NULL,NULL,NULL,NULL,NULL,'','',NULL,3,NULL,3,NULL,NULL),(8,'course-v1:edX+DemoX+Demo_Course',NULL,NULL,NULL,NULL,NULL,'','',NULL,1,NULL,3,NULL,NULL),(9,NULL,NULL,1,NULL,NULL,NULL,'','',NULL,2,NULL,3,NULL,NULL); /*!40000 ALTER TABLE `catalogue_productattributevalue` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `catalogue_productattributevalue_value_multi_option` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `catalogue_productattributevalue_value_multi_option` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `productattributevalue_id` int(11) NOT NULL, + `attributeoption_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `catalogue_productattribu_productattributevalue_id_a1760824_uniq` (`productattributevalue_id`,`attributeoption_id`), + KEY `catalogue_productatt_attributeoption_id_962b600b_fk_catalogue` (`attributeoption_id`), + CONSTRAINT `catalogue_productatt_attributeoption_id_962b600b_fk_catalogue` FOREIGN KEY (`attributeoption_id`) REFERENCES `catalogue_attributeoption` (`id`), + CONSTRAINT `catalogue_productatt_productattributevalu_9c7c031e_fk_catalogue` FOREIGN KEY (`productattributevalue_id`) REFERENCES `catalogue_productattributevalue` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `catalogue_productattributevalue_value_multi_option` +-- + +LOCK TABLES `catalogue_productattributevalue_value_multi_option` WRITE; +/*!40000 ALTER TABLE `catalogue_productattributevalue_value_multi_option` DISABLE KEYS */; +/*!40000 ALTER TABLE `catalogue_productattributevalue_value_multi_option` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `catalogue_productcategory` -- @@ -785,10 +1111,10 @@ CREATE TABLE `catalogue_productcategory` ( `category_id` int(11) NOT NULL, `product_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `catalogue_productcategory_product_id_8f0dbfe2_uniq` (`product_id`,`category_id`), - KEY `catalogue_productc_category_id_176db535_fk_catalogue_category_id` (`category_id`), - CONSTRAINT `catalogue_productc_category_id_176db535_fk_catalogue_category_id` FOREIGN KEY (`category_id`) REFERENCES `catalogue_category` (`id`), - CONSTRAINT `catalogue_productcat_product_id_846a4061_fk_catalogue_product_id` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`) + UNIQUE KEY `catalogue_productcategory_product_id_category_id_8f0dbfe2_uniq` (`product_id`,`category_id`), + KEY `catalogue_productcat_category_id_176db535_fk_catalogue` (`category_id`), + CONSTRAINT `catalogue_productcat_category_id_176db535_fk_catalogue` FOREIGN KEY (`category_id`) REFERENCES `catalogue_category` (`id`), + CONSTRAINT `catalogue_productcat_product_id_846a4061_fk_catalogue` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -816,7 +1142,7 @@ CREATE TABLE `catalogue_productclass` ( `track_stock` tinyint(1) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `slug` (`slug`) -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -840,10 +1166,10 @@ CREATE TABLE `catalogue_productclass_options` ( `productclass_id` int(11) NOT NULL, `option_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `catalogue_productclass_options_productclass_id_2266c635_uniq` (`productclass_id`,`option_id`), - KEY `catalogue_productclass_option_id_b099542c_fk_catalogue_option_id` (`option_id`), - CONSTRAINT `catalogue__productclass_id_732df4c8_fk_catalogue_productclass_id` FOREIGN KEY (`productclass_id`) REFERENCES `catalogue_productclass` (`id`), - CONSTRAINT `catalogue_productclass_option_id_b099542c_fk_catalogue_option_id` FOREIGN KEY (`option_id`) REFERENCES `catalogue_option` (`id`) + UNIQUE KEY `catalogue_productclass_o_productclass_id_option_i_2266c635_uniq` (`productclass_id`,`option_id`), + KEY `catalogue_productcla_option_id_b099542c_fk_catalogue` (`option_id`), + CONSTRAINT `catalogue_productcla_option_id_b099542c_fk_catalogue` FOREIGN KEY (`option_id`) REFERENCES `catalogue_option` (`id`), + CONSTRAINT `catalogue_productcla_productclass_id_732df4c8_fk_catalogue` FOREIGN KEY (`productclass_id`) REFERENCES `catalogue_productclass` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -870,8 +1196,9 @@ CREATE TABLE `catalogue_productimage` ( `date_created` datetime(6) NOT NULL, `product_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `catalogue_productimage_product_id_2df78171_uniq` (`product_id`,`display_order`), - CONSTRAINT `catalogue_productima_product_id_49474fe8_fk_catalogue_product_id` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`) + KEY `catalogue_productimage_product_id_49474fe8` (`product_id`), + KEY `catalogue_productimage_display_order_9fa741ac` (`display_order`), + CONSTRAINT `catalogue_productima_product_id_49474fe8_fk_catalogue` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -896,10 +1223,11 @@ CREATE TABLE `catalogue_productrecommendation` ( `primary_id` int(11) NOT NULL, `recommendation_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `catalogue_productrecommendation_primary_id_da1fdf43_uniq` (`primary_id`,`recommendation_id`), - KEY `catalogue_pro_recommendation_id_daf8ae95_fk_catalogue_product_id` (`recommendation_id`), - CONSTRAINT `catalogue_pro_recommendation_id_daf8ae95_fk_catalogue_product_id` FOREIGN KEY (`recommendation_id`) REFERENCES `catalogue_product` (`id`), - CONSTRAINT `catalogue_productrec_primary_id_6e51a55c_fk_catalogue_product_id` FOREIGN KEY (`primary_id`) REFERENCES `catalogue_product` (`id`) + UNIQUE KEY `catalogue_productrecomme_primary_id_recommendatio_da1fdf43_uniq` (`primary_id`,`recommendation_id`), + KEY `catalogue_productrec_recommendation_id_daf8ae95_fk_catalogue` (`recommendation_id`), + KEY `catalogue_productrecommendation_ranking_e7a0f7fd` (`ranking`), + CONSTRAINT `catalogue_productrec_primary_id_6e51a55c_fk_catalogue` FOREIGN KEY (`primary_id`) REFERENCES `catalogue_product` (`id`), + CONSTRAINT `catalogue_productrec_recommendation_id_daf8ae95_fk_catalogue` FOREIGN KEY (`recommendation_id`) REFERENCES `catalogue_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -913,223 +1241,358 @@ LOCK TABLES `catalogue_productrecommendation` WRITE; UNLOCK TABLES; -- --- Table structure for table `core_businessclient` +-- Table structure for table `communication_communicationeventtype` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `core_businessclient` ( +CREATE TABLE `communication_communicationeventtype` ( `id` int(11) NOT NULL AUTO_INCREMENT, + `code` varchar(128) NOT NULL, `name` varchar(255) NOT NULL, + `category` varchar(255) NOT NULL, + `email_subject_template` varchar(255) DEFAULT NULL, + `email_body_template` longtext, + `email_body_html_template` longtext, + `sms_template` varchar(170) DEFAULT NULL, + `date_created` datetime(6) NOT NULL, + `date_updated` datetime(6) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`) + UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `core_businessclient` +-- Dumping data for table `communication_communicationeventtype` -- -LOCK TABLES `core_businessclient` WRITE; -/*!40000 ALTER TABLE `core_businessclient` DISABLE KEYS */; -/*!40000 ALTER TABLE `core_businessclient` ENABLE KEYS */; +LOCK TABLES `communication_communicationeventtype` WRITE; +/*!40000 ALTER TABLE `communication_communicationeventtype` DISABLE KEYS */; +/*!40000 ALTER TABLE `communication_communicationeventtype` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `core_client` +-- Table structure for table `communication_email` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `core_client` ( - `user_ptr_id` int(11) NOT NULL, - PRIMARY KEY (`user_ptr_id`), - CONSTRAINT `core_client_user_ptr_id_e5908bcf_fk_ecommerce_user_id` FOREIGN KEY (`user_ptr_id`) REFERENCES `ecommerce_user` (`id`) +CREATE TABLE `communication_email` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `email` varchar(254) DEFAULT NULL, + `subject` longtext NOT NULL, + `body_text` longtext NOT NULL, + `body_html` longtext NOT NULL, + `date_sent` datetime(6) NOT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `communication_email_user_id_a6eae16a_fk_ecommerce_user_id` (`user_id`), + CONSTRAINT `communication_email_user_id_a6eae16a_fk_ecommerce_user_id` FOREIGN KEY (`user_id`) REFERENCES `ecommerce_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `core_client` +-- Dumping data for table `communication_email` -- -LOCK TABLES `core_client` WRITE; -/*!40000 ALTER TABLE `core_client` DISABLE KEYS */; -/*!40000 ALTER TABLE `core_client` ENABLE KEYS */; +LOCK TABLES `communication_email` WRITE; +/*!40000 ALTER TABLE `communication_email` DISABLE KEYS */; +/*!40000 ALTER TABLE `communication_email` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `core_siteconfiguration` +-- Table structure for table `communication_notification` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `core_siteconfiguration` ( +CREATE TABLE `communication_notification` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `lms_url_root` varchar(200) NOT NULL, - `theme_scss_path` varchar(255) DEFAULT NULL, - `payment_processors` varchar(255) NOT NULL, - `partner_id` int(11) NOT NULL, - `site_id` int(11) NOT NULL, - `oauth_settings` longtext NOT NULL, - `segment_key` varchar(255) DEFAULT NULL, - `from_email` varchar(255) DEFAULT NULL, - `enable_enrollment_codes` tinyint(1) NOT NULL, - `payment_support_email` varchar(255) NOT NULL, - `payment_support_url` varchar(255) NOT NULL, - `affiliate_cookie_name` varchar(255) NOT NULL, - `utm_cookie_name` varchar(255) NOT NULL, - `client_side_payment_processor` varchar(255) DEFAULT NULL, - `send_refund_notifications` tinyint(1) NOT NULL, - `enable_sdn_check` tinyint(1) NOT NULL, - `sdn_api_key` varchar(255) NOT NULL, - `sdn_api_list` varchar(255) NOT NULL, - `sdn_api_url` varchar(255) NOT NULL, - `require_account_activation` tinyint(1) NOT NULL, - `optimizely_snippet_src` varchar(255) NOT NULL, - `enable_sailthru` tinyint(1) NOT NULL, - `base_cookie_domain` varchar(255) NOT NULL, - `enable_embargo_check` tinyint(1) NOT NULL, - `discovery_api_url` varchar(200) NOT NULL, - `enable_apple_pay` tinyint(1) NOT NULL, - `enable_partial_program` tinyint(1) NOT NULL, + `subject` varchar(255) NOT NULL, + `body` longtext NOT NULL, + `location` varchar(32) NOT NULL, + `date_sent` datetime(6) NOT NULL, + `date_read` datetime(6) DEFAULT NULL, + `recipient_id` int(11) NOT NULL, + `sender_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `core_siteconfiguration_site_id_3124a87d_uniq` (`site_id`), - UNIQUE KEY `core_siteconfiguration_partner_id_75739217_uniq` (`partner_id`), - CONSTRAINT `core_siteconfiguration_partner_id_75739217_fk_partner_partner_id` FOREIGN KEY (`partner_id`) REFERENCES `partner_partner` (`id`), - CONSTRAINT `core_siteconfiguration_site_id_3124a87d_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; + KEY `communication_notifi_recipient_id_2f83b142_fk_ecommerce` (`recipient_id`), + KEY `communication_notifi_sender_id_f1fdd4c8_fk_ecommerce` (`sender_id`), + CONSTRAINT `communication_notifi_recipient_id_2f83b142_fk_ecommerce` FOREIGN KEY (`recipient_id`) REFERENCES `ecommerce_user` (`id`), + CONSTRAINT `communication_notifi_sender_id_f1fdd4c8_fk_ecommerce` FOREIGN KEY (`sender_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `core_siteconfiguration` +-- Dumping data for table `communication_notification` -- -LOCK TABLES `core_siteconfiguration` WRITE; -/*!40000 ALTER TABLE `core_siteconfiguration` DISABLE KEYS */; -INSERT INTO `core_siteconfiguration` VALUES (1,'http://edx.devstack.lms:18000',NULL,'cybersource,paypal',1,1,'{\"SOCIAL_AUTH_EDX_OIDC_ID_TOKEN_DECRYPTION_KEY\":\"ecommerce-secret\",\"SOCIAL_AUTH_EDX_OIDC_URL_ROOT\":\"http://edx.devstack.lms:18000/oauth2\",\"SOCIAL_AUTH_EDX_OIDC_ISSUERS\":[\"http://edx.devstack.lms:18000\"],\"SOCIAL_AUTH_EDX_OIDC_KEY\":\"ecommerce-key\",\"SOCIAL_AUTH_EDX_OIDC_SECRET\":\"ecommerce-secret\"}',NULL,'staff@example.com',0,'support@example.com','','','','cybersource',0,0,'','','',1,'',0,'',0,'http://edx.devstack.discovery:18381/api/v1/',0,0); -/*!40000 ALTER TABLE `core_siteconfiguration` ENABLE KEYS */; +LOCK TABLES `communication_notification` WRITE; +/*!40000 ALTER TABLE `communication_notification` DISABLE KEYS */; +/*!40000 ALTER TABLE `communication_notification` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `courses_course` +-- Table structure for table `core_businessclient` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `courses_course` ( - `id` varchar(255) NOT NULL, +CREATE TABLE `core_businessclient` ( + `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, - `thumbnail_url` varchar(200) DEFAULT NULL, - `verification_deadline` datetime(6) DEFAULT NULL, - `site_id` int(11) NOT NULL, - `created` datetime(6), - `modified` datetime(6), + `enterprise_customer_uuid` char(32) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `courses_course_site_id_af38aac5_fk_django_site_id` (`site_id`), - CONSTRAINT `courses_course_site_id_af38aac5_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) + UNIQUE KEY `name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `courses_course` +-- Dumping data for table `core_businessclient` -- -LOCK TABLES `courses_course` WRITE; -/*!40000 ALTER TABLE `courses_course` DISABLE KEYS */; -INSERT INTO `courses_course` VALUES ('course-v1:edX+DemoX+Demo_Course','edX Demonstration Course',NULL,'2020-02-02 15:05:41.690970',1,'2018-02-02 15:05:41.703298','2018-02-02 15:05:41.703319'); -/*!40000 ALTER TABLE `courses_course` ENABLE KEYS */; +LOCK TABLES `core_businessclient` WRITE; +/*!40000 ALTER TABLE `core_businessclient` DISABLE KEYS */; +/*!40000 ALTER TABLE `core_businessclient` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `customer_communicationeventtype` +-- Table structure for table `core_client` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `customer_communicationeventtype` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(128) NOT NULL, +CREATE TABLE `core_client` ( + `user_ptr_id` int(11) NOT NULL, + PRIMARY KEY (`user_ptr_id`), + CONSTRAINT `core_client_user_ptr_id_e5908bcf_fk_ecommerce_user_id` FOREIGN KEY (`user_ptr_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `core_client` +-- + +LOCK TABLES `core_client` WRITE; +/*!40000 ALTER TABLE `core_client` DISABLE KEYS */; +/*!40000 ALTER TABLE `core_client` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `core_ecommercefeaturerole` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `core_ecommercefeaturerole` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, `name` varchar(255) NOT NULL, - `category` varchar(255) NOT NULL, - `email_subject_template` varchar(255) DEFAULT NULL, - `email_body_template` longtext, - `email_body_html_template` longtext, - `sms_template` varchar(170) DEFAULT NULL, - `date_created` datetime(6) NOT NULL, - `date_updated` datetime(6) NOT NULL, + `description` longtext, PRIMARY KEY (`id`), - UNIQUE KEY `code` (`code`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + UNIQUE KEY `name` (`name`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `customer_communicationeventtype` +-- Dumping data for table `core_ecommercefeaturerole` -- -LOCK TABLES `customer_communicationeventtype` WRITE; -/*!40000 ALTER TABLE `customer_communicationeventtype` DISABLE KEYS */; -/*!40000 ALTER TABLE `customer_communicationeventtype` ENABLE KEYS */; +LOCK TABLES `core_ecommercefeaturerole` WRITE; +/*!40000 ALTER TABLE `core_ecommercefeaturerole` DISABLE KEYS */; +INSERT INTO `core_ecommercefeaturerole` VALUES (1,'2021-07-30 20:17:15.123268','2021-07-30 20:17:15.123268','enterprise_coupon_admin',NULL),(2,'2021-07-30 20:17:15.578828','2021-07-30 20:17:15.578828','order_manager',NULL); +/*!40000 ALTER TABLE `core_ecommercefeaturerole` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `customer_email` +-- Table structure for table `core_ecommercefeatureroleassignment` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `customer_email` ( +CREATE TABLE `core_ecommercefeatureroleassignment` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `subject` longtext NOT NULL, - `body_text` longtext NOT NULL, - `body_html` longtext NOT NULL, - `date_sent` datetime(6) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `role_id` int(11) NOT NULL, `user_id` int(11) NOT NULL, + `enterprise_id` char(32) DEFAULT NULL, + `applies_to_all_contexts` tinyint(1) NOT NULL, PRIMARY KEY (`id`), - KEY `customer_email_user_id_a69ad588_fk_ecommerce_user_id` (`user_id`), - CONSTRAINT `customer_email_user_id_a69ad588_fk_ecommerce_user_id` FOREIGN KEY (`user_id`) REFERENCES `ecommerce_user` (`id`) + KEY `core_ecommercefeatur_role_id_e8057cdb_fk_core_ecom` (`role_id`), + KEY `core_ecommercefeatur_user_id_f692628b_fk_ecommerce` (`user_id`), + CONSTRAINT `core_ecommercefeatur_role_id_e8057cdb_fk_core_ecom` FOREIGN KEY (`role_id`) REFERENCES `core_ecommercefeaturerole` (`id`), + CONSTRAINT `core_ecommercefeatur_user_id_f692628b_fk_ecommerce` FOREIGN KEY (`user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `core_ecommercefeatureroleassignment` +-- + +LOCK TABLES `core_ecommercefeatureroleassignment` WRITE; +/*!40000 ALTER TABLE `core_ecommercefeatureroleassignment` DISABLE KEYS */; +/*!40000 ALTER TABLE `core_ecommercefeatureroleassignment` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `core_historicalbusinessclient` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `core_historicalbusinessclient` ( + `id` int(11) NOT NULL, + `name` varchar(255) NOT NULL, + `enterprise_customer_uuid` char(32) DEFAULT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `core_historicalbusin_history_user_id_c003ab66_fk_ecommerce` (`history_user_id`), + KEY `core_historicalbusinessclient_id_1f2c8e41` (`id`), + KEY `core_historicalbusinessclient_name_3c807144` (`name`), + CONSTRAINT `core_historicalbusin_history_user_id_c003ab66_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `customer_email` +-- Dumping data for table `core_historicalbusinessclient` -- -LOCK TABLES `customer_email` WRITE; -/*!40000 ALTER TABLE `customer_email` DISABLE KEYS */; -/*!40000 ALTER TABLE `customer_email` ENABLE KEYS */; +LOCK TABLES `core_historicalbusinessclient` WRITE; +/*!40000 ALTER TABLE `core_historicalbusinessclient` DISABLE KEYS */; +/*!40000 ALTER TABLE `core_historicalbusinessclient` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `customer_notification` +-- Table structure for table `core_siteconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `customer_notification` ( +CREATE TABLE `core_siteconfiguration` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `subject` varchar(255) NOT NULL, - `body` longtext NOT NULL, - `category` varchar(255) NOT NULL, - `location` varchar(32) NOT NULL, - `date_sent` datetime(6) NOT NULL, - `date_read` datetime(6) DEFAULT NULL, - `recipient_id` int(11) NOT NULL, - `sender_id` int(11) DEFAULT NULL, + `lms_url_root` varchar(200) NOT NULL, + `theme_scss_path` varchar(255) DEFAULT NULL, + `payment_processors` varchar(255) NOT NULL, + `partner_id` int(11) NOT NULL, + `site_id` int(11) NOT NULL, + `oauth_settings` longtext NOT NULL, + `segment_key` varchar(255) DEFAULT NULL, + `from_email` varchar(255) DEFAULT NULL, + `enable_enrollment_codes` tinyint(1) NOT NULL, + `payment_support_email` varchar(255) NOT NULL, + `payment_support_url` varchar(255) NOT NULL, + `affiliate_cookie_name` varchar(255) NOT NULL, + `utm_cookie_name` varchar(255) NOT NULL, + `client_side_payment_processor` varchar(255) DEFAULT NULL, + `send_refund_notifications` tinyint(1) NOT NULL, + `enable_sdn_check` tinyint(1) NOT NULL, + `sdn_api_key` varchar(255) NOT NULL, + `sdn_api_list` varchar(255) NOT NULL, + `sdn_api_url` varchar(255) NOT NULL, + `require_account_activation` tinyint(1) NOT NULL, + `optimizely_snippet_src` varchar(255) NOT NULL, + `base_cookie_domain` varchar(255) NOT NULL, + `enable_embargo_check` tinyint(1) NOT NULL, + `discovery_api_url` varchar(200) NOT NULL, + `enable_apple_pay` tinyint(1) NOT NULL, + `enable_partial_program` tinyint(1) NOT NULL, + `hubspot_secret_key` varchar(255) NOT NULL, + `enable_microfrontend_for_basket_page` tinyint(1) NOT NULL, + `payment_microfrontend_url` varchar(200) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `core_siteconfiguration_site_id_3124a87d_uniq` (`site_id`), + KEY `core_siteconfiguration_partner_id_75739217` (`partner_id`), + CONSTRAINT `core_siteconfiguration_partner_id_75739217_fk_partner_partner_id` FOREIGN KEY (`partner_id`) REFERENCES `partner_partner` (`id`), + CONSTRAINT `core_siteconfiguration_site_id_3124a87d_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `core_siteconfiguration` +-- + +LOCK TABLES `core_siteconfiguration` WRITE; +/*!40000 ALTER TABLE `core_siteconfiguration` DISABLE KEYS */; +INSERT INTO `core_siteconfiguration` VALUES (1,'http://edx.devstack.lms:18000',NULL,'cybersource,paypal',1,1,'{\"SOCIAL_AUTH_EDX_OAUTH2_URL_ROOT\": \"http://edx.devstack.lms:18000\", \"SOCIAL_AUTH_EDX_OAUTH2_LOGOUT_URL\": \"http://edx.devstack.lms:18000/logout\", \"SOCIAL_AUTH_EDX_OAUTH2_ISSUERS\": [\"http://edx.devstack.lms:18000\"], \"SOCIAL_AUTH_EDX_OAUTH2_PUBLIC_URL_ROOT\": \"http://localhost:18000\", \"SOCIAL_AUTH_EDX_OAUTH2_KEY\": \"ecommerce-sso-key\", \"SOCIAL_AUTH_EDX_OAUTH2_SECRET\": \"ecommerce-sso-secret\", \"BACKEND_SERVICE_EDX_OAUTH2_KEY\": \"ecommerce-backend-service-key\", \"BACKEND_SERVICE_EDX_OAUTH2_SECRET\": \"ecommerce-backend-service-secret\"}',NULL,'staff@example.com',0,'support@example.com','','','','cybersource',0,0,'','','',1,'','',0,'http://edx.devstack.discovery:18381/api/v1/',0,0,'',1,'http://localhost:1998'); +/*!40000 ALTER TABLE `core_siteconfiguration` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `courses_course` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `courses_course` ( + `id` varchar(255) NOT NULL, + `name` varchar(255) NOT NULL, + `thumbnail_url` varchar(200) DEFAULT NULL, + `verification_deadline` datetime(6) DEFAULT NULL, + `site_id` int(11) DEFAULT NULL, + `created` datetime(6) DEFAULT NULL, + `modified` datetime(6) DEFAULT NULL, + `partner_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `customer_notification_recipient_id_d99de5c8_fk_ecommerce_user_id` (`recipient_id`), - KEY `customer_notification_sender_id_affa1632_fk_ecommerce_user_id` (`sender_id`), - CONSTRAINT `customer_notification_recipient_id_d99de5c8_fk_ecommerce_user_id` FOREIGN KEY (`recipient_id`) REFERENCES `ecommerce_user` (`id`), - CONSTRAINT `customer_notification_sender_id_affa1632_fk_ecommerce_user_id` FOREIGN KEY (`sender_id`) REFERENCES `ecommerce_user` (`id`) + KEY `courses_course_site_id_af38aac5_fk_django_site_id` (`site_id`), + KEY `courses_course_partner_id_a64c9b38_fk_partner_partner_id` (`partner_id`), + CONSTRAINT `courses_course_partner_id_a64c9b38_fk_partner_partner_id` FOREIGN KEY (`partner_id`) REFERENCES `partner_partner` (`id`), + CONSTRAINT `courses_course_site_id_af38aac5_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `customer_notification` +-- Dumping data for table `courses_course` +-- + +LOCK TABLES `courses_course` WRITE; +/*!40000 ALTER TABLE `courses_course` DISABLE KEYS */; +INSERT INTO `courses_course` VALUES ('course-v1:edX+DemoX+Demo_Course','edX Demonstration Course',NULL,'2025-02-20 14:41:58.376814',NULL,'2021-07-30 20:19:59.095039','2023-02-21 14:41:58.392528',1); +/*!40000 ALTER TABLE `courses_course` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `courses_historicalcourse` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `courses_historicalcourse` ( + `id` varchar(255) NOT NULL, + `name` varchar(255) NOT NULL, + `verification_deadline` datetime(6) DEFAULT NULL, + `created` datetime(6) DEFAULT NULL, + `modified` datetime(6) DEFAULT NULL, + `thumbnail_url` varchar(200) DEFAULT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `partner_id` int(11) DEFAULT NULL, + `site_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `courses_historicalco_history_user_id_5aca3c34_fk_ecommerce` (`history_user_id`), + KEY `courses_historicalcourse_id_ef83d5ac` (`id`), + KEY `courses_historicalcourse_partner_id_c09fe2b8` (`partner_id`), + KEY `courses_historicalcourse_site_id_dfff3795` (`site_id`), + CONSTRAINT `courses_historicalco_history_user_id_5aca3c34_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `courses_historicalcourse` -- -LOCK TABLES `customer_notification` WRITE; -/*!40000 ALTER TABLE `customer_notification` DISABLE KEYS */; -/*!40000 ALTER TABLE `customer_notification` ENABLE KEYS */; +LOCK TABLES `courses_historicalcourse` WRITE; +/*!40000 ALTER TABLE `courses_historicalcourse` DISABLE KEYS */; +INSERT INTO `courses_historicalcourse` VALUES ('course-v1:edX+DemoX+Demo_Course','edX Demonstration Course','2023-07-30 20:19:59.064405','2021-07-30 20:19:59.095039','2021-07-30 20:19:59.095058',NULL,1,'2021-07-30 20:19:59.095505',NULL,'+',NULL,1,NULL),('course-v1:edX+DemoX+Demo_Course','edX Demonstration Course','2025-02-09 18:45:44.397877','2021-07-30 20:19:59.095039','2023-02-10 18:45:44.416055',NULL,2,'2023-02-10 18:45:44.417502',NULL,'~',NULL,1,NULL),('course-v1:edX+DemoX+Demo_Course','edX Demonstration Course','2025-02-20 14:41:58.376814','2021-07-30 20:19:59.095039','2023-02-21 14:41:58.392528',NULL,3,'2023-02-21 14:41:58.395033',NULL,'~',NULL,1,NULL); +/*!40000 ALTER TABLE `courses_historicalcourse` ENABLE KEYS */; UNLOCK TABLES; -- @@ -1150,11 +1613,11 @@ CREATE TABLE `customer_productalert` ( `product_id` int(11) NOT NULL, `user_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `customer_productaler_product_id_7e529a41_fk_catalogue_product_id` (`product_id`), + KEY `customer_productaler_product_id_7e529a41_fk_catalogue` (`product_id`), KEY `customer_productalert_user_id_677ad6d6_fk_ecommerce_user_id` (`user_id`), - KEY `customer_productalert_0c83f57c` (`email`), - KEY `customer_productalert_3c6e0b8a` (`key`), - CONSTRAINT `customer_productaler_product_id_7e529a41_fk_catalogue_product_id` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`), + KEY `customer_productalert_email_e5f35f45` (`email`), + KEY `customer_productalert_key_a26f3bdc` (`key`), + CONSTRAINT `customer_productaler_product_id_7e529a41_fk_catalogue` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`), CONSTRAINT `customer_productalert_user_id_677ad6d6_fk_ecommerce_user_id` FOREIGN KEY (`user_id`) REFERENCES `ecommerce_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1184,9 +1647,9 @@ CREATE TABLE `django_admin_log` ( `content_type_id` int(11) DEFAULT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `django_admin__content_type_id_c4bce8eb_fk_django_content_type_id` (`content_type_id`), + KEY `django_admin_log_content_type_id_c4bce8eb_fk_django_co` (`content_type_id`), KEY `django_admin_log_user_id_c564eba6_fk_ecommerce_user_id` (`user_id`), - CONSTRAINT `django_admin__content_type_id_c4bce8eb_fk_django_content_type_id` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`), + CONSTRAINT `django_admin_log_content_type_id_c4bce8eb_fk_django_co` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`), CONSTRAINT `django_admin_log_user_id_c564eba6_fk_ecommerce_user_id` FOREIGN KEY (`user_id`) REFERENCES `ecommerce_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1211,8 +1674,8 @@ CREATE TABLE `django_content_type` ( `app_label` varchar(100) NOT NULL, `model` varchar(100) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `django_content_type_app_label_76bd3d3b_uniq` (`app_label`,`model`) -) ENGINE=InnoDB AUTO_INCREMENT=129 DEFAULT CHARSET=utf8; + UNIQUE KEY `django_content_type_app_label_model_76bd3d3b_uniq` (`app_label`,`model`) +) ENGINE=InnoDB AUTO_INCREMENT=157 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1221,7 +1684,7 @@ CREATE TABLE `django_content_type` ( LOCK TABLES `django_content_type` WRITE; /*!40000 ALTER TABLE `django_content_type` DISABLE KEYS */; -INSERT INTO `django_content_type` VALUES (7,'address','country'),(8,'address','useraddress'),(9,'admin','logentry'),(27,'analytics','productrecord'),(24,'analytics','userproductview'),(25,'analytics','userrecord'),(26,'analytics','usersearch'),(3,'auth','group'),(2,'auth','permission'),(43,'basket','basket'),(41,'basket','basketattribute'),(42,'basket','basketattributetype'),(44,'basket','line'),(45,'basket','lineattribute'),(10,'catalogue','attributeoption'),(18,'catalogue','attributeoptiongroup'),(15,'catalogue','catalog'),(14,'catalogue','category'),(23,'catalogue','historicalproduct'),(22,'catalogue','historicalproductattributevalue'),(12,'catalogue','option'),(11,'catalogue','product'),(17,'catalogue','productattribute'),(20,'catalogue','productattributevalue'),(21,'catalogue','productcategory'),(13,'catalogue','productclass'),(19,'catalogue','productimage'),(16,'catalogue','productrecommendation'),(1,'contenttypes','contenttype'),(77,'core','businessclient'),(6,'core','client'),(4,'core','siteconfiguration'),(5,'core','user'),(69,'courses','course'),(78,'courses','historicalcourse'),(39,'customer','communicationeventtype'),(38,'customer','email'),(40,'customer','notification'),(37,'customer','productalert'),(70,'flatpages','flatpage'),(79,'invoice','historicalinvoice'),(80,'invoice','invoice'),(106,'offer','absolutediscountbenefit'),(62,'offer','benefit'),(64,'offer','condition'),(65,'offer','conditionaloffer'),(102,'offer','countcondition'),(101,'offer','coveragecondition'),(110,'offer','fixedpricebenefit'),(104,'offer','multibuydiscountbenefit'),(109,'offer','percentagediscountbenefit'),(63,'offer','range'),(61,'offer','rangeproduct'),(66,'offer','rangeproductfileupload'),(108,'offer','shippingabsolutediscountbenefit'),(107,'offer','shippingbenefit'),(100,'offer','shippingfixedpricebenefit'),(105,'offer','shippingpercentagediscountbenefit'),(103,'offer','valuecondition'),(48,'order','billingaddress'),(52,'order','communicationevent'),(112,'order','historicalline'),(111,'order','historicalorder'),(50,'order','line'),(59,'order','lineattribute'),(46,'order','lineprice'),(54,'order','order'),(60,'order','orderdiscount'),(53,'order','ordernote'),(51,'order','paymentevent'),(55,'order','paymenteventquantity'),(58,'order','paymenteventtype'),(47,'order','shippingaddress'),(49,'order','shippingevent'),(57,'order','shippingeventquantity'),(56,'order','shippingeventtype'),(32,'partner','historicalstockrecord'),(33,'partner','partner'),(34,'partner','partneraddress'),(36,'partner','stockalert'),(35,'partner','stockrecord'),(94,'payment','bankcard'),(95,'payment','paymentprocessorresponse'),(93,'payment','paypalprocessorconfiguration'),(92,'payment','paypalwebprofile'),(98,'payment','sdncheckfailure'),(99,'payment','source'),(97,'payment','sourcetype'),(96,'payment','transaction'),(113,'promotions','automaticproductlist'),(120,'promotions','handpickedproductlist'),(115,'promotions','image'),(123,'promotions','keywordpromotion'),(116,'promotions','multiimage'),(117,'promotions','orderedproduct'),(121,'promotions','orderedproductlist'),(119,'promotions','pagepromotion'),(114,'promotions','rawhtml'),(122,'promotions','singleproduct'),(118,'promotions','tabbedblock'),(81,'referrals','referral'),(86,'refund','historicalrefund'),(83,'refund','historicalrefundline'),(85,'refund','refund'),(84,'refund','refundline'),(91,'reviews','productreview'),(90,'reviews','vote'),(71,'sessions','session'),(88,'shipping','orderanditemcharges'),(89,'shipping','weightband'),(87,'shipping','weightbased'),(31,'sites','site'),(74,'social_django','association'),(73,'social_django','code'),(72,'social_django','nonce'),(75,'social_django','partial'),(76,'social_django','usersocialauth'),(82,'theming','sitetheme'),(128,'thumbnail','kvstore'),(125,'voucher','couponvouchers'),(124,'voucher','orderlinevouchers'),(68,'voucher','voucher'),(67,'voucher','voucherapplication'),(30,'waffle','flag'),(28,'waffle','sample'),(29,'waffle','switch'),(127,'wishlists','line'),(126,'wishlists','wishlist'); +INSERT INTO `django_content_type` VALUES (1,'address','country'),(2,'address','useraddress'),(3,'admin','logentry'),(4,'analytics','productrecord'),(5,'analytics','userproductview'),(6,'analytics','userrecord'),(7,'analytics','usersearch'),(9,'auth','group'),(8,'auth','permission'),(10,'basket','basket'),(13,'basket','basketattribute'),(14,'basket','basketattributetype'),(11,'basket','line'),(12,'basket','lineattribute'),(15,'catalogue','attributeoption'),(16,'catalogue','attributeoptiongroup'),(26,'catalogue','catalog'),(17,'catalogue','category'),(29,'catalogue','historicalcategory'),(30,'catalogue','historicaloption'),(27,'catalogue','historicalproduct'),(31,'catalogue','historicalproductattribute'),(28,'catalogue','historicalproductattributevalue'),(32,'catalogue','historicalproductcategory'),(33,'catalogue','historicalproductclass'),(18,'catalogue','option'),(19,'catalogue','product'),(20,'catalogue','productattribute'),(21,'catalogue','productattributevalue'),(22,'catalogue','productcategory'),(23,'catalogue','productclass'),(24,'catalogue','productimage'),(25,'catalogue','productrecommendation'),(150,'communication','communicationeventtype'),(152,'communication','email'),(151,'communication','notification'),(34,'contenttypes','contenttype'),(92,'core','businessclient'),(37,'core','client'),(93,'core','ecommercefeaturerole'),(94,'core','ecommercefeatureroleassignment'),(95,'core','historicalbusinessclient'),(36,'core','siteconfiguration'),(35,'core','user'),(38,'courses','course'),(96,'courses','historicalcourse'),(39,'customer','communicationeventtype'),(40,'customer','email'),(41,'customer','notification'),(42,'customer','productalert'),(85,'flatpages','flatpage'),(155,'iap','iapprocessorconfiguration'),(156,'iap','paymentprocessorresponseextension'),(98,'invoice','historicalinvoice'),(97,'invoice','invoice'),(49,'offer','absolutediscountbenefit'),(43,'offer','benefit'),(123,'offer','codeassignmentnudgeemails'),(122,'offer','codeassignmentnudgeemailtemplates'),(44,'offer','condition'),(45,'offer','conditionaloffer'),(50,'offer','countcondition'),(51,'offer','coveragecondition'),(52,'offer','fixedpricebenefit'),(114,'offer','historicalbenefit'),(115,'offer','historicalcondition'),(116,'offer','historicalconditionaloffer'),(117,'offer','historicalofferassignment'),(118,'offer','historicalrange'),(119,'offer','historicalrangeproduct'),(53,'offer','multibuydiscountbenefit'),(112,'offer','offerassignment'),(113,'offer','offerassignmentemailattempt'),(124,'offer','offerassignmentemailsentrecord'),(120,'offer','offerassignmentemailtemplates'),(121,'offer','offerusageemail'),(54,'offer','percentagediscountbenefit'),(46,'offer','range'),(47,'offer','rangeproduct'),(48,'offer','rangeproductfileupload'),(56,'offer','shippingabsolutediscountbenefit'),(55,'offer','shippingbenefit'),(57,'offer','shippingfixedpricebenefit'),(58,'offer','shippingpercentagediscountbenefit'),(153,'offer','templatefileattachment'),(59,'offer','valuecondition'),(60,'order','billingaddress'),(61,'order','communicationevent'),(125,'order','historicalline'),(126,'order','historicalorder'),(129,'order','historicalorderdiscount'),(62,'order','line'),(63,'order','lineattribute'),(64,'order','lineprice'),(127,'order','manualenrollmentorderdiscountbenefit'),(128,'order','manualenrollmentorderdiscountcondition'),(131,'order','markordersstatuscompleteconfig'),(65,'order','order'),(66,'order','orderdiscount'),(67,'order','ordernote'),(130,'order','orderstatuschange'),(68,'order','paymentevent'),(69,'order','paymenteventquantity'),(70,'order','paymenteventtype'),(71,'order','shippingaddress'),(72,'order','shippingevent'),(73,'order','shippingeventquantity'),(74,'order','shippingeventtype'),(154,'order','surcharge'),(133,'partner','historicalpartner'),(132,'partner','historicalstockrecord'),(75,'partner','partner'),(76,'partner','partneraddress'),(77,'partner','stockalert'),(78,'partner','stockrecord'),(134,'payment','bankcard'),(142,'payment','enterprisecontractmetadata'),(138,'payment','paymentprocessorresponse'),(140,'payment','paypalprocessorconfiguration'),(139,'payment','paypalwebprofile'),(141,'payment','sdncheckfailure'),(144,'payment','sdnfallbackdata'),(143,'payment','sdnfallbackmetadata'),(135,'payment','source'),(136,'payment','sourcetype'),(137,'payment','transaction'),(99,'referrals','referral'),(110,'refund','historicalrefund'),(111,'refund','historicalrefundline'),(108,'refund','refund'),(109,'refund','refundline'),(104,'reviews','productreview'),(105,'reviews','vote'),(86,'sessions','session'),(101,'shipping','orderanditemcharges'),(102,'shipping','weightband'),(103,'shipping','weightbased'),(79,'sites','site'),(87,'social_django','association'),(88,'social_django','code'),(89,'social_django','nonce'),(91,'social_django','partial'),(90,'social_django','usersocialauth'),(100,'theming','sitetheme'),(149,'thumbnail','kvstore'),(145,'voucher','couponvouchers'),(148,'voucher','historicalvoucherapplication'),(146,'voucher','orderlinevouchers'),(80,'voucher','voucher'),(81,'voucher','voucherapplication'),(147,'voucher','voucherset'),(82,'waffle','flag'),(83,'waffle','sample'),(84,'waffle','switch'),(106,'wishlists','line'),(107,'wishlists','wishlist'); /*!40000 ALTER TABLE `django_content_type` ENABLE KEYS */; UNLOCK TABLES; @@ -1240,7 +1703,7 @@ CREATE TABLE `django_flatpage` ( `template_name` varchar(70) NOT NULL, `registration_required` tinyint(1) NOT NULL, PRIMARY KEY (`id`), - KEY `django_flatpage_572d4e42` (`url`) + KEY `django_flatpage_url_41612362` (`url`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1264,7 +1727,7 @@ CREATE TABLE `django_flatpage_sites` ( `flatpage_id` int(11) NOT NULL, `site_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `django_flatpage_sites_flatpage_id_0d29d9d1_uniq` (`flatpage_id`,`site_id`), + UNIQUE KEY `django_flatpage_sites_flatpage_id_site_id_0d29d9d1_uniq` (`flatpage_id`,`site_id`), KEY `django_flatpage_sites_site_id_bfd8ea84_fk_django_site_id` (`site_id`), CONSTRAINT `django_flatpage_sites_flatpage_id_078bbc8b_fk_django_flatpage_id` FOREIGN KEY (`flatpage_id`) REFERENCES `django_flatpage` (`id`), CONSTRAINT `django_flatpage_sites_site_id_bfd8ea84_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) @@ -1292,7 +1755,7 @@ CREATE TABLE `django_migrations` ( `name` varchar(255) NOT NULL, `applied` datetime(6) NOT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=224 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=400 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1301,7 +1764,7 @@ CREATE TABLE `django_migrations` ( LOCK TABLES `django_migrations` WRITE; /*!40000 ALTER TABLE `django_migrations` DISABLE KEYS */; -INSERT INTO `django_migrations` VALUES (1,'contenttypes','0001_initial','2017-06-21 16:05:49.551317'),(2,'auth','0001_initial','2017-06-21 16:05:49.673816'),(3,'core','0001_initial','2017-06-21 16:05:49.807312'),(4,'address','0001_initial','2017-06-21 16:05:49.926981'),(5,'admin','0001_initial','2017-06-21 16:05:49.993513'),(6,'admin','0002_logentry_remove_auto_add','2017-06-21 16:05:50.016405'),(7,'catalogue','0001_initial','2017-06-21 16:05:51.003261'),(8,'analytics','0001_initial','2017-06-21 16:05:51.281021'),(9,'analytics','0002_auto_20140827_1705','2017-06-21 16:05:51.471947'),(10,'contenttypes','0002_remove_content_type_name','2017-06-21 16:05:51.605464'),(11,'auth','0002_alter_permission_name_max_length','2017-06-21 16:05:51.667690'),(12,'auth','0003_alter_user_email_max_length','2017-06-21 16:05:51.704038'),(13,'auth','0004_alter_user_username_opts','2017-06-21 16:05:51.767547'),(14,'auth','0005_alter_user_last_login_null','2017-06-21 16:05:51.806075'),(15,'auth','0006_require_contenttypes_0002','2017-06-21 16:05:51.810382'),(16,'auth','0007_alter_validators_add_error_messages','2017-06-21 16:05:51.872874'),(17,'auth','0008_alter_user_username_max_length','2017-06-21 16:05:51.913960'),(18,'waffle','0001_initial','2017-06-21 16:05:52.135884'),(19,'sites','0001_initial','2017-06-21 16:05:52.152571'),(20,'partner','0001_initial','2017-06-21 16:05:52.734436'),(21,'customer','0001_initial','2017-06-21 16:05:52.981986'),(22,'basket','0001_initial','2017-06-21 16:05:53.054902'),(23,'basket','0002_auto_20140827_1705','2017-06-21 16:05:53.481365'),(24,'order','0001_initial','2017-06-21 16:05:56.279225'),(25,'offer','0001_initial','2017-06-21 16:05:57.369962'),(26,'voucher','0001_initial','2017-06-21 16:05:57.774380'),(27,'basket','0003_basket_vouchers','2017-06-21 16:05:57.898606'),(28,'basket','0004_auto_20141007_2032','2017-06-21 16:05:57.998004'),(29,'basket','0005_auto_20150709_1205','2017-06-21 16:05:58.126583'),(30,'basket','0006_basket_site','2017-06-21 16:05:58.260271'),(31,'basket','0007_auto_20160907_2040','2017-06-21 16:05:58.666312'),(32,'basket','0008_auto_20170215_2224','2017-06-21 16:05:58.762045'),(33,'basket','0009_auto_20170215_2229','2017-06-21 16:05:58.853370'),(34,'basket','0010_create_repeat_purchase_switch','2017-06-21 16:05:58.868269'),(35,'partner','0002_auto_20141007_2032','2017-06-21 16:05:58.959479'),(36,'partner','0003_auto_20150223_1130','2017-06-21 16:05:58.964988'),(37,'courses','0001_initial','2017-06-21 16:05:58.985294'),(38,'catalogue','0002_auto_20150223_1052','2017-06-21 16:05:58.999844'),(39,'catalogue','0003_product_course','2017-06-21 16:05:59.132713'),(40,'catalogue','0004_auto_20150609_0129','2017-06-21 16:05:59.832827'),(41,'partner','0004_auto_20150609_1215','2017-06-21 16:06:00.097699'),(42,'partner','0005_auto_20150610_1355','2017-06-21 16:06:00.505369'),(43,'partner','0006_auto_20150709_1205','2017-06-21 16:06:00.652897'),(44,'partner','0007_auto_20150914_0841','2017-06-21 16:06:00.915471'),(45,'partner','0008_auto_20150914_1057','2017-06-21 16:06:01.102651'),(46,'catalogue','0005_auto_20150610_1355','2017-06-21 16:06:01.848561'),(47,'catalogue','0006_credit_provider_attr','2017-06-21 16:06:01.863528'),(48,'catalogue','0007_auto_20150709_1205','2017-06-21 16:06:02.686841'),(49,'catalogue','0008_auto_20150709_1254','2017-06-21 16:06:02.949476'),(50,'catalogue','0009_credit_hours_attr','2017-06-21 16:06:02.967837'),(51,'catalogue','0010_catalog','2017-06-21 16:06:03.143270'),(52,'catalogue','0011_auto_20151019_0639','2017-06-21 16:06:03.413804'),(53,'catalogue','0012_enrollment_code_product_class','2017-06-21 16:06:03.419622'),(54,'catalogue','0013_coupon_product_class','2017-06-21 16:06:03.443933'),(55,'catalogue','0014_alter_couponvouchers_attribute','2017-06-21 16:06:03.460062'),(56,'catalogue','0015_default_categories','2017-06-21 16:06:03.550800'),(57,'catalogue','0016_coupon_note_attribute','2017-06-21 16:06:03.567405'),(58,'catalogue','0017_enrollment_code_product_class','2017-06-21 16:06:03.580494'),(59,'catalogue','0018_auto_20160530_0134','2017-06-21 16:06:03.680446'),(60,'catalogue','0019_enrollment_code_idverifyreq_attribute','2017-06-21 16:06:03.696244'),(61,'catalogue','0020_auto_20161025_1446','2017-06-21 16:06:03.794998'),(62,'catalogue','0021_auto_20170215_2224','2017-06-21 16:06:04.003025'),(63,'catalogue','0022_auto_20170215_2229','2017-06-21 16:06:04.103362'),(64,'catalogue','0023_auto_20170215_2234','2017-06-21 16:06:04.333640'),(65,'catalogue','0024_fix_enrollment_code_slug','2017-06-21 16:06:04.354223'),(66,'core','0002_auto_20150826_1455','2017-06-21 16:06:04.891149'),(67,'core','0003_auto_20150914_1120','2017-06-21 16:06:05.276691'),(68,'core','0004_auto_20150915_1023','2017-06-21 16:06:05.401159'),(69,'core','0005_auto_20150924_0123','2017-06-21 16:06:05.420381'),(70,'core','0006_add_service_user','2017-06-21 16:06:05.436037'),(71,'core','0007_auto_20151005_1333','2017-06-21 16:06:05.451894'),(72,'core','0008_client','2017-06-21 16:06:05.576998'),(73,'core','0009_service_user_privileges','2017-06-21 16:06:05.818551'),(74,'core','0010_add_async_sample','2017-06-21 16:06:05.833429'),(75,'core','0011_siteconfiguration_oauth_settings','2017-06-21 16:06:05.949988'),(76,'core','0012_businessclient','2017-06-21 16:06:05.976250'),(77,'core','0013_siteconfiguration_segment_key','2017-06-21 16:06:06.205485'),(78,'core','0014_enrollment_code_switch','2017-06-21 16:06:06.220427'),(79,'core','0015_siteconfiguration_from_email','2017-06-21 16:06:06.338747'),(80,'core','0016_siteconfiguration_enable_enrollment_codes','2017-06-21 16:06:06.460846'),(81,'core','0017_siteconfiguration_payment_support_email','2017-06-21 16:06:06.581720'),(82,'core','0018_siteconfiguration_payment_support_url','2017-06-21 16:06:06.704463'),(83,'core','0019_auto_20161012_1404','2017-06-21 16:06:07.064038'),(84,'core','0020_siteconfiguration_enable_otto_receipt_page','2017-06-21 16:06:07.182648'),(85,'core','0021_siteconfiguration_client_side_payment_processor','2017-06-21 16:06:07.301689'),(86,'core','0022_auto_20161108_2101','2017-06-21 16:06:07.404661'),(87,'core','0023_siteconfiguration_send_refund_notifications','2017-06-21 16:06:07.523941'),(88,'core','0024_auto_20170208_1520','2017-06-21 16:06:08.105558'),(89,'core','0025_auto_20170214_0003','2017-06-21 16:06:08.203122'),(90,'core','0026_auto_20170215_2234','2017-06-21 16:06:08.306396'),(91,'core','0027_siteconfiguration_require_account_activation','2017-06-21 16:06:08.552051'),(92,'core','0028_siteconfiguration_optimizely_snippet_src','2017-06-21 16:06:08.666797'),(93,'core','0029_auto_20170525_2131','2017-06-21 16:06:08.778008'),(94,'core','0030_auto_20170525_2134','2017-06-21 16:06:09.001822'),(95,'core','0031_siteconfiguration_enable_sailthru','2017-06-21 16:06:09.127717'),(96,'core','0032_auto_20170602_0516','2017-06-21 16:06:09.349844'),(97,'core','0033_auto_20170606_0539','2017-06-21 16:06:09.365479'),(98,'core','0034_auto_20170613_2039','2017-06-21 16:06:09.472448'),(99,'core','0035_siteconfiguration_base_cookie_domain','2017-06-21 16:06:09.585163'),(100,'sites','0002_alter_domain_unique','2017-06-21 16:06:09.691529'),(101,'courses','0002_historicalcourse','2017-06-21 16:06:09.819716'),(102,'courses','0003_auto_20150618_1108','2017-06-21 16:06:10.171366'),(103,'courses','0004_auto_20150803_1406','2017-06-21 16:06:10.391371'),(104,'courses','0005_auto_20170525_0131','2017-06-21 16:06:10.887317'),(105,'customer','0002_auto_20160517_0930','2017-06-21 16:06:10.986331'),(106,'customer','0003_auto_20170215_2229','2017-06-21 16:06:11.110497'),(107,'flatpages','0001_initial','2017-06-21 16:06:11.266107'),(108,'order','0002_auto_20141007_2032','2017-06-21 16:06:11.376644'),(109,'order','0003_auto_20150224_1520','2017-06-21 16:06:11.390396'),(110,'order','0004_order_payment_processor','2017-06-21 16:06:11.632563'),(111,'order','0005_deprecate_order_payment_processor','2017-06-21 16:06:11.750681'),(112,'order','0006_paymentevent_processor_name','2017-06-21 16:06:11.865118'),(113,'order','0007_create_history_tables','2017-06-21 16:06:12.187771'),(114,'order','0008_delete_order_payment_processor','2017-06-21 16:06:12.574357'),(115,'order','0009_auto_20150709_1205','2017-06-21 16:06:12.777236'),(116,'invoice','0001_initial','2017-06-21 16:06:13.040948'),(117,'invoice','0002_auto_20160324_1919','2017-06-21 16:06:13.816402'),(118,'invoice','0003_auto_20160616_0657','2017-06-21 16:06:15.760107'),(119,'invoice','0004_auto_20170215_2234','2017-06-21 16:06:16.147364'),(120,'offer','0002_range_catalog','2017-06-21 16:06:16.416336'),(121,'offer','0003_auto_20160517_1247','2017-06-21 16:06:16.710751'),(122,'offer','0004_auto_20160530_0944','2017-06-21 16:06:16.837796'),(123,'offer','0005_conditionaloffer_email_domains','2017-06-21 16:06:16.973152'),(124,'offer','0006_auto_20161025_1446','2017-06-21 16:06:17.219424'),(125,'offer','0007_auto_20161026_0856','2017-06-21 16:06:17.346607'),(126,'offer','0008_range_course_catalog','2017-06-21 16:06:17.477979'),(127,'offer','0009_range_enterprise_customer','2017-06-21 16:06:17.613167'),(128,'offer','0010_auto_20170215_2224','2017-06-21 16:06:17.739899'),(129,'offer','0011_auto_20170215_2324','2017-06-21 16:06:17.863985'),(130,'offer','0012_condition_program_uuid','2017-06-21 16:06:18.129709'),(131,'order','0010_auto_20160529_2245','2017-06-21 16:06:18.254820'),(132,'order','0011_auto_20161025_1446','2017-06-21 16:06:18.371561'),(133,'order','0012_auto_20170215_2224','2017-06-21 16:06:18.489137'),(134,'order','0013_auto_20170215_2229','2017-06-21 16:06:18.885862'),(135,'order','0014_auto_20170606_0535','2017-06-21 16:06:18.903407'),(136,'partner','0009_partner_enable_sailthru','2017-06-21 16:06:19.035418'),(137,'partner','0010_auto_20161025_1446','2017-06-21 16:06:19.151682'),(138,'partner','0011_auto_20170525_2138','2017-06-21 16:06:19.267604'),(139,'payment','0001_initial','2017-06-21 16:06:19.976606'),(140,'payment','0002_auto_20141007_2032','2017-06-21 16:06:20.103018'),(141,'payment','0003_create_payment_processor_response','2017-06-21 16:06:20.493407'),(142,'payment','0004_source_card_type','2017-06-21 16:06:20.625358'),(143,'payment','0005_paypalwebprofile','2017-06-21 16:06:20.647990'),(144,'payment','0006_enable_payment_processors','2017-06-21 16:06:20.663730'),(145,'payment','0007_add_cybersource_level23_sample','2017-06-21 16:06:20.681480'),(146,'payment','0008_remove_cybersource_level23_sample','2017-06-21 16:06:20.698834'),(147,'payment','0009_auto_20161025_1446','2017-06-21 16:06:20.822359'),(148,'payment','0010_create_client_side_checkout_flag','2017-06-21 16:06:20.839799'),(149,'payment','0011_paypalprocessorconfiguration','2017-06-21 16:06:20.862305'),(150,'payment','0012_auto_20161109_1456','2017-06-21 16:06:20.878022'),(151,'payment','0013_sdncheckfailure','2017-06-21 16:06:20.903319'),(152,'payment','0014_sdncheckfailure_site','2017-06-21 16:06:21.063991'),(153,'payment','0015_auto_20170215_2229','2017-06-21 16:06:21.339661'),(154,'payment','0016_auto_20170227_1402','2017-06-21 16:06:21.635754'),(155,'payment','0017_auto_20170328_1445','2017-06-21 16:06:21.899514'),(156,'programs','0001_initial','2017-06-21 16:06:22.063843'),(157,'promotions','0001_initial','2017-06-21 16:06:23.284416'),(158,'promotions','0002_auto_20150604_1450','2017-06-21 16:06:23.465607'),(159,'referrals','0001_initial','2017-06-21 16:06:23.757288'),(160,'referrals','0002_auto_20161011_1728','2017-06-21 16:06:25.029171'),(161,'referrals','0003_auto_20161027_1738','2017-06-21 16:06:25.312302'),(162,'referrals','0004_auto_20170215_2234','2017-06-21 16:06:25.609480'),(163,'refund','0001_squashed_0002_auto_20150515_2220','2017-06-21 16:06:26.575513'),(164,'refund','0002_auto_20151214_1017','2017-06-21 16:06:27.232747'),(165,'reviews','0001_initial','2017-06-21 16:06:27.985315'),(166,'reviews','0002_update_email_length','2017-06-21 16:06:28.139106'),(167,'reviews','0003_auto_20160802_1358','2017-06-21 16:06:28.403386'),(168,'sailthru','0001_initial','2017-06-21 16:06:28.421924'),(169,'sailthru','0002_add_basket_attribute_type','2017-06-21 16:06:28.437071'),(170,'sessions','0001_initial','2017-06-21 16:06:28.468366'),(171,'shipping','0001_initial','2017-06-21 16:06:29.014968'),(172,'shipping','0002_auto_20150604_1450','2017-06-21 16:06:29.505730'),(173,'default','0001_initial','2017-06-21 16:06:30.043098'),(174,'social_auth','0001_initial','2017-06-21 16:06:30.049813'),(175,'default','0002_add_related_name','2017-06-21 16:06:30.223472'),(176,'social_auth','0002_add_related_name','2017-06-21 16:06:30.229770'),(177,'default','0003_alter_email_max_length','2017-06-21 16:06:30.263494'),(178,'social_auth','0003_alter_email_max_length','2017-06-21 16:06:30.270071'),(179,'default','0004_auto_20160423_0400','2017-06-21 16:06:30.419632'),(180,'social_auth','0004_auto_20160423_0400','2017-06-21 16:06:30.426254'),(181,'social_auth','0005_auto_20160727_2333','2017-06-21 16:06:30.450190'),(182,'social_django','0006_partial','2017-06-21 16:06:30.481230'),(183,'theming','0001_initial','2017-06-21 16:06:30.652332'),(184,'thumbnail','0001_initial','2017-06-21 16:06:30.677127'),(185,'voucher','0002_couponvouchers','2017-06-21 16:06:31.021983'),(186,'voucher','0003_orderlinevouchers','2017-06-21 16:06:31.223652'),(187,'voucher','0004_auto_20160517_0930','2017-06-21 16:06:31.400781'),(188,'wishlists','0001_initial','2017-06-21 16:06:32.217424'),(189,'wishlists','0002_auto_20160111_1108','2017-06-21 16:06:32.518710'),(190,'social_django','0002_add_related_name','2017-06-21 16:06:32.532458'),(191,'social_django','0003_alter_email_max_length','2017-06-21 16:06:32.538204'),(192,'social_django','0001_initial','2017-06-21 16:06:32.543488'),(193,'social_django','0004_auto_20160423_0400','2017-06-21 16:06:32.550442'),(194,'social_django','0005_auto_20160727_2333','2017-06-21 16:06:32.557222'),(195,'catalogue','0025_course_entitlement','2018-02-02 15:04:36.043989'),(196,'catalogue','0026_course_entitlement_attr_change','2018-02-02 15:04:36.066765'),(197,'catalogue','0027_catalogue_entitlement_option','2018-02-02 15:04:36.084135'),(198,'catalogue','0028_donations_from_checkout_tests_product_type','2018-02-02 15:04:36.106716'),(199,'catalogue','0029_auto_20180119_0903','2018-02-02 15:04:37.915699'),(200,'core','0036_remove_siteconfiguration_enable_otto_receipt_page','2018-02-02 15:04:38.220718'),(201,'core','0037_siteconfiguration_enable_embargo_check','2018-02-02 15:04:38.456875'),(202,'core','0038_siteconfiguration_discovery_api_url','2018-02-02 15:04:38.629571'),(203,'core','0039_auto_20170716_2212','2018-02-02 15:04:39.070212'),(204,'core','0040_siteconfiguration__allowed_segment_events','2018-02-02 15:04:39.251384'),(205,'core','0041_remove_siteconfiguration__allowed_segment_events','2018-02-02 15:04:39.427232'),(206,'core','0042_siteconfiguration_enable_partial_program','2018-02-02 15:04:39.601100'),(207,'core','0043_auto_20170808_1009','2018-02-02 15:04:39.878005'),(208,'courses','0006_auto_20171204_1036','2018-02-02 15:04:40.633011'),(209,'courses','0007_auto_20180119_0903','2018-02-02 15:04:40.978205'),(210,'enterprise','0001_initial','2018-02-02 15:04:41.023420'),(211,'enterprise','0002_add_enterprise_offers_switch','2018-02-02 15:04:41.047719'),(212,'enterprise','0003_add_enable_enterprise_switch','2018-02-02 15:04:41.070982'),(213,'invoice','0005_auto_20180119_0903','2018-02-02 15:04:41.995282'),(214,'offer','0013_auto_20170801_0742','2018-02-02 15:04:42.147161'),(215,'offer','0014_conditionaloffer_site','2018-02-02 15:04:42.337828'),(216,'offer','0015_auto_20170926_1357','2018-02-02 15:04:42.960556'),(217,'order','0015_create_disable_repeat_order_check_switch','2018-02-02 15:04:42.984712'),(218,'order','0016_auto_20180119_0903','2018-02-02 15:04:45.150878'),(219,'partner','0012_auto_20180119_0903','2018-02-02 15:04:45.632992'),(220,'payment','0018_create_stripe_switch','2018-02-02 15:04:45.653982'),(221,'programs','0002_add_basket_attribute_type','2018-02-02 15:04:45.675431'),(222,'refund','0003_auto_20180119_0903','2018-02-02 15:04:46.889521'),(223,'waffle','0002_auto_20161201_0958','2018-02-02 15:04:46.910687'); +INSERT INTO `django_migrations` VALUES (1,'contenttypes','0001_initial','2021-07-30 20:16:49.194661'),(2,'auth','0001_initial','2021-07-30 20:16:49.260236'),(3,'core','0001_initial','2021-07-30 20:16:49.433072'),(4,'address','0001_initial','2021-07-30 20:16:49.656461'),(5,'address','0002_auto_20150927_1547','2021-07-30 20:16:49.797240'),(6,'address','0003_auto_20150927_1551','2021-07-30 20:16:49.825385'),(7,'address','0004_auto_20170226_1122','2021-07-30 20:16:49.846392'),(8,'address','0005_regenerate_user_address_hashes','2021-07-30 20:16:49.862673'),(9,'address','0006_auto_20181115_1953','2021-07-30 20:16:49.882139'),(10,'admin','0001_initial','2021-07-30 20:16:49.997619'),(11,'admin','0002_logentry_remove_auto_add','2021-07-30 20:16:50.057639'),(12,'admin','0003_logentry_add_action_flag_choices','2021-07-30 20:16:50.070231'),(13,'catalogue','0001_initial','2021-07-30 20:16:50.665573'),(14,'analytics','0001_initial','2021-07-30 20:16:51.314013'),(15,'analytics','0002_auto_20140827_1705','2021-07-30 20:16:51.541130'),(16,'contenttypes','0002_remove_content_type_name','2021-07-30 20:16:51.703335'),(17,'auth','0002_alter_permission_name_max_length','2021-07-30 20:16:51.738682'),(18,'auth','0003_alter_user_email_max_length','2021-07-30 20:16:51.750804'),(19,'auth','0004_alter_user_username_opts','2021-07-30 20:16:51.764965'),(20,'auth','0005_alter_user_last_login_null','2021-07-30 20:16:51.778120'),(21,'auth','0006_require_contenttypes_0002','2021-07-30 20:16:51.784387'),(22,'auth','0007_alter_validators_add_error_messages','2021-07-30 20:16:51.797880'),(23,'auth','0008_alter_user_username_max_length','2021-07-30 20:16:51.810602'),(24,'auth','0009_alter_user_last_name_max_length','2021-07-30 20:16:51.822770'),(25,'auth','0010_alter_group_name_max_length','2021-07-30 20:16:51.859872'),(26,'auth','0011_update_proxy_permissions','2021-07-30 20:16:51.889191'),(27,'waffle','0001_initial','2021-07-30 20:16:51.982858'),(28,'sites','0001_initial','2021-07-30 20:16:52.144381'),(29,'partner','0001_initial','2021-07-30 20:16:52.503890'),(30,'customer','0001_initial','2021-07-30 20:16:52.863083'),(31,'basket','0001_initial','2021-07-30 20:16:53.059798'),(32,'basket','0002_auto_20140827_1705','2021-07-30 20:16:53.388943'),(33,'order','0001_initial','2021-07-30 20:16:55.639963'),(34,'offer','0001_initial','2021-07-30 20:16:56.919863'),(35,'voucher','0001_initial','2021-07-30 20:16:57.466038'),(36,'basket','0003_basket_vouchers','2021-07-30 20:16:57.819643'),(37,'basket','0004_auto_20141007_2032','2021-07-30 20:16:57.914784'),(38,'basket','0005_auto_20150709_1205','2021-07-30 20:16:58.037508'),(39,'basket','0006_basket_site','2021-07-30 20:16:58.116112'),(40,'basket','0007_auto_20160907_2040','2021-07-30 20:16:58.304516'),(41,'basket','0008_auto_20170215_2224','2021-07-30 20:16:58.382415'),(42,'basket','0009_auto_20170215_2229','2021-07-30 20:16:58.417737'),(43,'basket','0010_create_repeat_purchase_switch','2021-07-30 20:16:58.485719'),(44,'basket','0011_add_email_basket_attribute_type','2021-07-30 20:16:58.557257'),(45,'basket','0012_add_purchaser_basket_attribute','2021-07-30 20:16:58.630883'),(46,'basket','0013_auto_20200305_1448','2021-07-30 20:16:58.816174'),(47,'sites','0002_alter_domain_unique','2021-07-30 20:16:58.838016'),(48,'partner','0002_auto_20141007_2032','2021-07-30 20:16:58.869836'),(49,'partner','0003_auto_20150223_1130','2021-07-30 20:16:58.874183'),(50,'courses','0001_initial','2021-07-30 20:16:58.894953'),(51,'catalogue','0002_auto_20150223_1052','2021-07-30 20:16:58.971694'),(52,'catalogue','0003_product_course','2021-07-30 20:16:59.056059'),(53,'catalogue','0004_auto_20150609_0129','2021-07-30 20:16:59.403109'),(54,'partner','0004_auto_20150609_1215','2021-07-30 20:16:59.785451'),(55,'partner','0005_auto_20150610_1355','2021-07-30 20:17:00.196282'),(56,'partner','0006_auto_20150709_1205','2021-07-30 20:17:00.316042'),(57,'partner','0007_auto_20150914_0841','2021-07-30 20:17:00.470922'),(58,'partner','0008_auto_20150914_1057','2021-07-30 20:17:00.527657'),(59,'partner','0009_partner_enable_sailthru','2021-07-30 20:17:00.587956'),(60,'partner','0010_auto_20161025_1446','2021-07-30 20:17:00.624439'),(61,'partner','0011_auto_20170525_2138','2021-07-30 20:17:00.660408'),(62,'partner','0012_auto_20180119_0903','2021-07-30 20:17:00.922927'),(63,'partner','0013_partner_default_site','2021-07-30 20:17:01.226821'),(64,'courses','0002_historicalcourse','2021-07-30 20:17:01.325893'),(65,'courses','0003_auto_20150618_1108','2021-07-30 20:17:01.435088'),(66,'courses','0004_auto_20150803_1406','2021-07-30 20:17:01.512385'),(67,'courses','0005_auto_20170525_0131','2021-07-30 20:17:01.801507'),(68,'courses','0006_auto_20171204_1036','2021-07-30 20:17:02.020721'),(69,'courses','0007_auto_20180119_0903','2021-07-30 20:17:02.349246'),(70,'courses','0008_course_partner','2021-07-30 20:17:02.421005'),(71,'courses','0009_allow_site_to_be_nullable','2021-07-30 20:17:02.554504'),(72,'courses','0010_migrate_partner_data_to_courses','2021-07-30 20:17:02.729304'),(73,'catalogue','0005_auto_20150610_1355','2021-07-30 20:17:03.078444'),(74,'catalogue','0006_credit_provider_attr','2021-07-30 20:17:03.158892'),(75,'catalogue','0007_auto_20150709_1205','2021-07-30 20:17:03.562848'),(76,'catalogue','0008_auto_20150709_1254','2021-07-30 20:17:03.685735'),(77,'catalogue','0009_credit_hours_attr','2021-07-30 20:17:03.764861'),(78,'catalogue','0010_catalog','2021-07-30 20:17:03.851121'),(79,'catalogue','0011_auto_20151019_0639','2021-07-30 20:17:04.052535'),(80,'catalogue','0012_enrollment_code_product_class','2021-07-30 20:17:04.056220'),(81,'catalogue','0013_coupon_product_class','2021-07-30 20:17:04.216020'),(82,'catalogue','0014_alter_couponvouchers_attribute','2021-07-30 20:17:04.297883'),(83,'catalogue','0015_default_categories','2021-07-30 20:17:04.466240'),(84,'catalogue','0016_coupon_note_attribute','2021-07-30 20:17:04.717186'),(85,'catalogue','0017_enrollment_code_product_class','2021-07-30 20:17:04.800080'),(86,'catalogue','0018_auto_20160530_0134','2021-07-30 20:17:04.831745'),(87,'catalogue','0019_enrollment_code_idverifyreq_attribute','2021-07-30 20:17:04.910819'),(88,'catalogue','0020_auto_20161025_1446','2021-07-30 20:17:04.943953'),(89,'catalogue','0021_auto_20170215_2224','2021-07-30 20:17:04.993195'),(90,'catalogue','0022_auto_20170215_2229','2021-07-30 20:17:05.010770'),(91,'catalogue','0023_auto_20170215_2234','2021-07-30 20:17:05.069002'),(92,'catalogue','0024_fix_enrollment_code_slug','2021-07-30 20:17:05.148215'),(93,'catalogue','0025_course_entitlement','2021-07-30 20:17:05.229733'),(94,'catalogue','0026_course_entitlement_attr_change','2021-07-30 20:17:05.314857'),(95,'catalogue','0027_catalogue_entitlement_option','2021-07-30 20:17:05.395164'),(96,'catalogue','0028_donations_from_checkout_tests_product_type','2021-07-30 20:17:05.648516'),(97,'catalogue','0029_auto_20180119_0903','2021-07-30 20:17:06.364082'),(98,'catalogue','0030_auto_20180124_1131','2021-07-30 20:17:06.786216'),(99,'catalogue','0031_course_entitlement_idverifyreq_attr','2021-07-30 20:17:06.931878'),(100,'catalogue','0032_journal_product_class','2021-07-30 20:17:07.012020'),(101,'catalogue','0033_add_coupon_categories','2021-07-30 20:17:07.105599'),(102,'catalogue','0034_add_on_campus_coupon_category','2021-07-30 20:17:07.183995'),(103,'catalogue','0035_add_partner_no_rev_coupon_categories','2021-07-30 20:17:07.270941'),(104,'catalogue','0036_coupon_notify_email_attribute','2021-07-30 20:17:07.356001'),(105,'catalogue','0037_add_sec_disc_reward_coupon_category','2021-07-30 20:17:07.434505'),(106,'catalogue','0038_coupon_enterprise_id_attribute','2021-07-30 20:17:07.646486'),(107,'catalogue','0039_historicalproduct_historicalproductattributevalue','2021-07-30 20:17:07.806947'),(108,'catalogue','0040_historicalcategory_historicaloption_historicalproductattribute_historicalproductcategory_historicalp','2021-07-30 20:17:08.335574'),(109,'catalogue','0041_auto_20190903_1752','2021-07-30 20:17:08.627472'),(110,'catalogue','0042_auto_20190913_1756','2021-07-30 20:17:08.725655'),(111,'catalogue','0043_auto_20191115_2151','2021-07-30 20:17:09.105814'),(112,'catalogue','0044_add_enterprisecontractmetadata_product_attribute','2021-07-30 20:17:09.189513'),(113,'catalogue','0045_add_edx_employee_coupon_category','2021-07-30 20:17:09.278502'),(114,'catalogue','0046_coupon_inactive_attribute','2021-07-30 20:17:09.362880'),(115,'catalogue','0047_coupon_sales_force_id_attribute','2021-07-30 20:17:09.446311'),(116,'catalogue','0048_auto_20200311_1240','2021-07-30 20:17:10.371833'),(117,'catalogue','0049_add_rap_and_orap_coupon_categories','2021-07-30 20:17:10.469517'),(118,'catalogue','0050_add_b2b_affiliate_promotion_coupon_category','2021-07-30 20:17:10.554442'),(119,'catalogue','0051_coupon_public_batch_attribute','2021-07-30 20:17:10.638875'),(120,'catalogue','0052_add_scholarship_coupon_category','2021-07-30 20:17:10.726740'),(121,'core','0002_auto_20150826_1455','2021-07-30 20:17:11.230512'),(122,'core','0003_auto_20150914_1120','2021-07-30 20:17:11.343490'),(123,'core','0004_auto_20150915_1023','2021-07-30 20:17:11.506439'),(124,'core','0005_auto_20150924_0123','2021-07-30 20:17:11.599476'),(125,'core','0006_add_service_user','2021-07-30 20:17:11.693067'),(126,'core','0007_auto_20151005_1333','2021-07-30 20:17:11.782329'),(127,'core','0008_client','2021-07-30 20:17:11.858742'),(128,'core','0009_service_user_privileges','2021-07-30 20:17:12.216879'),(129,'core','0010_add_async_sample','2021-07-30 20:17:12.313580'),(130,'core','0011_siteconfiguration_oauth_settings','2021-07-30 20:17:12.359520'),(131,'core','0012_businessclient','2021-07-30 20:17:12.382414'),(132,'core','0013_siteconfiguration_segment_key','2021-07-30 20:17:12.621371'),(133,'core','0014_enrollment_code_switch','2021-07-30 20:17:12.714586'),(134,'core','0015_siteconfiguration_from_email','2021-07-30 20:17:12.760442'),(135,'core','0016_siteconfiguration_enable_enrollment_codes','2021-07-30 20:17:12.808945'),(136,'core','0017_siteconfiguration_payment_support_email','2021-07-30 20:17:12.854367'),(137,'core','0018_siteconfiguration_payment_support_url','2021-07-30 20:17:12.910659'),(138,'core','0019_auto_20161012_1404','2021-07-30 20:17:12.999343'),(139,'core','0020_siteconfiguration_enable_otto_receipt_page','2021-07-30 20:17:13.047548'),(140,'core','0021_siteconfiguration_client_side_payment_processor','2021-07-30 20:17:13.102269'),(141,'core','0022_auto_20161108_2101','2021-07-30 20:17:13.123907'),(142,'core','0023_siteconfiguration_send_refund_notifications','2021-07-30 20:17:13.171770'),(143,'core','0024_auto_20170208_1520','2021-07-30 20:17:13.358240'),(144,'core','0025_auto_20170214_0003','2021-07-30 20:17:13.379364'),(145,'core','0026_auto_20170215_2234','2021-07-30 20:17:13.402599'),(146,'core','0027_siteconfiguration_require_account_activation','2021-07-30 20:17:13.451260'),(147,'core','0028_siteconfiguration_optimizely_snippet_src','2021-07-30 20:17:13.502116'),(148,'core','0029_auto_20170525_2131','2021-07-30 20:17:13.544106'),(149,'core','0030_auto_20170525_2134','2021-07-30 20:17:13.686691'),(150,'core','0031_siteconfiguration_enable_sailthru','2021-07-30 20:17:13.813149'),(151,'core','0032_auto_20170602_0516','2021-07-30 20:17:13.865486'),(152,'core','0033_auto_20170606_0539','2021-07-30 20:17:13.958301'),(153,'core','0034_auto_20170613_2039','2021-07-30 20:17:13.977238'),(154,'core','0035_siteconfiguration_base_cookie_domain','2021-07-30 20:17:14.024043'),(155,'core','0036_remove_siteconfiguration_enable_otto_receipt_page','2021-07-30 20:17:14.072387'),(156,'core','0037_siteconfiguration_enable_embargo_check','2021-07-30 20:17:14.115852'),(157,'core','0038_siteconfiguration_discovery_api_url','2021-07-30 20:17:14.161930'),(158,'core','0039_auto_20170716_2212','2021-07-30 20:17:14.218974'),(159,'core','0040_siteconfiguration__allowed_segment_events','2021-07-30 20:17:14.260483'),(160,'core','0041_remove_siteconfiguration__allowed_segment_events','2021-07-30 20:17:14.302926'),(161,'core','0042_siteconfiguration_enable_partial_program','2021-07-30 20:17:14.346638'),(162,'core','0043_auto_20170808_1009','2021-07-30 20:17:14.366544'),(163,'core','0044_auto_20180313_0702','2021-07-30 20:17:14.455915'),(164,'core','0045_auto_20180510_0823','2021-07-30 20:17:14.788323'),(165,'core','0046_siteconfiguration_journals_api_url','2021-07-30 20:17:14.825376'),(166,'core','0047_businessclient_enterprise_customer_uuid','2021-07-30 20:17:14.851039'),(167,'core','0048_siteconfiguration_hubspot_secret_key','2021-07-30 20:17:14.890022'),(168,'core','0049_ecommercefeaturerole_ecommercefeatureroleassignment','2021-07-30 20:17:14.978917'),(169,'core','0050_add_specific_ecommerce_roles','2021-07-30 20:17:15.131588'),(170,'core','0051_ecommercefeatureroleassignment_enterprise_id','2021-07-30 20:17:15.194762'),(171,'core','0052_historicalbusinessclient','2021-07-30 20:17:15.269304'),(172,'core','0053_user_lms_user_id','2021-07-30 20:17:15.408410'),(173,'core','0054_auto_20190626_0153','2021-07-30 20:17:15.492475'),(174,'core','0055_add_ordermanager_role','2021-07-30 20:17:15.588357'),(175,'core','0056_remove_siteconfiguration_journals_api_url','2021-07-30 20:17:15.629972'),(176,'core','0057_auto_20190920_1752','2021-07-30 20:17:15.669390'),(177,'core','0058_auto_20191115_2151','2021-07-30 20:17:15.812635'),(178,'core','0059_auto_20200115_1941','2021-07-30 20:17:15.933367'),(179,'core','0060_auto_20200117_1312','2021-07-30 20:17:16.023025'),(180,'core','0061_auto_20200407_1725','2021-07-30 20:17:16.097708'),(181,'core','0062_siteconfiguration_account_microfrontend_url','2021-07-30 20:17:16.140351'),(182,'core','0063_braze_switch','2021-07-30 20:17:16.238805'),(183,'core','0064_remove_siteconfiguration_enable_sailthru','2021-07-30 20:17:16.281954'),(184,'core','0065_ecommercefeatureroleassignment_applies_to_all_contexts','2021-07-30 20:17:16.332198'),(185,'partner','0014_historicalstockrecord','2021-07-30 20:17:16.641422'),(186,'courses','0011_historicalcourse','2021-07-30 20:17:16.789322'),(187,'courses','0012_auto_20191115_2151','2021-07-30 20:17:16.869522'),(188,'customer','0002_auto_20160517_0930','2021-07-30 20:17:16.882571'),(189,'customer','0003_auto_20170215_2229','2021-07-30 20:17:16.942368'),(190,'customer','0004_auto_20180124_1131','2021-07-30 20:17:17.109865'),(191,'customer','0005_auto_20191115_2151','2021-07-30 20:17:17.122314'),(192,'customer','0006_auto_20200305_1448','2021-07-30 20:17:17.163547'),(193,'offer','0002_range_catalog','2021-07-30 20:17:17.253092'),(194,'offer','0003_auto_20160517_1247','2021-07-30 20:17:17.390944'),(195,'offer','0004_auto_20160530_0944','2021-07-30 20:17:17.455365'),(196,'offer','0005_conditionaloffer_email_domains','2021-07-30 20:17:17.498385'),(197,'offer','0006_auto_20161025_1446','2021-07-30 20:17:17.535190'),(198,'offer','0007_auto_20161026_0856','2021-07-30 20:17:17.600557'),(199,'offer','0008_range_course_catalog','2021-07-30 20:17:17.661890'),(200,'offer','0009_range_enterprise_customer','2021-07-30 20:17:17.721439'),(201,'offer','0010_auto_20170215_2224','2021-07-30 20:17:17.750983'),(202,'offer','0011_auto_20170215_2324','2021-07-30 20:17:17.785650'),(203,'offer','0012_condition_program_uuid','2021-07-30 20:17:17.826181'),(204,'enterprise','0001_initial','2021-07-30 20:17:17.844590'),(205,'enterprise','0002_add_enterprise_offers_switch','2021-07-30 20:17:17.944882'),(206,'enterprise','0003_add_enable_enterprise_switch','2021-07-30 20:17:18.041652'),(207,'enterprise','0004_add_enterprise_offers_for_coupons','2021-07-30 20:17:18.367904'),(208,'enterprise','0005_assignableenterprisecustomercondition','2021-07-30 20:17:18.379443'),(209,'enterprise','0006_add_role_based_authz_switch','2021-07-30 20:17:18.475535'),(210,'enterprise','0007_remove_role_based_authz_switch','2021-07-30 20:17:18.570659'),(211,'enterprise','0008_remove_enterprise_offers_switch','2021-07-30 20:17:18.663538'),(212,'enterprise','0009_remove_enterprise_offers_for_coupons','2021-07-30 20:17:18.754708'),(213,'enterprise','0010_add_use_enterprise_catalog_flag','2021-07-30 20:17:18.852675'),(214,'enterprise','0011_remove_use_enterprise_catalog_flag','2021-07-30 20:17:18.951563'),(215,'flatpages','0001_initial','2021-07-30 20:17:19.044870'),(216,'fulfillment','0001_initial','2021-07-30 20:17:19.226797'),(217,'order','0002_auto_20141007_2032','2021-07-30 20:17:19.272491'),(218,'order','0003_auto_20150224_1520','2021-07-30 20:17:19.611465'),(219,'order','0004_order_payment_processor','2021-07-30 20:17:19.684366'),(220,'order','0005_deprecate_order_payment_processor','2021-07-30 20:17:19.753185'),(221,'order','0006_paymentevent_processor_name','2021-07-30 20:17:19.804697'),(222,'order','0007_create_history_tables','2021-07-30 20:17:19.979592'),(223,'order','0008_delete_order_payment_processor','2021-07-30 20:17:20.257479'),(224,'order','0009_auto_20150709_1205','2021-07-30 20:17:20.341473'),(225,'order','0010_auto_20160529_2245','2021-07-30 20:17:20.382631'),(226,'order','0011_auto_20161025_1446','2021-07-30 20:17:20.424514'),(227,'order','0012_auto_20170215_2224','2021-07-30 20:17:20.475669'),(228,'order','0013_auto_20170215_2229','2021-07-30 20:17:20.601708'),(229,'order','0014_auto_20170606_0535','2021-07-30 20:17:20.702432'),(230,'order','0015_create_disable_repeat_order_check_switch','2021-07-30 20:17:20.798559'),(231,'order','0016_auto_20180119_0903','2021-07-30 20:17:22.010797'),(232,'order','0017_order_partner','2021-07-30 20:17:22.106782'),(233,'invoice','0001_initial','2021-07-30 20:17:22.300033'),(234,'invoice','0002_auto_20160324_1919','2021-07-30 20:17:23.098359'),(235,'invoice','0003_auto_20160616_0657','2021-07-30 20:17:23.820930'),(236,'invoice','0004_auto_20170215_2234','2021-07-30 20:17:24.098830'),(237,'invoice','0005_auto_20180119_0903','2021-07-30 20:17:24.685509'),(238,'invoice','0006_auto_20180228_1057','2021-07-30 20:17:24.756230'),(239,'invoice','0007_historicalinvoice','2021-07-30 20:17:24.839456'),(240,'invoice','0008_auto_20191115_2151','2021-07-30 20:17:25.082991'),(241,'invoice','0009_auto_20210526_2005','2021-07-30 20:17:25.109428'),(242,'payment','0001_initial','2021-07-30 20:17:25.412381'),(243,'payment','0002_auto_20141007_2032','2021-07-30 20:17:25.528504'),(244,'payment','0003_create_payment_processor_response','2021-07-30 20:17:25.630705'),(245,'payment','0004_source_card_type','2021-07-30 20:17:25.711792'),(246,'payment','0005_paypalwebprofile','2021-07-30 20:17:25.735112'),(247,'payment','0006_enable_payment_processors','2021-07-30 20:17:25.843397'),(248,'payment','0007_add_cybersource_level23_sample','2021-07-30 20:17:26.230533'),(249,'payment','0008_remove_cybersource_level23_sample','2021-07-30 20:17:26.336336'),(250,'payment','0009_auto_20161025_1446','2021-07-30 20:17:26.359481'),(251,'payment','0010_create_client_side_checkout_flag','2021-07-30 20:17:26.466211'),(252,'payment','0011_paypalprocessorconfiguration','2021-07-30 20:17:26.489302'),(253,'payment','0012_auto_20161109_1456','2021-07-30 20:17:26.501547'),(254,'payment','0013_sdncheckfailure','2021-07-30 20:17:26.527594'),(255,'payment','0014_sdncheckfailure_site','2021-07-30 20:17:26.606318'),(256,'payment','0015_auto_20170215_2229','2021-07-30 20:17:26.665033'),(257,'payment','0016_auto_20170227_1402','2021-07-30 20:17:26.786545'),(258,'payment','0017_auto_20170328_1445','2021-07-30 20:17:26.980971'),(259,'payment','0018_create_stripe_switch','2021-07-30 20:17:27.083259'),(260,'payment','0019_auto_20180628_2011','2021-07-30 20:17:27.148926'),(261,'payment','0020_auto_20191004_1520','2021-07-30 20:17:27.253574'),(262,'payment','0021_auto_20191115_2151','2021-07-30 20:17:27.278197'),(263,'payment','0022_auto_20191120_2106','2021-07-30 20:17:27.324944'),(264,'payment','0023_auto_20191126_2153','2021-07-30 20:17:27.350694'),(265,'voucher','0002_couponvouchers','2021-07-30 20:17:27.442005'),(266,'voucher','0003_orderlinevouchers','2021-07-30 20:17:27.904406'),(267,'voucher','0004_auto_20160517_0930','2021-07-30 20:17:28.106310'),(268,'voucher','0005_auto_20180124_1131','2021-07-30 20:17:28.212541'),(269,'voucher','0006_auto_20181205_1017','2021-07-30 20:17:28.233534'),(270,'offer','0013_auto_20170801_0742','2021-07-30 20:17:28.273520'),(271,'offer','0014_conditionaloffer_site','2021-07-30 20:17:28.360496'),(272,'offer','0015_auto_20170926_1357','2021-07-30 20:17:28.519356'),(273,'offer','0016_auto_20180124_1131','2021-07-30 20:17:28.781047'),(274,'offer','0017_condition_journal_bundle_uuid','2021-07-30 20:17:28.829171'),(275,'offer','0018_conditionaloffer_partner','2021-07-30 20:17:28.916571'),(276,'offer','0019_migrate_partner_to_conditional_offers','2021-07-30 20:17:29.048432'),(277,'offer','0020_migrate_partner_to_coupon_offers','2021-07-30 20:17:29.160712'),(278,'offer','0021_range_enterprise_customer_catalog','2021-07-30 20:17:29.222006'),(279,'offer','0022_offerassignment','2021-07-30 20:17:29.298560'),(280,'offer','0023_offerassignmentemailattempt','2021-07-30 20:17:29.423057'),(281,'offer','0024_add_history_models_de_1424','2021-07-30 20:17:30.237989'),(282,'offer','0025_auto_20190624_1747','2021-07-30 20:17:30.674615'),(283,'offer','0026_auto_20190903_1806','2021-07-30 20:17:30.837264'),(284,'offer','0027_auto_20190913_1756','2021-07-30 20:17:31.014846'),(285,'offer','0028_auto_20191115_2151','2021-07-30 20:17:31.180379'),(286,'offer','0029_auto_20191126_2153','2021-07-30 20:17:31.409542'),(287,'offer','0030_offerassignmentemailtemplates','2021-07-30 20:17:31.498655'),(288,'offer','0031_auto_20200224_0756','2021-07-30 20:17:31.570419'),(289,'offer','0032_auto_20200305_1109','2021-07-30 20:17:31.750048'),(290,'offer','0033_auto_20200311_1240','2021-07-30 20:17:32.200839'),(291,'offer','0034_auto_20200403_1003','2021-07-30 20:17:32.273434'),(292,'offer','0035_offerassignmentemailtemplates_name','2021-07-30 20:17:32.311991'),(293,'offer','0036_auto_20200514_1636','2021-07-30 20:17:32.493492'),(294,'offer','0037_auto_20200528_1140','2021-07-30 20:17:32.507966'),(295,'offer','0038_auto_20200605_1006','2021-07-30 20:17:32.803742'),(296,'offer','0039_auto_20200617_1032','2021-07-30 20:17:33.043687'),(297,'offer','0040_auto_20200619_0803','2021-07-30 20:17:33.369441'),(298,'offer','0041_auto_20200707_1317','2021-07-30 20:17:33.694767'),(299,'offer','0042_offerassignmentemailtemplates_email_subject','2021-07-30 20:17:33.727077'),(300,'offer','0043_offerusageemail','2021-07-30 20:17:33.799804'),(301,'offer','0044_codeassignmentnudgeemailtemplates','2021-07-30 20:17:33.847712'),(302,'offer','0045_codeassignmentnudgeemails','2021-07-30 20:17:33.879809'),(303,'offer','0046_offerassignmentemailsentrecord','2021-07-30 20:17:33.998061'),(304,'offer','0047_codeassignmentnudgeemailtemplates','2021-07-30 20:17:34.152455'),(305,'offer','0048_auto_20201112_1015','2021-07-30 20:17:34.427451'),(306,'offer','0049_codeassignmentnudgeemails_options','2021-07-30 20:17:34.463054'),(307,'order','0018_historicalline_historicalorder','2021-07-30 20:17:34.632865'),(308,'order','0019_manualenrollmentorderdiscountbenefit_manualenrollmentorderdiscountcondition','2021-07-30 20:17:34.808470'),(309,'order','0020_auto_20191115_2151','2021-07-30 20:17:34.854037'),(310,'order','0021_auto_20191212_1630','2021-07-30 20:17:35.502244'),(311,'order','0022_historicalorderdiscount','2021-07-30 20:17:35.582641'),(312,'order','0023_auto_20200305_1448','2021-07-30 20:17:35.830549'),(313,'order','0024_markordersstatuscompleteconfig','2021-07-30 20:17:35.936488'),(314,'partner','0015_historicalpartner','2021-07-30 20:17:36.044379'),(315,'partner','0016_auto_20191115_2151','2021-07-30 20:17:36.165006'),(316,'partner','0017_auto_20200305_1448','2021-07-30 20:17:36.289318'),(317,'partner','0018_remove_partner_enable_sailthru','2021-07-30 20:17:36.410923'),(318,'payment','0024_auto_20191212_1630','2021-07-30 20:17:36.440460'),(319,'payment','0025_card_type_ordering','2021-07-30 20:17:36.469424'),(320,'payment','0026_auto_20200305_1448','2021-07-30 20:17:36.504182'),(321,'payment','0027_auto_20200811_1356','2021-07-30 20:17:36.527332'),(322,'payment','0028_sdnfallbackmetadata','2021-07-30 20:17:36.554331'),(323,'payment','0029_sdnfallbackdata','2021-07-30 20:17:36.584823'),(324,'payment','0030_delete_sdnfallbackdata','2021-07-30 20:17:36.645165'),(325,'payment','0031_sdnfallbackdata','2021-07-30 20:17:36.674049'),(326,'programs','0001_initial','2021-07-30 20:17:36.738703'),(327,'programs','0002_add_basket_attribute_type','2021-07-30 20:17:36.880510'),(328,'referrals','0001_initial','2021-07-30 20:17:36.968278'),(329,'referrals','0002_auto_20161011_1728','2021-07-30 20:17:37.841512'),(330,'referrals','0003_auto_20161027_1738','2021-07-30 20:17:37.973646'),(331,'referrals','0004_auto_20170215_2234','2021-07-30 20:17:38.175506'),(332,'referrals','0005_auto_20180628_2011','2021-07-30 20:17:38.246891'),(333,'referrals','0006_auto_20210526_2005','2021-07-30 20:17:38.284781'),(334,'refund','0001_squashed_0002_auto_20150515_2220','2021-07-30 20:17:38.693040'),(335,'refund','0002_auto_20151214_1017','2021-07-30 20:17:39.019822'),(336,'refund','0003_auto_20180119_0903','2021-07-30 20:17:39.950999'),(337,'refund','0004_auto_20180403_1120','2021-07-30 20:17:40.090839'),(338,'refund','0005_auto_20180628_2011','2021-07-30 20:17:40.206259'),(339,'refund','0006_historicalrefund_historicalrefundline','2021-07-30 20:17:40.372848'),(340,'refund','0007_auto_20191115_2151','2021-07-30 20:17:40.577967'),(341,'refund','0008_auto_20210526_2005','2021-07-30 20:17:40.630027'),(342,'reviews','0001_initial','2021-07-30 20:17:40.865472'),(343,'reviews','0002_update_email_length','2021-07-30 20:17:41.006197'),(344,'reviews','0003_auto_20160802_1358','2021-07-30 20:17:41.059033'),(345,'reviews','0004_auto_20170429_0941','2021-07-30 20:17:41.147634'),(346,'sailthru','0001_initial','2021-07-30 20:17:41.287847'),(347,'sailthru','0002_add_basket_attribute_type','2021-07-30 20:17:41.428108'),(348,'sessions','0001_initial','2021-07-30 20:17:41.453623'),(349,'shipping','0001_initial','2021-07-30 20:17:41.751763'),(350,'shipping','0002_auto_20150604_1450','2021-07-30 20:17:42.571116'),(351,'shipping','0003_auto_20181115_1953','2021-07-30 20:17:42.630201'),(352,'default','0001_initial','2021-07-30 20:17:42.857936'),(353,'social_auth','0001_initial','2021-07-30 20:17:42.863149'),(354,'default','0002_add_related_name','2021-07-30 20:17:42.994656'),(355,'social_auth','0002_add_related_name','2021-07-30 20:17:43.000068'),(356,'default','0003_alter_email_max_length','2021-07-30 20:17:43.043294'),(357,'social_auth','0003_alter_email_max_length','2021-07-30 20:17:43.049193'),(358,'default','0004_auto_20160423_0400','2021-07-30 20:17:43.083962'),(359,'social_auth','0004_auto_20160423_0400','2021-07-30 20:17:43.089612'),(360,'social_auth','0005_auto_20160727_2333','2021-07-30 20:17:43.117129'),(361,'social_django','0006_partial','2021-07-30 20:17:43.141832'),(362,'social_django','0007_code_timestamp','2021-07-30 20:17:43.185874'),(363,'social_django','0008_partial_timestamp','2021-07-30 20:17:43.229341'),(364,'social_django','0009_auto_20191118_0520','2021-07-30 20:17:43.354017'),(365,'social_django','0010_uid_db_index','2021-07-30 20:17:43.401853'),(366,'theming','0001_initial','2021-07-30 20:17:43.481669'),(367,'thumbnail','0001_initial','2021-07-30 20:17:43.525617'),(368,'voucher','0007_auto_20190913_1756','2021-07-30 20:17:43.699168'),(369,'voucher','0008_auto_20191115_2151','2021-07-30 20:17:43.769082'),(370,'voucher','0009_historicalvoucherapplication','2021-07-30 20:17:43.854623'),(371,'voucher','0010_auto_20200305_1448','2021-07-30 20:17:43.975907'),(372,'voucher','0011_auto_20200403_2046','2021-07-30 20:17:44.193263'),(373,'voucher','0012_voucher_is_public','2021-07-30 20:17:44.244402'),(374,'waffle','0002_auto_20161201_0958','2021-07-30 20:17:44.260548'),(375,'waffle','0003_update_strings_for_i18n','2021-07-30 20:17:45.516665'),(376,'waffle','0004_update_everyone_nullbooleanfield','2021-07-30 20:17:45.558149'),(377,'wishlists','0001_initial','2021-07-30 20:17:45.861169'),(378,'wishlists','0002_auto_20160111_1108','2021-07-30 20:17:45.973158'),(379,'wishlists','0003_auto_20181115_1953','2021-07-30 20:17:46.010322'),(380,'social_django','0002_add_related_name','2021-07-30 20:17:46.020080'),(381,'social_django','0004_auto_20160423_0400','2021-07-30 20:17:46.025044'),(382,'social_django','0005_auto_20160727_2333','2021-07-30 20:17:46.029806'),(383,'social_django','0003_alter_email_max_length','2021-07-30 20:17:46.034607'),(384,'social_django','0001_initial','2021-07-30 20:17:46.039091'),(385,'auth','0012_alter_user_first_name_max_length','2023-02-10 18:42:15.564308'),(386,'basket','0014_line_date_updated','2023-02-10 18:42:16.051700'),(387,'basket','0015_add_paymentintentid','2023-02-10 18:42:16.288390'),(388,'catalogue','0053_auto_20210922_1857','2023-02-10 18:42:17.723335'),(389,'catalogue','0054_add_variant_id_product_attr','2023-02-10 18:42:17.911469'),(390,'communication','0001_initial','2023-02-10 18:42:18.390924'),(391,'core','0066_remove_account_microfrontend_url_field_from_SiteConfiguration','2023-02-10 18:42:18.495968'),(392,'order','0025_auto_20210922_1857','2023-02-10 18:42:19.152840'),(393,'customer','0007_auto_20211213_1702','2023-02-10 18:42:19.587790'),(394,'offer','0050_templatefileattachment','2023-02-10 18:42:19.642152'),(395,'offer','0051_offerusageemail_email_type','2023-02-10 18:42:19.691346'),(396,'offer','0052_jsonfield_codeassignmentnudgeemails_offerusageemail','2023-02-10 18:42:19.732633'),(397,'payment','0032_alter_source_card_type','2023-02-10 18:42:19.783477'),(398,'iap','0001_initial','2023-02-21 14:38:06.821459'),(399,'iap','0002_paymentprocessorresponseextension','2023-02-21 14:38:07.479341'); /*!40000 ALTER TABLE `django_migrations` ENABLE KEYS */; UNLOCK TABLES; @@ -1316,7 +1779,7 @@ CREATE TABLE `django_session` ( `session_data` longtext NOT NULL, `expire_date` datetime(6) NOT NULL, PRIMARY KEY (`session_key`), - KEY `django_session_de54fa62` (`expire_date`) + KEY `django_session_expire_date_a5c62663` (`expire_date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1374,9 +1837,11 @@ CREATE TABLE `ecommerce_user` ( `date_joined` datetime(6) NOT NULL, `full_name` varchar(255) DEFAULT NULL, `tracking_context` longtext, + `lms_user_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `username` (`username`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; + UNIQUE KEY `username` (`username`), + KEY `ecommerce_user_email_f3125e14` (`email`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1385,7 +1850,7 @@ CREATE TABLE `ecommerce_user` ( LOCK TABLES `ecommerce_user` WRITE; /*!40000 ALTER TABLE `ecommerce_user` DISABLE KEYS */; -INSERT INTO `ecommerce_user` VALUES (1,'!LOoBxP3FzidYPy42iWpSG8F94w9ub92p6KRY7KY5',NULL,0,'ecommerce_worker','','','',1,1,'2017-06-21 16:06:05.430048',NULL,NULL),(2,'pbkdf2_sha256$30000$jhECgW9zCQNz$xjvlasvmEiR6LSJEZkdswzRtiwiN35E8AGdgqAIoqsk=',NULL,1,'edx','','','edx@example.com',1,1,'2017-06-21 16:06:34.938363',NULL,NULL),(3,'',NULL,0,'discovery_worker','','','discovery_worker@example.com',1,1,'2017-06-21 16:09:04.071620',NULL,NULL); +INSERT INTO `ecommerce_user` VALUES (1,'!FKio3cdcOXnATA5MkNLC1nU1f82g4JEy7E9Mzgbx',NULL,0,'ecommerce_worker','','','',1,1,'2021-07-30 20:17:11.685439',NULL,NULL,NULL),(2,'pbkdf2_sha256$150000$X4BK9c8pNKg1$GzFP8fhOZ56bCY6gFVbtOuYN9MMifjs/jZP2KOJCuV8=',NULL,1,'edx','','','edx@example.com',1,1,'2021-07-30 20:17:51.236223',NULL,NULL,NULL); /*!40000 ALTER TABLE `ecommerce_user` ENABLE KEYS */; UNLOCK TABLES; @@ -1400,7 +1865,7 @@ CREATE TABLE `ecommerce_user_groups` ( `user_id` int(11) NOT NULL, `group_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `ecommerce_user_groups_user_id_2a9a583d_uniq` (`user_id`,`group_id`), + UNIQUE KEY `ecommerce_user_groups_user_id_group_id_2a9a583d_uniq` (`user_id`,`group_id`), KEY `ecommerce_user_groups_group_id_a8fd9cb8_fk_auth_group_id` (`group_id`), CONSTRAINT `ecommerce_user_groups_group_id_a8fd9cb8_fk_auth_group_id` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`), CONSTRAINT `ecommerce_user_groups_user_id_60d58887_fk_ecommerce_user_id` FOREIGN KEY (`user_id`) REFERENCES `ecommerce_user` (`id`) @@ -1427,10 +1892,10 @@ CREATE TABLE `ecommerce_user_user_permissions` ( `user_id` int(11) NOT NULL, `permission_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `ecommerce_user_user_permissions_user_id_6d807de6_uniq` (`user_id`,`permission_id`), - KEY `ecommerce_user_user_permission_id_4dc38e40_fk_auth_permission_id` (`permission_id`), - CONSTRAINT `ecommerce_user_user_permis_user_id_0ceec4a8_fk_ecommerce_user_id` FOREIGN KEY (`user_id`) REFERENCES `ecommerce_user` (`id`), - CONSTRAINT `ecommerce_user_user_permission_id_4dc38e40_fk_auth_permission_id` FOREIGN KEY (`permission_id`) REFERENCES `auth_permission` (`id`) + UNIQUE KEY `ecommerce_user_user_perm_user_id_permission_id_6d807de6_uniq` (`user_id`,`permission_id`), + KEY `ecommerce_user_user__permission_id_4dc38e40_fk_auth_perm` (`permission_id`), + CONSTRAINT `ecommerce_user_user__permission_id_4dc38e40_fk_auth_perm` FOREIGN KEY (`permission_id`) REFERENCES `auth_permission` (`id`), + CONSTRAINT `ecommerce_user_user__user_id_0ceec4a8_fk_ecommerce` FOREIGN KEY (`user_id`) REFERENCES `ecommerce_user` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1440,10 +1905,101 @@ CREATE TABLE `ecommerce_user_user_permissions` ( LOCK TABLES `ecommerce_user_user_permissions` WRITE; /*!40000 ALTER TABLE `ecommerce_user_user_permissions` DISABLE KEYS */; -INSERT INTO `ecommerce_user_user_permissions` VALUES (1,1,161); +INSERT INTO `ecommerce_user_user_permissions` VALUES (1,1,258); /*!40000 ALTER TABLE `ecommerce_user_user_permissions` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `iap_iapprocessorconfiguration` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `iap_iapprocessorconfiguration` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `retry_attempts` smallint(5) unsigned NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iap_iapprocessorconfiguration` +-- + +LOCK TABLES `iap_iapprocessorconfiguration` WRITE; +/*!40000 ALTER TABLE `iap_iapprocessorconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `iap_iapprocessorconfiguration` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iap_paymentprocessorresponseextension` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `iap_paymentprocessorresponseextension` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `original_transaction_id` varchar(255) DEFAULT NULL, + `processor_response_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `processor_response_id` (`processor_response_id`), + CONSTRAINT `iap_paymentprocessor_processor_response_i_1f82f331_fk_payment_p` FOREIGN KEY (`processor_response_id`) REFERENCES `payment_paymentprocessorresponse` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iap_paymentprocessorresponseextension` +-- + +LOCK TABLES `iap_paymentprocessorresponseextension` WRITE; +/*!40000 ALTER TABLE `iap_paymentprocessorresponseextension` DISABLE KEYS */; +/*!40000 ALTER TABLE `iap_paymentprocessorresponseextension` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `invoice_historicalinvoice` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `invoice_historicalinvoice` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `state` varchar(255) NOT NULL, + `number` varchar(255) DEFAULT NULL, + `type` varchar(255) DEFAULT NULL, + `payment_date` datetime(6) DEFAULT NULL, + `discount_type` varchar(255) DEFAULT NULL, + `discount_value` int(10) unsigned DEFAULT NULL, + `tax_deducted_source` int(10) unsigned DEFAULT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `basket_id` int(11) DEFAULT NULL, + `business_client_id` int(11) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `order_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `invoice_historicalin_history_user_id_65f31e67_fk_ecommerce` (`history_user_id`), + KEY `invoice_historicalinvoice_id_2ccb1da5` (`id`), + KEY `invoice_historicalinvoice_basket_id_d6705c0f` (`basket_id`), + KEY `invoice_historicalinvoice_business_client_id_17658c64` (`business_client_id`), + KEY `invoice_historicalinvoice_order_id_e8a59d8c` (`order_id`), + CONSTRAINT `invoice_historicalin_history_user_id_65f31e67_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `invoice_historicalinvoice` +-- + +LOCK TABLES `invoice_historicalinvoice` WRITE; +/*!40000 ALTER TABLE `invoice_historicalinvoice` DISABLE KEYS */; +/*!40000 ALTER TABLE `invoice_historicalinvoice` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `invoice_invoice` -- @@ -1466,10 +2022,10 @@ CREATE TABLE `invoice_invoice` ( `type` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), KEY `invoice_invoice_basket_id_8795b83e_fk_basket_basket_id` (`basket_id`), - KEY `invoice_in_business_client_id_44a4b698_fk_core_businessclient_id` (`business_client_id`), + KEY `invoice_invoice_business_client_id_44a4b698_fk_core_busi` (`business_client_id`), KEY `invoice_invoice_order_id_c5fc9ae9_fk_order_order_id` (`order_id`), - CONSTRAINT `invoice_in_business_client_id_44a4b698_fk_core_businessclient_id` FOREIGN KEY (`business_client_id`) REFERENCES `core_businessclient` (`id`), CONSTRAINT `invoice_invoice_basket_id_8795b83e_fk_basket_basket_id` FOREIGN KEY (`basket_id`) REFERENCES `basket_basket` (`id`), + CONSTRAINT `invoice_invoice_business_client_id_44a4b698_fk_core_busi` FOREIGN KEY (`business_client_id`) REFERENCES `core_businessclient` (`id`), CONSTRAINT `invoice_invoice_order_id_c5fc9ae9_fk_order_order_id` FOREIGN KEY (`order_id`) REFERENCES `order_order` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1499,7 +2055,7 @@ CREATE TABLE `offer_benefit` ( PRIMARY KEY (`id`), KEY `offer_benefit_range_id_ab19c5ab_fk_offer_range_id` (`range_id`), CONSTRAINT `offer_benefit_range_id_ab19c5ab_fk_offer_range_id` FOREIGN KEY (`range_id`) REFERENCES `offer_range` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1508,9 +2064,74 @@ CREATE TABLE `offer_benefit` ( LOCK TABLES `offer_benefit` WRITE; /*!40000 ALTER TABLE `offer_benefit` DISABLE KEYS */; +INSERT INTO `offer_benefit` VALUES (1,'',1.00,NULL,'ecommerce.extensions.offer.dynamic_conditional_offer.DynamicPercentageDiscountBenefit',NULL); /*!40000 ALTER TABLE `offer_benefit` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `offer_codeassignmentnudgeemails` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `offer_codeassignmentnudgeemails` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `code` varchar(128) NOT NULL, + `user_email` varchar(254) NOT NULL, + `email_date` datetime(6) NOT NULL, + `already_sent` tinyint(1) NOT NULL, + `is_subscribed` tinyint(1) NOT NULL, + `email_template_id` int(11) NOT NULL, + `options` longtext NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `offer_codeassignmentnudg_email_template_id_code_u_cdd86ccf_uniq` (`email_template_id`,`code`,`user_email`), + KEY `offer_codeassignmentnudgeemails_code_52171461` (`code`), + KEY `offer_codeassignmentnudgeemails_user_email_83439c0f` (`user_email`), + CONSTRAINT `offer_codeassignment_email_template_id_efc35dca_fk_offer_cod` FOREIGN KEY (`email_template_id`) REFERENCES `offer_codeassignmentnudgeemailtemplates` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `offer_codeassignmentnudgeemails` +-- + +LOCK TABLES `offer_codeassignmentnudgeemails` WRITE; +/*!40000 ALTER TABLE `offer_codeassignmentnudgeemails` DISABLE KEYS */; +/*!40000 ALTER TABLE `offer_codeassignmentnudgeemails` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `offer_codeassignmentnudgeemailtemplates` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `offer_codeassignmentnudgeemailtemplates` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `email_greeting` longtext, + `email_closing` longtext, + `email_subject` longtext, + `active` tinyint(1) NOT NULL, + `name` varchar(255) NOT NULL, + `email_type` varchar(32) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `offer_codeassignmentnudgeemailtemplates` +-- + +LOCK TABLES `offer_codeassignmentnudgeemailtemplates` WRITE; +/*!40000 ALTER TABLE `offer_codeassignmentnudgeemailtemplates` DISABLE KEYS */; +INSERT INTO `offer_codeassignmentnudgeemailtemplates` VALUES (1,'2021-07-30 20:17:34.143807','2021-07-30 20:17:34.143854','Remember when your organization gave you a code to learn on edX? We do, and we\'re glad to have you! Come see what you can learn.','Redeem your edX code and start learning today.','Start learning on edX!',1,'Day 3 Nudge Email','Day3'),(2,'2021-07-30 20:17:34.145009','2021-07-30 20:17:34.145045','Many learners from your organization are completing more problems every week, and are learning new skills. What do you want to start learning?','Join your peers, and start learning today.','Join the learning on edX!',1,'Day 10 Nudge Email','Day10'),(3,'2021-07-30 20:17:34.145925','2021-07-30 20:17:34.145998','Learners like you are earning certificates from some of the top universities and companies in the world. Will you join them?','Learn from the best, and redeem your code today.','It\'s not too late to redeem your edX code!',1,'Day 19 Nudge Email','Day19'); +/*!40000 ALTER TABLE `offer_codeassignmentnudgeemailtemplates` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `offer_condition` -- @@ -1524,13 +2145,16 @@ CREATE TABLE `offer_condition` ( `proxy_class` varchar(255) DEFAULT NULL, `range_id` int(11) DEFAULT NULL, `program_uuid` char(32) DEFAULT NULL, - `enterprise_customer_catalog_uuid` char(32), - `enterprise_customer_name` varchar(255), - `enterprise_customer_uuid` char(32), + `enterprise_customer_catalog_uuid` char(32) DEFAULT NULL, + `enterprise_customer_name` varchar(255) DEFAULT NULL, + `enterprise_customer_uuid` char(32) DEFAULT NULL, PRIMARY KEY (`id`), KEY `offer_condition_range_id_b023a2aa_fk_offer_range_id` (`range_id`), + KEY `offer_condition_enterprise_customer_uuid_59cd657e` (`enterprise_customer_uuid`), + KEY `offer_condition_program_uuid_c7867a22` (`program_uuid`), + KEY `offer_condi_enterpr_611782_idx` (`enterprise_customer_uuid`,`program_uuid`), CONSTRAINT `offer_condition_range_id_b023a2aa_fk_offer_range_id` FOREIGN KEY (`range_id`) REFERENCES `offer_range` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1539,6 +2163,7 @@ CREATE TABLE `offer_condition` ( LOCK TABLES `offer_condition` WRITE; /*!40000 ALTER TABLE `offer_condition` DISABLE KEYS */; +INSERT INTO `offer_condition` VALUES (1,'',NULL,'ecommerce.extensions.offer.dynamic_conditional_offer.DynamicDiscountCondition',NULL,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `offer_condition` ENABLE KEYS */; UNLOCK TABLES; @@ -1571,16 +2196,28 @@ CREATE TABLE `offer_conditionaloffer` ( `condition_id` int(11) NOT NULL, `email_domains` varchar(255) DEFAULT NULL, `site_id` int(11) DEFAULT NULL, + `partner_id` int(11) DEFAULT NULL, + `exclusive` tinyint(1) NOT NULL, + `enterprise_contract_metadata_id` int(11) DEFAULT NULL, + `sales_force_id` varchar(30) DEFAULT NULL, + `max_user_discount` decimal(12,2) DEFAULT NULL, + `emails_for_usage_alert` longtext NOT NULL, + `usage_email_frequency` varchar(8) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`), UNIQUE KEY `slug` (`slug`), - KEY `offer_conditionaloffer_benefit_id_f43f68b5_fk_offer_benefit_id` (`benefit_id`), - KEY `offer_conditionaloff_condition_id_e6baa945_fk_offer_condition_id` (`condition_id`), + UNIQUE KEY `enterprise_contract_metadata_id` (`enterprise_contract_metadata_id`), KEY `offer_conditionaloffer_site_id_4409fcc5_fk_django_site_id` (`site_id`), - CONSTRAINT `offer_conditionaloff_condition_id_e6baa945_fk_offer_condition_id` FOREIGN KEY (`condition_id`) REFERENCES `offer_condition` (`id`), + KEY `offer_conditionaloffer_benefit_id_f43f68b5_fk_offer_benefit_id` (`benefit_id`), + KEY `offer_conditionaloff_condition_id_e6baa945_fk_offer_con` (`condition_id`), + KEY `offer_conditionaloffer_partner_id_49d043f6_fk_partner_partner_id` (`partner_id`), + KEY `offer_conditionaloffer_priority_4c2fc582` (`priority`), + CONSTRAINT `offer_conditionaloff_condition_id_e6baa945_fk_offer_con` FOREIGN KEY (`condition_id`) REFERENCES `offer_condition` (`id`), + CONSTRAINT `offer_conditionaloff_enterprise_contract__d5cbdcd5_fk_payment_e` FOREIGN KEY (`enterprise_contract_metadata_id`) REFERENCES `payment_enterprisecontractmetadata` (`id`), CONSTRAINT `offer_conditionaloffer_benefit_id_f43f68b5_fk_offer_benefit_id` FOREIGN KEY (`benefit_id`) REFERENCES `offer_benefit` (`id`), + CONSTRAINT `offer_conditionaloffer_partner_id_49d043f6_fk_partner_partner_id` FOREIGN KEY (`partner_id`) REFERENCES `partner_partner` (`id`), CONSTRAINT `offer_conditionaloffer_site_id_4409fcc5_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1589,21 +2226,441 @@ CREATE TABLE `offer_conditionaloffer` ( LOCK TABLES `offer_conditionaloffer` WRITE; /*!40000 ALTER TABLE `offer_conditionaloffer` DISABLE KEYS */; +INSERT INTO `offer_conditionaloffer` VALUES (1,'dynamic_conditional_offer','dynamic_conditional_offer','','Site','Open',-10,NULL,NULL,NULL,NULL,1,NULL,0.00,0,0,'','2021-07-30 20:17:30.665775',1,1,NULL,NULL,NULL,1,NULL,NULL,NULL,'','DAILY'); /*!40000 ALTER TABLE `offer_conditionaloffer` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `offer_range` +-- Table structure for table `offer_historicalbenefit` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `offer_range` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(128) NOT NULL, - `slug` varchar(128) NOT NULL, - `description` longtext NOT NULL, - `is_public` tinyint(1) NOT NULL, +CREATE TABLE `offer_historicalbenefit` ( + `id` int(11) NOT NULL, + `type` varchar(128) NOT NULL, + `value` decimal(12,2) DEFAULT NULL, + `max_affected_items` int(10) unsigned DEFAULT NULL, + `proxy_class` varchar(255) DEFAULT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `range_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `offer_historicalbene_history_user_id_dfe92ba2_fk_ecommerce` (`history_user_id`), + KEY `offer_historicalbenefit_id_5ae867db` (`id`), + KEY `offer_historicalbenefit_range_id_4e48c034` (`range_id`), + CONSTRAINT `offer_historicalbene_history_user_id_dfe92ba2_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `offer_historicalbenefit` +-- + +LOCK TABLES `offer_historicalbenefit` WRITE; +/*!40000 ALTER TABLE `offer_historicalbenefit` DISABLE KEYS */; +/*!40000 ALTER TABLE `offer_historicalbenefit` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `offer_historicalcondition` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `offer_historicalcondition` ( + `id` int(11) NOT NULL, + `type` varchar(128) NOT NULL, + `value` decimal(12,2) DEFAULT NULL, + `proxy_class` varchar(255) DEFAULT NULL, + `enterprise_customer_uuid` char(32) DEFAULT NULL, + `enterprise_customer_name` varchar(255) DEFAULT NULL, + `enterprise_customer_catalog_uuid` char(32) DEFAULT NULL, + `program_uuid` char(32) DEFAULT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `range_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `offer_historicalcond_history_user_id_a6c808f1_fk_ecommerce` (`history_user_id`), + KEY `offer_historicalcondition_id_5795fc09` (`id`), + KEY `offer_historicalcondition_range_id_5ed1ca70` (`range_id`), + KEY `offer_historicalcondition_enterprise_customer_uuid_8cbe4b71` (`enterprise_customer_uuid`), + KEY `offer_historicalcondition_program_uuid_db121fa3` (`program_uuid`), + CONSTRAINT `offer_historicalcond_history_user_id_a6c808f1_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `offer_historicalcondition` +-- + +LOCK TABLES `offer_historicalcondition` WRITE; +/*!40000 ALTER TABLE `offer_historicalcondition` DISABLE KEYS */; +/*!40000 ALTER TABLE `offer_historicalcondition` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `offer_historicalconditionaloffer` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `offer_historicalconditionaloffer` ( + `id` int(11) NOT NULL, + `name` varchar(128) NOT NULL, + `description` longtext NOT NULL, + `offer_type` varchar(128) NOT NULL, + `status` varchar(64) NOT NULL, + `priority` int(11) NOT NULL, + `start_datetime` datetime(6) DEFAULT NULL, + `end_datetime` datetime(6) DEFAULT NULL, + `max_global_applications` int(10) unsigned DEFAULT NULL, + `max_user_applications` int(10) unsigned DEFAULT NULL, + `max_basket_applications` int(10) unsigned DEFAULT NULL, + `max_discount` decimal(12,2) DEFAULT NULL, + `total_discount` decimal(12,2) NOT NULL, + `num_applications` int(10) unsigned NOT NULL, + `num_orders` int(10) unsigned NOT NULL, + `redirect_url` varchar(200) NOT NULL, + `date_created` datetime(6) NOT NULL, + `email_domains` varchar(255) DEFAULT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `benefit_id` int(11) DEFAULT NULL, + `condition_id` int(11) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `partner_id` int(11) DEFAULT NULL, + `site_id` int(11) DEFAULT NULL, + `exclusive` tinyint(1) NOT NULL, + `enterprise_contract_metadata_id` int(11) DEFAULT NULL, + `sales_force_id` varchar(30) DEFAULT NULL, + `max_user_discount` decimal(12,2) DEFAULT NULL, + `emails_for_usage_alert` longtext NOT NULL, + `usage_email_frequency` varchar(8) NOT NULL, + PRIMARY KEY (`history_id`), + KEY `offer_historicalcond_history_user_id_1dfce220_fk_ecommerce` (`history_user_id`), + KEY `offer_historicalconditionaloffer_id_5f516738` (`id`), + KEY `offer_historicalconditionaloffer_name_29a1cac8` (`name`), + KEY `offer_historicalconditionaloffer_benefit_id_7604697c` (`benefit_id`), + KEY `offer_historicalconditionaloffer_condition_id_685ce7ea` (`condition_id`), + KEY `offer_historicalconditionaloffer_partner_id_8f82e893` (`partner_id`), + KEY `offer_historicalconditionaloffer_site_id_a6eaef0e` (`site_id`), + KEY `offer_historicalconditional_enterprise_contract_metadat_045a388a` (`enterprise_contract_metadata_id`), + KEY `offer_historicalconditionaloffer_priority_bf718df5` (`priority`), + CONSTRAINT `offer_historicalcond_history_user_id_1dfce220_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `offer_historicalconditionaloffer` +-- + +LOCK TABLES `offer_historicalconditionaloffer` WRITE; +/*!40000 ALTER TABLE `offer_historicalconditionaloffer` DISABLE KEYS */; +/*!40000 ALTER TABLE `offer_historicalconditionaloffer` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `offer_historicalofferassignment` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `offer_historicalofferassignment` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `code` varchar(128) NOT NULL, + `user_email` varchar(254) NOT NULL, + `status` varchar(255) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `offer_id` int(11) DEFAULT NULL, + `voucher_application_id` int(11) DEFAULT NULL, + `assignment_date` datetime(6) DEFAULT NULL, + `last_reminder_date` datetime(6) DEFAULT NULL, + `revocation_date` datetime(6) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `offer_historicaloffe_history_user_id_9cf22206_fk_ecommerce` (`history_user_id`), + KEY `offer_historicalofferassignment_id_5400ff80` (`id`), + KEY `offer_historicalofferassignment_offer_id_a039fe0e` (`offer_id`), + KEY `offer_historicalofferassignment_voucher_application_id_f9f6a04a` (`voucher_application_id`), + KEY `offer_historicalofferassignment_code_6a8d896e` (`code`), + KEY `offer_historicalofferassignment_status_b6ad38e7` (`status`), + KEY `offer_historicalofferassignment_user_email_c90e77a8` (`user_email`), + CONSTRAINT `offer_historicaloffe_history_user_id_9cf22206_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `offer_historicalofferassignment` +-- + +LOCK TABLES `offer_historicalofferassignment` WRITE; +/*!40000 ALTER TABLE `offer_historicalofferassignment` DISABLE KEYS */; +/*!40000 ALTER TABLE `offer_historicalofferassignment` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `offer_historicalrange` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `offer_historicalrange` ( + `id` int(11) NOT NULL, + `name` varchar(128) NOT NULL, + `description` longtext NOT NULL, + `is_public` tinyint(1) NOT NULL, + `includes_all_products` tinyint(1) NOT NULL, + `proxy_class` varchar(255) DEFAULT NULL, + `date_created` datetime(6) NOT NULL, + `catalog_query` longtext, + `course_catalog` int(10) unsigned DEFAULT NULL, + `enterprise_customer` char(32) DEFAULT NULL, + `enterprise_customer_catalog` char(32) DEFAULT NULL, + `course_seat_types` varchar(255) DEFAULT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `catalog_id` int(11) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `offer_historicalrang_history_user_id_c7c79383_fk_ecommerce` (`history_user_id`), + KEY `offer_historicalrange_id_5ff50be3` (`id`), + KEY `offer_historicalrange_name_7c6b1468` (`name`), + KEY `offer_historicalrange_proxy_class_be5f4b6b` (`proxy_class`), + KEY `offer_historicalrange_catalog_id_dc747bbd` (`catalog_id`), + CONSTRAINT `offer_historicalrang_history_user_id_c7c79383_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `offer_historicalrange` +-- + +LOCK TABLES `offer_historicalrange` WRITE; +/*!40000 ALTER TABLE `offer_historicalrange` DISABLE KEYS */; +/*!40000 ALTER TABLE `offer_historicalrange` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `offer_historicalrangeproduct` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `offer_historicalrangeproduct` ( + `id` int(11) NOT NULL, + `display_order` int(11) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `product_id` int(11) DEFAULT NULL, + `range_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `offer_historicalrang_history_user_id_c876d862_fk_ecommerce` (`history_user_id`), + KEY `offer_historicalrangeproduct_id_11a3ed6a` (`id`), + KEY `offer_historicalrangeproduct_product_id_2f38aabe` (`product_id`), + KEY `offer_historicalrangeproduct_range_id_a34f98bb` (`range_id`), + CONSTRAINT `offer_historicalrang_history_user_id_c876d862_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `offer_historicalrangeproduct` +-- + +LOCK TABLES `offer_historicalrangeproduct` WRITE; +/*!40000 ALTER TABLE `offer_historicalrangeproduct` DISABLE KEYS */; +/*!40000 ALTER TABLE `offer_historicalrangeproduct` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `offer_offerassignment` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `offer_offerassignment` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `code` varchar(128) NOT NULL, + `user_email` varchar(254) NOT NULL, + `status` varchar(255) NOT NULL, + `offer_id` int(11) NOT NULL, + `voucher_application_id` int(11) DEFAULT NULL, + `assignment_date` datetime(6) DEFAULT NULL, + `last_reminder_date` datetime(6) DEFAULT NULL, + `revocation_date` datetime(6) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `offer_offerassignmen_offer_id_db7eea58_fk_offer_con` (`offer_id`), + KEY `offer_offerassignmen_voucher_application__85ebbc90_fk_voucher_v` (`voucher_application_id`), + KEY `offer_offerassignment_code_d02da8b5` (`code`), + KEY `offer_offerassignment_status_578284ab` (`status`), + KEY `offer_offerassignment_user_email_475febf2` (`user_email`), + KEY `offer_offer_code_70b216_idx` (`code`,`user_email`), + KEY `offer_offer_code_4aa171_idx` (`code`,`status`), + CONSTRAINT `offer_offerassignmen_offer_id_db7eea58_fk_offer_con` FOREIGN KEY (`offer_id`) REFERENCES `offer_conditionaloffer` (`id`), + CONSTRAINT `offer_offerassignmen_voucher_application__85ebbc90_fk_voucher_v` FOREIGN KEY (`voucher_application_id`) REFERENCES `voucher_voucherapplication` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `offer_offerassignment` +-- + +LOCK TABLES `offer_offerassignment` WRITE; +/*!40000 ALTER TABLE `offer_offerassignment` DISABLE KEYS */; +/*!40000 ALTER TABLE `offer_offerassignment` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `offer_offerassignmentemailattempt` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `offer_offerassignmentemailattempt` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `send_id` varchar(255) NOT NULL, + `offer_assignment_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `send_id` (`send_id`), + KEY `offer_offerassignmen_offer_assignment_id_64f0cff1_fk_offer_off` (`offer_assignment_id`), + CONSTRAINT `offer_offerassignmen_offer_assignment_id_64f0cff1_fk_offer_off` FOREIGN KEY (`offer_assignment_id`) REFERENCES `offer_offerassignment` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `offer_offerassignmentemailattempt` +-- + +LOCK TABLES `offer_offerassignmentemailattempt` WRITE; +/*!40000 ALTER TABLE `offer_offerassignmentemailattempt` DISABLE KEYS */; +/*!40000 ALTER TABLE `offer_offerassignmentemailattempt` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `offer_offerassignmentemailsentrecord` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `offer_offerassignmentemailsentrecord` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `enterprise_customer` char(32) NOT NULL, + `email_type` varchar(32) NOT NULL, + `template_id` int(10) unsigned DEFAULT NULL, + `template_content_type_id` int(11) DEFAULT NULL, + `code` varchar(128) DEFAULT NULL, + `receiver_id` int(10) unsigned DEFAULT NULL, + `sender_category` varchar(32) DEFAULT NULL, + `sender_id` int(10) unsigned DEFAULT NULL, + `user_email` varchar(254) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `offer_offerassignmen_template_content_typ_44b5ef4a_fk_django_co` (`template_content_type_id`), + CONSTRAINT `offer_offerassignmen_template_content_typ_44b5ef4a_fk_django_co` FOREIGN KEY (`template_content_type_id`) REFERENCES `django_content_type` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `offer_offerassignmentemailsentrecord` +-- + +LOCK TABLES `offer_offerassignmentemailsentrecord` WRITE; +/*!40000 ALTER TABLE `offer_offerassignmentemailsentrecord` DISABLE KEYS */; +/*!40000 ALTER TABLE `offer_offerassignmentemailsentrecord` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `offer_offerassignmentemailtemplates` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `offer_offerassignmentemailtemplates` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `enterprise_customer` char(32) NOT NULL, + `email_type` varchar(32) NOT NULL, + `email_greeting` longtext, + `email_closing` longtext, + `active` tinyint(1) NOT NULL, + `name` varchar(255) NOT NULL, + `email_subject` longtext, + PRIMARY KEY (`id`), + KEY `offer_offer_enterpr_a9dd7f_idx` (`enterprise_customer`,`email_type`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `offer_offerassignmentemailtemplates` +-- + +LOCK TABLES `offer_offerassignmentemailtemplates` WRITE; +/*!40000 ALTER TABLE `offer_offerassignmentemailtemplates` DISABLE KEYS */; +/*!40000 ALTER TABLE `offer_offerassignmentemailtemplates` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `offer_offerusageemail` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `offer_offerusageemail` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `offer_email_metadata` longtext NOT NULL, + `offer_id` int(11) NOT NULL, + `email_type` varchar(32) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `offer_offerusageemai_offer_id_f3c4d8e7_fk_offer_con` (`offer_id`), + CONSTRAINT `offer_offerusageemai_offer_id_f3c4d8e7_fk_offer_con` FOREIGN KEY (`offer_id`) REFERENCES `offer_conditionaloffer` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `offer_offerusageemail` +-- + +LOCK TABLES `offer_offerusageemail` WRITE; +/*!40000 ALTER TABLE `offer_offerusageemail` DISABLE KEYS */; +/*!40000 ALTER TABLE `offer_offerusageemail` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `offer_range` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `offer_range` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(128) NOT NULL, + `slug` varchar(128) NOT NULL, + `description` longtext NOT NULL, + `is_public` tinyint(1) NOT NULL, `includes_all_products` tinyint(1) NOT NULL, `proxy_class` varchar(255) DEFAULT NULL, `date_created` datetime(6) NOT NULL, @@ -1612,6 +2669,7 @@ CREATE TABLE `offer_range` ( `course_seat_types` varchar(255) DEFAULT NULL, `course_catalog` int(10) unsigned DEFAULT NULL, `enterprise_customer` char(32) DEFAULT NULL, + `enterprise_customer_catalog` char(32) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`), UNIQUE KEY `slug` (`slug`), @@ -1641,9 +2699,9 @@ CREATE TABLE `offer_range_classes` ( `range_id` int(11) NOT NULL, `productclass_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `offer_range_classes_range_id_28eeefae_uniq` (`range_id`,`productclass_id`), - KEY `offer_rang_productclass_id_6f6de46d_fk_catalogue_productclass_id` (`productclass_id`), - CONSTRAINT `offer_rang_productclass_id_6f6de46d_fk_catalogue_productclass_id` FOREIGN KEY (`productclass_id`) REFERENCES `catalogue_productclass` (`id`), + UNIQUE KEY `offer_range_classes_range_id_productclass_id_28eeefae_uniq` (`range_id`,`productclass_id`), + KEY `offer_range_classes_productclass_id_6f6de46d_fk_catalogue` (`productclass_id`), + CONSTRAINT `offer_range_classes_productclass_id_6f6de46d_fk_catalogue` FOREIGN KEY (`productclass_id`) REFERENCES `catalogue_productclass` (`id`), CONSTRAINT `offer_range_classes_range_id_7d3e573e_fk_offer_range_id` FOREIGN KEY (`range_id`) REFERENCES `offer_range` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1668,10 +2726,10 @@ CREATE TABLE `offer_range_excluded_products` ( `range_id` int(11) NOT NULL, `product_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `offer_range_excluded_products_range_id_eb1cfe87_uniq` (`range_id`,`product_id`), - KEY `offer_range_excluded_product_id_78c49bfc_fk_catalogue_product_id` (`product_id`), - CONSTRAINT `offer_range_excluded_product_id_78c49bfc_fk_catalogue_product_id` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`), - CONSTRAINT `offer_range_excluded_product_range_id_cce4a032_fk_offer_range_id` FOREIGN KEY (`range_id`) REFERENCES `offer_range` (`id`) + UNIQUE KEY `offer_range_excluded_products_range_id_product_id_eb1cfe87_uniq` (`range_id`,`product_id`), + KEY `offer_range_excluded_product_id_78c49bfc_fk_catalogue` (`product_id`), + CONSTRAINT `offer_range_excluded_product_id_78c49bfc_fk_catalogue` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`), + CONSTRAINT `offer_range_excluded_range_id_cce4a032_fk_offer_ran` FOREIGN KEY (`range_id`) REFERENCES `offer_range` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1695,10 +2753,10 @@ CREATE TABLE `offer_range_included_categories` ( `range_id` int(11) NOT NULL, `category_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `offer_range_included_categories_range_id_a661d336_uniq` (`range_id`,`category_id`), - KEY `offer_range_includ_category_id_c61569a5_fk_catalogue_category_id` (`category_id`), - CONSTRAINT `offer_range_includ_category_id_c61569a5_fk_catalogue_category_id` FOREIGN KEY (`category_id`) REFERENCES `catalogue_category` (`id`), - CONSTRAINT `offer_range_included_categor_range_id_1b616138_fk_offer_range_id` FOREIGN KEY (`range_id`) REFERENCES `offer_range` (`id`) + UNIQUE KEY `offer_range_included_cat_range_id_category_id_a661d336_uniq` (`range_id`,`category_id`), + KEY `offer_range_included_category_id_c61569a5_fk_catalogue` (`category_id`), + CONSTRAINT `offer_range_included_category_id_c61569a5_fk_catalogue` FOREIGN KEY (`category_id`) REFERENCES `catalogue_category` (`id`), + CONSTRAINT `offer_range_included_range_id_1b616138_fk_offer_ran` FOREIGN KEY (`range_id`) REFERENCES `offer_range` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1723,7 +2781,7 @@ CREATE TABLE `offer_rangeproduct` ( `product_id` int(11) NOT NULL, `range_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `offer_rangeproduct_range_id_c46b1be8_uniq` (`range_id`,`product_id`), + UNIQUE KEY `offer_rangeproduct_range_id_product_id_c46b1be8_uniq` (`range_id`,`product_id`), KEY `offer_rangeproduct_product_id_723b3ea3_fk_catalogue_product_id` (`product_id`), CONSTRAINT `offer_rangeproduct_product_id_723b3ea3_fk_catalogue_product_id` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`), CONSTRAINT `offer_rangeproduct_range_id_ee358495_fk_offer_range_id` FOREIGN KEY (`range_id`) REFERENCES `offer_range` (`id`) @@ -1760,8 +2818,9 @@ CREATE TABLE `offer_rangeproductfileupload` ( `uploaded_by_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `offer_rangeproductfileupload_range_id_c055ebf8_fk_offer_range_id` (`range_id`), - KEY `offer_rangeproductf_uploaded_by_id_c01a3250_fk_ecommerce_user_id` (`uploaded_by_id`), - CONSTRAINT `offer_rangeproductf_uploaded_by_id_c01a3250_fk_ecommerce_user_id` FOREIGN KEY (`uploaded_by_id`) REFERENCES `ecommerce_user` (`id`), + KEY `offer_rangeproductfi_uploaded_by_id_c01a3250_fk_ecommerce` (`uploaded_by_id`), + KEY `offer_rangeproductfileupload_date_uploaded_f0a4f9ae` (`date_uploaded`), + CONSTRAINT `offer_rangeproductfi_uploaded_by_id_c01a3250_fk_ecommerce` FOREIGN KEY (`uploaded_by_id`) REFERENCES `ecommerce_user` (`id`), CONSTRAINT `offer_rangeproductfileupload_range_id_c055ebf8_fk_offer_range_id` FOREIGN KEY (`range_id`) REFERENCES `offer_range` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1775,6 +2834,33 @@ LOCK TABLES `offer_rangeproductfileupload` WRITE; /*!40000 ALTER TABLE `offer_rangeproductfileupload` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `offer_templatefileattachment` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `offer_templatefileattachment` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(256) NOT NULL, + `size` int(10) unsigned NOT NULL, + `url` varchar(300) NOT NULL, + `template_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `offer_templatefileat_template_id_85f1bc1a_fk_offer_off` (`template_id`), + CONSTRAINT `offer_templatefileat_template_id_85f1bc1a_fk_offer_off` FOREIGN KEY (`template_id`) REFERENCES `offer_offerassignmentemailtemplates` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `offer_templatefileattachment` +-- + +LOCK TABLES `offer_templatefileattachment` WRITE; +/*!40000 ALTER TABLE `offer_templatefileattachment` DISABLE KEYS */; +/*!40000 ALTER TABLE `offer_templatefileattachment` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `order_billingaddress` -- @@ -1795,8 +2881,8 @@ CREATE TABLE `order_billingaddress` ( `search_text` longtext NOT NULL, `country_id` varchar(2) NOT NULL, PRIMARY KEY (`id`), - KEY `order_billi_country_id_17f57dca_fk_address_country_iso_3166_1_a2` (`country_id`), - CONSTRAINT `order_billi_country_id_17f57dca_fk_address_country_iso_3166_1_a2` FOREIGN KEY (`country_id`) REFERENCES `address_country` (`iso_3166_1_a2`) + KEY `order_billingaddress_country_id_17f57dca_fk_address_c` (`country_id`), + CONSTRAINT `order_billingaddress_country_id_17f57dca_fk_address_c` FOREIGN KEY (`country_id`) REFERENCES `address_country` (`iso_3166_1_a2`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1821,9 +2907,10 @@ CREATE TABLE `order_communicationevent` ( `event_type_id` int(11) NOT NULL, `order_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `ord_event_type_id_4bc9ee29_fk_customer_communicationeventtype_id` (`event_type_id`), + KEY `order_communicatione_event_type_id_4bc9ee29_fk_customer_` (`event_type_id`), KEY `order_communicationevent_order_id_94e784ac_fk_order_order_id` (`order_id`), - CONSTRAINT `ord_event_type_id_4bc9ee29_fk_customer_communicationeventtype_id` FOREIGN KEY (`event_type_id`) REFERENCES `customer_communicationeventtype` (`id`), + KEY `order_communicationevent_date_created_ce404d62` (`date_created`), + CONSTRAINT `order_communicatione_event_type_id_4bc9ee29_fk_communica` FOREIGN KEY (`event_type_id`) REFERENCES `communication_communicationeventtype` (`id`), CONSTRAINT `order_communicationevent_order_id_94e784ac_fk_order_order_id` FOREIGN KEY (`order_id`) REFERENCES `order_order` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1838,13 +2925,13 @@ LOCK TABLES `order_communicationevent` WRITE; UNLOCK TABLES; -- --- Table structure for table `order_line` +-- Table structure for table `order_historicalline` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `order_line` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `order_historicalline` ( + `id` int(11) NOT NULL, `partner_name` varchar(128) NOT NULL, `partner_sku` varchar(128) NOT NULL, `partner_line_reference` varchar(128) NOT NULL, @@ -1862,39 +2949,192 @@ CREATE TABLE `order_line` ( `unit_retail_price` decimal(12,2) DEFAULT NULL, `status` varchar(255) NOT NULL, `est_dispatch_date` date DEFAULT NULL, - `order_id` int(11) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `order_id` int(11) DEFAULT NULL, `partner_id` int(11) DEFAULT NULL, `product_id` int(11) DEFAULT NULL, `stockrecord_id` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `order_line_order_id_b9148391_fk_order_order_id` (`order_id`), - KEY `order_line_partner_id_258a2fb9_fk_partner_partner_id` (`partner_id`), - KEY `order_line_product_id_e620902d_fk_catalogue_product_id` (`product_id`), - KEY `order_line_stockrecord_id_1d65aff5_fk_partner_stockrecord_id` (`stockrecord_id`), - CONSTRAINT `order_line_order_id_b9148391_fk_order_order_id` FOREIGN KEY (`order_id`) REFERENCES `order_order` (`id`), - CONSTRAINT `order_line_partner_id_258a2fb9_fk_partner_partner_id` FOREIGN KEY (`partner_id`) REFERENCES `partner_partner` (`id`), - CONSTRAINT `order_line_product_id_e620902d_fk_catalogue_product_id` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`), - CONSTRAINT `order_line_stockrecord_id_1d65aff5_fk_partner_stockrecord_id` FOREIGN KEY (`stockrecord_id`) REFERENCES `partner_stockrecord` (`id`) + `effective_contract_discount_percentage` decimal(8,5) DEFAULT NULL, + `effective_contract_discounted_price` decimal(12,2) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `order_historicalline_history_user_id_0dc6d8a8_fk_ecommerce` (`history_user_id`), + KEY `order_historicalline_id_394a6e5b` (`id`), + KEY `order_historicalline_order_id_1721c6a7` (`order_id`), + KEY `order_historicalline_partner_id_9fbeb68e` (`partner_id`), + KEY `order_historicalline_product_id_647be269` (`product_id`), + KEY `order_historicalline_stockrecord_id_d80d3743` (`stockrecord_id`), + CONSTRAINT `order_historicalline_history_user_id_0dc6d8a8_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `order_line` +-- Dumping data for table `order_historicalline` -- -LOCK TABLES `order_line` WRITE; -/*!40000 ALTER TABLE `order_line` DISABLE KEYS */; -/*!40000 ALTER TABLE `order_line` ENABLE KEYS */; +LOCK TABLES `order_historicalline` WRITE; +/*!40000 ALTER TABLE `order_historicalline` DISABLE KEYS */; +/*!40000 ALTER TABLE `order_historicalline` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `order_lineattribute` +-- Table structure for table `order_historicalorder` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `order_lineattribute` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `order_historicalorder` ( + `id` int(11) NOT NULL, + `number` varchar(128) NOT NULL, + `currency` varchar(12) NOT NULL, + `total_incl_tax` decimal(12,2) NOT NULL, + `total_excl_tax` decimal(12,2) NOT NULL, + `shipping_incl_tax` decimal(12,2) NOT NULL, + `shipping_excl_tax` decimal(12,2) NOT NULL, + `shipping_method` varchar(128) NOT NULL, + `shipping_code` varchar(128) NOT NULL, + `status` varchar(100) NOT NULL, + `guest_email` varchar(254) NOT NULL, + `date_placed` datetime(6) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `basket_id` int(11) DEFAULT NULL, + `billing_address_id` int(11) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `partner_id` int(11) DEFAULT NULL, + `shipping_address_id` int(11) DEFAULT NULL, + `site_id` int(11) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `order_historicalorde_history_user_id_107abb44_fk_ecommerce` (`history_user_id`), + KEY `order_historicalorder_id_0c852165` (`id`), + KEY `order_historicalorder_number_7d043fad` (`number`), + KEY `order_historicalorder_date_placed_90b7b1d1` (`date_placed`), + KEY `order_historicalorder_basket_id_dc4a6cab` (`basket_id`), + KEY `order_historicalorder_billing_address_id_d7a6aea1` (`billing_address_id`), + KEY `order_historicalorder_partner_id_cbdd0edb` (`partner_id`), + KEY `order_historicalorder_shipping_address_id_9820772f` (`shipping_address_id`), + KEY `order_historicalorder_site_id_b4bf684e` (`site_id`), + KEY `order_historicalorder_user_id_731dcf92` (`user_id`), + CONSTRAINT `order_historicalorde_history_user_id_107abb44_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `order_historicalorder` +-- + +LOCK TABLES `order_historicalorder` WRITE; +/*!40000 ALTER TABLE `order_historicalorder` DISABLE KEYS */; +/*!40000 ALTER TABLE `order_historicalorder` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `order_historicalorderdiscount` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `order_historicalorderdiscount` ( + `id` int(11) NOT NULL, + `category` varchar(64) NOT NULL, + `offer_id` int(10) unsigned DEFAULT NULL, + `offer_name` varchar(128) NOT NULL, + `voucher_id` int(10) unsigned DEFAULT NULL, + `voucher_code` varchar(128) NOT NULL, + `frequency` int(10) unsigned DEFAULT NULL, + `amount` decimal(12,2) NOT NULL, + `message` longtext NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `order_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `order_historicalorde_history_user_id_a6bb38a1_fk_ecommerce` (`history_user_id`), + KEY `order_historicalorderdiscount_id_e9cee7a5` (`id`), + KEY `order_historicalorderdiscount_offer_name_8a2ab309` (`offer_name`), + KEY `order_historicalorderdiscount_voucher_code_88be3366` (`voucher_code`), + KEY `order_historicalorderdiscount_order_id_c77bc9d4` (`order_id`), + CONSTRAINT `order_historicalorde_history_user_id_a6bb38a1_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `order_historicalorderdiscount` +-- + +LOCK TABLES `order_historicalorderdiscount` WRITE; +/*!40000 ALTER TABLE `order_historicalorderdiscount` DISABLE KEYS */; +/*!40000 ALTER TABLE `order_historicalorderdiscount` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `order_line` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `order_line` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `partner_name` varchar(128) NOT NULL, + `partner_sku` varchar(128) NOT NULL, + `partner_line_reference` varchar(128) NOT NULL, + `partner_line_notes` longtext NOT NULL, + `title` varchar(255) NOT NULL, + `upc` varchar(128) DEFAULT NULL, + `quantity` int(10) unsigned NOT NULL, + `line_price_incl_tax` decimal(12,2) NOT NULL, + `line_price_excl_tax` decimal(12,2) NOT NULL, + `line_price_before_discounts_incl_tax` decimal(12,2) NOT NULL, + `line_price_before_discounts_excl_tax` decimal(12,2) NOT NULL, + `unit_cost_price` decimal(12,2) DEFAULT NULL, + `unit_price_incl_tax` decimal(12,2) DEFAULT NULL, + `unit_price_excl_tax` decimal(12,2) DEFAULT NULL, + `unit_retail_price` decimal(12,2) DEFAULT NULL, + `status` varchar(255) NOT NULL, + `est_dispatch_date` date DEFAULT NULL, + `order_id` int(11) NOT NULL, + `partner_id` int(11) DEFAULT NULL, + `product_id` int(11) DEFAULT NULL, + `stockrecord_id` int(11) DEFAULT NULL, + `effective_contract_discount_percentage` decimal(8,5) DEFAULT NULL, + `effective_contract_discounted_price` decimal(12,2) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `order_line_order_id_b9148391_fk_order_order_id` (`order_id`), + KEY `order_line_partner_id_258a2fb9_fk_partner_partner_id` (`partner_id`), + KEY `order_line_product_id_e620902d_fk_catalogue_product_id` (`product_id`), + KEY `order_line_stockrecord_id_1d65aff5_fk_partner_stockrecord_id` (`stockrecord_id`), + CONSTRAINT `order_line_order_id_b9148391_fk_order_order_id` FOREIGN KEY (`order_id`) REFERENCES `order_order` (`id`), + CONSTRAINT `order_line_partner_id_258a2fb9_fk_partner_partner_id` FOREIGN KEY (`partner_id`) REFERENCES `partner_partner` (`id`), + CONSTRAINT `order_line_product_id_e620902d_fk_catalogue_product_id` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`), + CONSTRAINT `order_line_stockrecord_id_1d65aff5_fk_partner_stockrecord_id` FOREIGN KEY (`stockrecord_id`) REFERENCES `partner_stockrecord` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `order_line` +-- + +LOCK TABLES `order_line` WRITE; +/*!40000 ALTER TABLE `order_line` DISABLE KEYS */; +/*!40000 ALTER TABLE `order_line` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `order_lineattribute` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `order_lineattribute` ( + `id` int(11) NOT NULL AUTO_INCREMENT, `type` varchar(128) NOT NULL, `value` varchar(255) NOT NULL, `line_id` int(11) NOT NULL, @@ -1948,6 +3188,33 @@ LOCK TABLES `order_lineprice` WRITE; /*!40000 ALTER TABLE `order_lineprice` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `order_markordersstatuscompleteconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `order_markordersstatuscompleteconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `txt_file` varchar(100) NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `order_markordersstat_changed_by_id_84d0d0ba_fk_ecommerce` (`changed_by_id`), + CONSTRAINT `order_markordersstat_changed_by_id_84d0d0ba_fk_ecommerce` FOREIGN KEY (`changed_by_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `order_markordersstatuscompleteconfig` +-- + +LOCK TABLES `order_markordersstatuscompleteconfig` WRITE; +/*!40000 ALTER TABLE `order_markordersstatuscompleteconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `order_markordersstatuscompleteconfig` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `order_order` -- @@ -1972,17 +3239,20 @@ CREATE TABLE `order_order` ( `shipping_address_id` int(11) DEFAULT NULL, `site_id` int(11) DEFAULT NULL, `user_id` int(11) DEFAULT NULL, + `partner_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `number` (`number`), KEY `order_order_basket_id_8b0acbb2_fk_basket_basket_id` (`basket_id`), - KEY `order_ord_billing_address_id_8fe537cf_fk_order_billingaddress_id` (`billing_address_id`), - KEY `order_order_90e84921` (`date_placed`), - KEY `order_o_shipping_address_id_57e64931_fk_order_shippingaddress_id` (`shipping_address_id`), + KEY `order_order_billing_address_id_8fe537cf_fk_order_bil` (`billing_address_id`), + KEY `order_order_date_placed_506a9365` (`date_placed`), + KEY `order_order_shipping_address_id_57e64931_fk_order_shi` (`shipping_address_id`), KEY `order_order_site_id_e27f3526_fk_django_site_id` (`site_id`), KEY `order_order_user_id_7cf9bc2b_fk_ecommerce_user_id` (`user_id`), - CONSTRAINT `order_o_shipping_address_id_57e64931_fk_order_shippingaddress_id` FOREIGN KEY (`shipping_address_id`) REFERENCES `order_shippingaddress` (`id`), - CONSTRAINT `order_ord_billing_address_id_8fe537cf_fk_order_billingaddress_id` FOREIGN KEY (`billing_address_id`) REFERENCES `order_billingaddress` (`id`), + KEY `order_order_partner_id_0195eb6a_fk_partner_partner_id` (`partner_id`), CONSTRAINT `order_order_basket_id_8b0acbb2_fk_basket_basket_id` FOREIGN KEY (`basket_id`) REFERENCES `basket_basket` (`id`), + CONSTRAINT `order_order_billing_address_id_8fe537cf_fk_order_bil` FOREIGN KEY (`billing_address_id`) REFERENCES `order_billingaddress` (`id`), + CONSTRAINT `order_order_partner_id_0195eb6a_fk_partner_partner_id` FOREIGN KEY (`partner_id`) REFERENCES `partner_partner` (`id`), + CONSTRAINT `order_order_shipping_address_id_57e64931_fk_order_shi` FOREIGN KEY (`shipping_address_id`) REFERENCES `order_shippingaddress` (`id`), CONSTRAINT `order_order_site_id_e27f3526_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`), CONSTRAINT `order_order_user_id_7cf9bc2b_fk_ecommerce_user_id` FOREIGN KEY (`user_id`) REFERENCES `ecommerce_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -2016,8 +3286,8 @@ CREATE TABLE `order_orderdiscount` ( `order_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `order_orderdiscount_order_id_bc91e123_fk_order_order_id` (`order_id`), - KEY `order_orderdiscount_9eeed246` (`offer_name`), - KEY `order_orderdiscount_08e4f7cd` (`voucher_code`), + KEY `order_orderdiscount_offer_name_706d6119` (`offer_name`), + KEY `order_orderdiscount_voucher_code_6ee4f360` (`voucher_code`), CONSTRAINT `order_orderdiscount_order_id_bc91e123_fk_order_order_id` FOREIGN KEY (`order_id`) REFERENCES `order_order` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -2062,6 +3332,34 @@ LOCK TABLES `order_ordernote` WRITE; /*!40000 ALTER TABLE `order_ordernote` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `order_orderstatuschange` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `order_orderstatuschange` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `old_status` varchar(100) NOT NULL, + `new_status` varchar(100) NOT NULL, + `date_created` datetime(6) NOT NULL, + `order_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `order_orderstatuschange_order_id_43efdbe5_fk_order_order_id` (`order_id`), + KEY `order_orderstatuschange_date_created_a5107b93` (`date_created`), + CONSTRAINT `order_orderstatuschange_order_id_43efdbe5_fk_order_order_id` FOREIGN KEY (`order_id`) REFERENCES `order_order` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `order_orderstatuschange` +-- + +LOCK TABLES `order_orderstatuschange` WRITE; +/*!40000 ALTER TABLE `order_orderstatuschange` DISABLE KEYS */; +/*!40000 ALTER TABLE `order_orderstatuschange` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `order_paymentevent` -- @@ -2078,12 +3376,13 @@ CREATE TABLE `order_paymentevent` ( `shipping_event_id` int(11) DEFAULT NULL, `processor_name` varchar(32) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `order_paymen_event_type_id_568c7161_fk_order_paymenteventtype_id` (`event_type_id`), + KEY `order_paymentevent_event_type_id_568c7161_fk_order_pay` (`event_type_id`), KEY `order_paymentevent_order_id_395b3e82_fk_order_order_id` (`order_id`), - KEY `order_payme_shipping_event_id_213dcfb8_fk_order_shippingevent_id` (`shipping_event_id`), - CONSTRAINT `order_payme_shipping_event_id_213dcfb8_fk_order_shippingevent_id` FOREIGN KEY (`shipping_event_id`) REFERENCES `order_shippingevent` (`id`), - CONSTRAINT `order_paymen_event_type_id_568c7161_fk_order_paymenteventtype_id` FOREIGN KEY (`event_type_id`) REFERENCES `order_paymenteventtype` (`id`), - CONSTRAINT `order_paymentevent_order_id_395b3e82_fk_order_order_id` FOREIGN KEY (`order_id`) REFERENCES `order_order` (`id`) + KEY `order_paymentevent_shipping_event_id_213dcfb8_fk_order_shi` (`shipping_event_id`), + KEY `order_paymentevent_date_created_05d8c079` (`date_created`), + CONSTRAINT `order_paymentevent_event_type_id_568c7161_fk_order_pay` FOREIGN KEY (`event_type_id`) REFERENCES `order_paymenteventtype` (`id`), + CONSTRAINT `order_paymentevent_order_id_395b3e82_fk_order_order_id` FOREIGN KEY (`order_id`) REFERENCES `order_order` (`id`), + CONSTRAINT `order_paymentevent_shipping_event_id_213dcfb8_fk_order_shi` FOREIGN KEY (`shipping_event_id`) REFERENCES `order_shippingevent` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -2108,9 +3407,9 @@ CREATE TABLE `order_paymenteventquantity` ( `event_id` int(11) NOT NULL, `line_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `order_paymenteventquantity_event_id_765c5209_uniq` (`event_id`,`line_id`), + UNIQUE KEY `order_paymenteventquantity_event_id_line_id_765c5209_uniq` (`event_id`,`line_id`), KEY `order_paymenteventquantity_line_id_df44b021_fk_order_line_id` (`line_id`), - CONSTRAINT `order_paymenteventqua_event_id_a540165a_fk_order_paymentevent_id` FOREIGN KEY (`event_id`) REFERENCES `order_paymentevent` (`id`), + CONSTRAINT `order_paymenteventqu_event_id_a540165a_fk_order_pay` FOREIGN KEY (`event_id`) REFERENCES `order_paymentevent` (`id`), CONSTRAINT `order_paymenteventquantity_line_id_df44b021_fk_order_line_id` FOREIGN KEY (`line_id`) REFERENCES `order_line` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -2171,8 +3470,8 @@ CREATE TABLE `order_shippingaddress` ( `notes` longtext NOT NULL, `country_id` varchar(2) NOT NULL, PRIMARY KEY (`id`), - KEY `order_shipp_country_id_29abf9a0_fk_address_country_iso_3166_1_a2` (`country_id`), - CONSTRAINT `order_shipp_country_id_29abf9a0_fk_address_country_iso_3166_1_a2` FOREIGN KEY (`country_id`) REFERENCES `address_country` (`iso_3166_1_a2`) + KEY `order_shippingaddres_country_id_29abf9a0_fk_address_c` (`country_id`), + CONSTRAINT `order_shippingaddres_country_id_29abf9a0_fk_address_c` FOREIGN KEY (`country_id`) REFERENCES `address_country` (`iso_3166_1_a2`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -2198,9 +3497,10 @@ CREATE TABLE `order_shippingevent` ( `event_type_id` int(11) NOT NULL, `order_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `order_shipp_event_type_id_9f1efb20_fk_order_shippingeventtype_id` (`event_type_id`), + KEY `order_shippingevent_event_type_id_9f1efb20_fk_order_shi` (`event_type_id`), KEY `order_shippingevent_order_id_8c031fb6_fk_order_order_id` (`order_id`), - CONSTRAINT `order_shipp_event_type_id_9f1efb20_fk_order_shippingeventtype_id` FOREIGN KEY (`event_type_id`) REFERENCES `order_shippingeventtype` (`id`), + KEY `order_shippingevent_date_created_74c4a6fa` (`date_created`), + CONSTRAINT `order_shippingevent_event_type_id_9f1efb20_fk_order_shi` FOREIGN KEY (`event_type_id`) REFERENCES `order_shippingeventtype` (`id`), CONSTRAINT `order_shippingevent_order_id_8c031fb6_fk_order_order_id` FOREIGN KEY (`order_id`) REFERENCES `order_order` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -2226,9 +3526,9 @@ CREATE TABLE `order_shippingeventquantity` ( `event_id` int(11) NOT NULL, `line_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `order_shippingeventquantity_event_id_91687107_uniq` (`event_id`,`line_id`), + UNIQUE KEY `order_shippingeventquantity_event_id_line_id_91687107_uniq` (`event_id`,`line_id`), KEY `order_shippingeventquantity_line_id_3b089ee0_fk_order_line_id` (`line_id`), - CONSTRAINT `order_shippingeventq_event_id_1c7fb9c7_fk_order_shippingevent_id` FOREIGN KEY (`event_id`) REFERENCES `order_shippingevent` (`id`), + CONSTRAINT `order_shippingeventq_event_id_1c7fb9c7_fk_order_shi` FOREIGN KEY (`event_id`) REFERENCES `order_shippingevent` (`id`), CONSTRAINT `order_shippingeventquantity_line_id_3b089ee0_fk_order_line_id` FOREIGN KEY (`line_id`) REFERENCES `order_line` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -2268,6 +3568,115 @@ INSERT INTO `order_shippingeventtype` VALUES (1,'Shipped','shipped'); /*!40000 ALTER TABLE `order_shippingeventtype` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `order_surcharge` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `order_surcharge` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(128) NOT NULL, + `code` varchar(128) NOT NULL, + `incl_tax` decimal(12,2) NOT NULL, + `excl_tax` decimal(12,2) NOT NULL, + `order_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `order_surcharge_order_id_5c0a94f5_fk_order_order_id` (`order_id`), + CONSTRAINT `order_surcharge_order_id_5c0a94f5_fk_order_order_id` FOREIGN KEY (`order_id`) REFERENCES `order_order` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `order_surcharge` +-- + +LOCK TABLES `order_surcharge` WRITE; +/*!40000 ALTER TABLE `order_surcharge` DISABLE KEYS */; +/*!40000 ALTER TABLE `order_surcharge` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `partner_historicalpartner` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `partner_historicalpartner` ( + `id` int(11) NOT NULL, + `name` varchar(128) NOT NULL, + `short_code` varchar(8) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `default_site_id` int(11) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `partner_historicalpa_history_user_id_971ab75b_fk_ecommerce` (`history_user_id`), + KEY `partner_historicalpartner_id_4955c403` (`id`), + KEY `partner_historicalpartner_short_code_d8d60225` (`short_code`), + KEY `partner_historicalpartner_default_site_id_8f53b529` (`default_site_id`), + KEY `partner_historicalpartner_name_63933fe9` (`name`), + CONSTRAINT `partner_historicalpa_history_user_id_971ab75b_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `partner_historicalpartner` +-- + +LOCK TABLES `partner_historicalpartner` WRITE; +/*!40000 ALTER TABLE `partner_historicalpartner` DISABLE KEYS */; +INSERT INTO `partner_historicalpartner` VALUES (1,'','',1,'2021-07-30 20:19:43.421833',NULL,'+',NULL,NULL),(1,'Open edX','edX',2,'2021-07-30 20:19:43.428853',NULL,'~',1,NULL),(1,'Open edX','edX',3,'2023-02-10 18:45:31.101495',NULL,'~',1,NULL),(1,'Open edX','edX',4,'2023-02-21 14:41:44.734565',NULL,'~',1,NULL); +/*!40000 ALTER TABLE `partner_historicalpartner` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `partner_historicalstockrecord` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `partner_historicalstockrecord` ( + `id` int(11) NOT NULL, + `partner_sku` varchar(128) NOT NULL, + `price_currency` varchar(12) NOT NULL, + `price_excl_tax` decimal(12,2) DEFAULT NULL, + `price_retail` decimal(12,2) DEFAULT NULL, + `cost_price` decimal(12,2) DEFAULT NULL, + `num_in_stock` int(10) unsigned DEFAULT NULL, + `num_allocated` int(11) DEFAULT NULL, + `low_stock_threshold` int(10) unsigned DEFAULT NULL, + `date_created` datetime(6) NOT NULL, + `date_updated` datetime(6) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `partner_id` int(11) DEFAULT NULL, + `product_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `partner_historicalst_history_user_id_eda90769_fk_ecommerce` (`history_user_id`), + KEY `partner_historicalstockrecord_id_e529b9d7` (`id`), + KEY `partner_historicalstockrecord_date_updated_d81f5712` (`date_updated`), + KEY `partner_historicalstockrecord_partner_id_5369caa8` (`partner_id`), + KEY `partner_historicalstockrecord_product_id_e2905583` (`product_id`), + CONSTRAINT `partner_historicalst_history_user_id_eda90769_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `partner_historicalstockrecord` +-- + +LOCK TABLES `partner_historicalstockrecord` WRITE; +/*!40000 ALTER TABLE `partner_historicalstockrecord` DISABLE KEYS */; +INSERT INTO `partner_historicalstockrecord` VALUES (1,'68EFFFF','USD',0.00,NULL,NULL,NULL,NULL,NULL,'2021-07-30 20:19:59.167603','2021-07-30 20:19:59.167645',1,'2021-07-30 20:19:59.168481',NULL,'+',NULL,1,2),(2,'A5B6DBE','USD',149.00,NULL,NULL,NULL,NULL,NULL,'2021-07-30 20:19:59.223283','2021-07-30 20:19:59.223319',2,'2021-07-30 20:19:59.223904',NULL,'+',NULL,1,4),(3,'8CF08E5','USD',149.00,NULL,NULL,NULL,NULL,NULL,'2021-07-30 20:19:59.256723','2021-07-30 20:19:59.256765',3,'2021-07-30 20:19:59.257616',NULL,'+',NULL,1,3),(1,'68EFFFF','USD',0.00,NULL,NULL,NULL,NULL,NULL,'2021-07-30 20:19:59.167603','2023-02-10 18:45:44.562796',4,'2023-02-10 18:45:44.564228',NULL,'~',NULL,1,2),(2,'A5B6DBE','USD',149.00,NULL,NULL,NULL,NULL,NULL,'2021-07-30 20:19:59.223283','2023-02-10 18:45:44.638607',5,'2023-02-10 18:45:44.639822',NULL,'~',NULL,1,4),(3,'8CF08E5','USD',149.00,NULL,NULL,NULL,NULL,NULL,'2021-07-30 20:19:59.256723','2023-02-10 18:45:44.662595',6,'2023-02-10 18:45:44.663876',NULL,'~',NULL,1,3),(1,'68EFFFF','USD',0.00,NULL,NULL,NULL,NULL,NULL,'2021-07-30 20:19:59.167603','2023-02-21 14:41:58.514858',7,'2023-02-21 14:41:58.516461',NULL,'~',NULL,1,2),(2,'A5B6DBE','USD',149.00,NULL,NULL,NULL,NULL,NULL,'2021-07-30 20:19:59.223283','2023-02-21 14:41:58.582706',8,'2023-02-21 14:41:58.583888',NULL,'~',NULL,1,4),(3,'8CF08E5','USD',149.00,NULL,NULL,NULL,NULL,NULL,'2021-07-30 20:19:59.256723','2023-02-21 14:41:58.609763',9,'2023-02-21 14:41:58.611102',NULL,'~',NULL,1,3); +/*!40000 ALTER TABLE `partner_historicalstockrecord` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `partner_partner` -- @@ -2279,10 +3688,13 @@ CREATE TABLE `partner_partner` ( `code` varchar(128) NOT NULL, `name` varchar(128) NOT NULL, `short_code` varchar(8) NOT NULL, - `enable_sailthru` tinyint(1) NOT NULL, + `default_site_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `code` (`code`), - UNIQUE KEY `short_code` (`short_code`) + UNIQUE KEY `short_code` (`short_code`), + UNIQUE KEY `default_site_id` (`default_site_id`), + KEY `partner_partner_name_caa0c2ee` (`name`), + CONSTRAINT `partner_partner_default_site_id_c5e08da3_fk_django_site_id` FOREIGN KEY (`default_site_id`) REFERENCES `django_site` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -2307,7 +3719,7 @@ CREATE TABLE `partner_partner_users` ( `partner_id` int(11) NOT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `partner_partner_users_partner_id_9e5c0517_uniq` (`partner_id`,`user_id`), + UNIQUE KEY `partner_partner_users_partner_id_user_id_9e5c0517_uniq` (`partner_id`,`user_id`), KEY `partner_partner_users_user_id_d75d6e40_fk_ecommerce_user_id` (`user_id`), CONSTRAINT `partner_partner_users_partner_id_1883dfd9_fk_partner_partner_id` FOREIGN KEY (`partner_id`) REFERENCES `partner_partner` (`id`), CONSTRAINT `partner_partner_users_user_id_d75d6e40_fk_ecommerce_user_id` FOREIGN KEY (`user_id`) REFERENCES `ecommerce_user` (`id`) @@ -2344,9 +3756,9 @@ CREATE TABLE `partner_partneraddress` ( `country_id` varchar(2) NOT NULL, `partner_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `partner_par_country_id_02c4f979_fk_address_country_iso_3166_1_a2` (`country_id`), + KEY `partner_partneraddre_country_id_02c4f979_fk_address_c` (`country_id`), KEY `partner_partneraddress_partner_id_59551b0a_fk_partner_partner_id` (`partner_id`), - CONSTRAINT `partner_par_country_id_02c4f979_fk_address_country_iso_3166_1_a2` FOREIGN KEY (`country_id`) REFERENCES `address_country` (`iso_3166_1_a2`), + CONSTRAINT `partner_partneraddre_country_id_02c4f979_fk_address_c` FOREIGN KEY (`country_id`) REFERENCES `address_country` (`iso_3166_1_a2`), CONSTRAINT `partner_partneraddress_partner_id_59551b0a_fk_partner_partner_id` FOREIGN KEY (`partner_id`) REFERENCES `partner_partner` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -2374,8 +3786,9 @@ CREATE TABLE `partner_stockalert` ( `date_closed` datetime(6) DEFAULT NULL, `stockrecord_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `partner_stocka_stockrecord_id_68ad503a_fk_partner_stockrecord_id` (`stockrecord_id`), - CONSTRAINT `partner_stocka_stockrecord_id_68ad503a_fk_partner_stockrecord_id` FOREIGN KEY (`stockrecord_id`) REFERENCES `partner_stockrecord` (`id`) + KEY `partner_stockalert_stockrecord_id_68ad503a_fk_partner_s` (`stockrecord_id`), + KEY `partner_stockalert_date_created_832cf043` (`date_created`), + CONSTRAINT `partner_stockalert_stockrecord_id_68ad503a_fk_partner_s` FOREIGN KEY (`stockrecord_id`) REFERENCES `partner_stockrecord` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -2399,601 +3812,367 @@ CREATE TABLE `partner_stockrecord` ( `partner_sku` varchar(128) NOT NULL, `price_currency` varchar(12) NOT NULL, `price_excl_tax` decimal(12,2) DEFAULT NULL, - `price_retail` decimal(12,2) DEFAULT NULL, - `cost_price` decimal(12,2) DEFAULT NULL, - `num_in_stock` int(10) unsigned DEFAULT NULL, - `num_allocated` int(11) DEFAULT NULL, - `low_stock_threshold` int(10) unsigned DEFAULT NULL, - `date_created` datetime(6) NOT NULL, - `date_updated` datetime(6) NOT NULL, - `partner_id` int(11) NOT NULL, - `product_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `partner_stockrecord_partner_id_8441e010_uniq` (`partner_id`,`partner_sku`), - KEY `partner_stockrecord_product_id_62fd9e45_fk_catalogue_product_id` (`product_id`), - KEY `partner_stockrecord_9474e4b5` (`date_updated`), - CONSTRAINT `partner_stockrecord_partner_id_4155a586_fk_partner_partner_id` FOREIGN KEY (`partner_id`) REFERENCES `partner_partner` (`id`), - CONSTRAINT `partner_stockrecord_product_id_62fd9e45_fk_catalogue_product_id` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `partner_stockrecord` --- - -LOCK TABLES `partner_stockrecord` WRITE; -/*!40000 ALTER TABLE `partner_stockrecord` DISABLE KEYS */; -INSERT INTO `partner_stockrecord` VALUES (1,'68EFFFF','USD',0.00,NULL,NULL,NULL,NULL,NULL,'2018-02-02 15:05:41.754060','2018-02-02 15:05:41.754121',1,2),(2,'8CF08E5','USD',149.00,NULL,NULL,NULL,NULL,NULL,'2018-02-02 15:05:41.787375','2018-02-02 15:05:41.787413',1,3); -/*!40000 ALTER TABLE `partner_stockrecord` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `payment_bankcard` --- - -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `payment_bankcard` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `card_type` varchar(128) NOT NULL, - `name` varchar(255) NOT NULL, - `number` varchar(32) NOT NULL, - `expiry_date` date NOT NULL, - `partner_reference` varchar(255) NOT NULL, - `user_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `payment_bankcard_user_id_08e1d04c_fk_ecommerce_user_id` (`user_id`), - CONSTRAINT `payment_bankcard_user_id_08e1d04c_fk_ecommerce_user_id` FOREIGN KEY (`user_id`) REFERENCES `ecommerce_user` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `payment_bankcard` --- - -LOCK TABLES `payment_bankcard` WRITE; -/*!40000 ALTER TABLE `payment_bankcard` DISABLE KEYS */; -/*!40000 ALTER TABLE `payment_bankcard` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `payment_paymentprocessorresponse` --- - -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `payment_paymentprocessorresponse` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `processor_name` varchar(255) NOT NULL, - `transaction_id` varchar(255) DEFAULT NULL, - `response` longtext NOT NULL, - `created` datetime(6) NOT NULL, - `basket_id` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `payment_paymentprocessorresponse_processor_name_c62034f3_idx` (`processor_name`,`transaction_id`), - KEY `payment_paymentprocessorr_basket_id_ff3d36a2_fk_basket_basket_id` (`basket_id`), - KEY `payment_paymentprocessorresponse_e2fa5388` (`created`), - CONSTRAINT `payment_paymentprocessorr_basket_id_ff3d36a2_fk_basket_basket_id` FOREIGN KEY (`basket_id`) REFERENCES `basket_basket` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `payment_paymentprocessorresponse` --- - -LOCK TABLES `payment_paymentprocessorresponse` WRITE; -/*!40000 ALTER TABLE `payment_paymentprocessorresponse` DISABLE KEYS */; -/*!40000 ALTER TABLE `payment_paymentprocessorresponse` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `payment_paypalprocessorconfiguration` --- - -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `payment_paypalprocessorconfiguration` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `retry_attempts` smallint(5) unsigned NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `payment_paypalprocessorconfiguration` --- - -LOCK TABLES `payment_paypalprocessorconfiguration` WRITE; -/*!40000 ALTER TABLE `payment_paypalprocessorconfiguration` DISABLE KEYS */; -/*!40000 ALTER TABLE `payment_paypalprocessorconfiguration` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `payment_paypalwebprofile` --- - -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `payment_paypalwebprofile` ( - `id` varchar(255) NOT NULL, - `name` varchar(255) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `payment_paypalwebprofile` --- - -LOCK TABLES `payment_paypalwebprofile` WRITE; -/*!40000 ALTER TABLE `payment_paypalwebprofile` DISABLE KEYS */; -/*!40000 ALTER TABLE `payment_paypalwebprofile` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `payment_sdncheckfailure` --- - -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `payment_sdncheckfailure` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, - `full_name` varchar(255) NOT NULL, - `username` varchar(255) NOT NULL, - `country` varchar(2) NOT NULL, - `sdn_check_response` longtext NOT NULL, - `site_id` int(11) DEFAULT NULL, - `city` varchar(32) NOT NULL, - PRIMARY KEY (`id`), - KEY `payment_sdncheckfailure_site_id_202cf400_fk_django_site_id` (`site_id`), - CONSTRAINT `payment_sdncheckfailure_site_id_202cf400_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `payment_sdncheckfailure` --- - -LOCK TABLES `payment_sdncheckfailure` WRITE; -/*!40000 ALTER TABLE `payment_sdncheckfailure` DISABLE KEYS */; -/*!40000 ALTER TABLE `payment_sdncheckfailure` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `payment_sdncheckfailure_products` --- - -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `payment_sdncheckfailure_products` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `sdncheckfailure_id` int(11) NOT NULL, - `product_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `payment_sdncheckfailure_product_sdncheckfailure_id_5e39885c_uniq` (`sdncheckfailure_id`,`product_id`), - KEY `payment_sdncheckfail_product_id_6d431270_fk_catalogue_product_id` (`product_id`), - CONSTRAINT `paymen_sdncheckfailure_id_a8c1f0d4_fk_payment_sdncheckfailure_id` FOREIGN KEY (`sdncheckfailure_id`) REFERENCES `payment_sdncheckfailure` (`id`), - CONSTRAINT `payment_sdncheckfail_product_id_6d431270_fk_catalogue_product_id` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `payment_sdncheckfailure_products` --- - -LOCK TABLES `payment_sdncheckfailure_products` WRITE; -/*!40000 ALTER TABLE `payment_sdncheckfailure_products` DISABLE KEYS */; -/*!40000 ALTER TABLE `payment_sdncheckfailure_products` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `payment_source` --- - -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `payment_source` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `currency` varchar(12) NOT NULL, - `amount_allocated` decimal(12,2) NOT NULL, - `amount_debited` decimal(12,2) NOT NULL, - `amount_refunded` decimal(12,2) NOT NULL, - `reference` varchar(255) NOT NULL, - `label` varchar(128) NOT NULL, - `order_id` int(11) NOT NULL, - `source_type_id` int(11) NOT NULL, - `card_type` varchar(255) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `payment_source_order_id_6b7f2215_fk_order_order_id` (`order_id`), - KEY `payment_source_source_type_id_700828fe_fk_payment_sourcetype_id` (`source_type_id`), - CONSTRAINT `payment_source_order_id_6b7f2215_fk_order_order_id` FOREIGN KEY (`order_id`) REFERENCES `order_order` (`id`), - CONSTRAINT `payment_source_source_type_id_700828fe_fk_payment_sourcetype_id` FOREIGN KEY (`source_type_id`) REFERENCES `payment_sourcetype` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `payment_source` --- - -LOCK TABLES `payment_source` WRITE; -/*!40000 ALTER TABLE `payment_source` DISABLE KEYS */; -/*!40000 ALTER TABLE `payment_source` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `payment_sourcetype` --- - -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `payment_sourcetype` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(128) NOT NULL, - `code` varchar(128) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `code` (`code`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `payment_sourcetype` --- - -LOCK TABLES `payment_sourcetype` WRITE; -/*!40000 ALTER TABLE `payment_sourcetype` DISABLE KEYS */; -/*!40000 ALTER TABLE `payment_sourcetype` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `payment_transaction` --- - -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `payment_transaction` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `txn_type` varchar(128) NOT NULL, - `amount` decimal(12,2) NOT NULL, - `reference` varchar(128) NOT NULL, - `status` varchar(128) NOT NULL, + `price_retail` decimal(12,2) DEFAULT NULL, + `cost_price` decimal(12,2) DEFAULT NULL, + `num_in_stock` int(10) unsigned DEFAULT NULL, + `num_allocated` int(11) DEFAULT NULL, + `low_stock_threshold` int(10) unsigned DEFAULT NULL, `date_created` datetime(6) NOT NULL, - `source_id` int(11) NOT NULL, + `date_updated` datetime(6) NOT NULL, + `partner_id` int(11) NOT NULL, + `product_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `payment_transaction_source_id_c5ac31e8_fk_payment_source_id` (`source_id`), - CONSTRAINT `payment_transaction_source_id_c5ac31e8_fk_payment_source_id` FOREIGN KEY (`source_id`) REFERENCES `payment_source` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + UNIQUE KEY `partner_stockrecord_partner_id_partner_sku_8441e010_uniq` (`partner_id`,`partner_sku`), + KEY `partner_stockrecord_product_id_62fd9e45_fk_catalogue_product_id` (`product_id`), + KEY `partner_stockrecord_date_updated_e6ae5f14` (`date_updated`), + CONSTRAINT `partner_stockrecord_partner_id_4155a586_fk_partner_partner_id` FOREIGN KEY (`partner_id`) REFERENCES `partner_partner` (`id`), + CONSTRAINT `partner_stockrecord_product_id_62fd9e45_fk_catalogue_product_id` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `payment_transaction` +-- Dumping data for table `partner_stockrecord` -- -LOCK TABLES `payment_transaction` WRITE; -/*!40000 ALTER TABLE `payment_transaction` DISABLE KEYS */; -/*!40000 ALTER TABLE `payment_transaction` ENABLE KEYS */; +LOCK TABLES `partner_stockrecord` WRITE; +/*!40000 ALTER TABLE `partner_stockrecord` DISABLE KEYS */; +INSERT INTO `partner_stockrecord` VALUES (1,'68EFFFF','USD',0.00,NULL,NULL,NULL,NULL,NULL,'2021-07-30 20:19:59.167603','2023-02-21 14:41:58.514858',1,2),(2,'A5B6DBE','USD',149.00,NULL,NULL,NULL,NULL,NULL,'2021-07-30 20:19:59.223283','2023-02-21 14:41:58.582706',1,4),(3,'8CF08E5','USD',149.00,NULL,NULL,NULL,NULL,NULL,'2021-07-30 20:19:59.256723','2023-02-21 14:41:58.609763',1,3); +/*!40000 ALTER TABLE `partner_stockrecord` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `promotions_automaticproductlist` +-- Table structure for table `payment_bankcard` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `promotions_automaticproductlist` ( +CREATE TABLE `payment_bankcard` ( `id` int(11) NOT NULL AUTO_INCREMENT, + `card_type` varchar(128) NOT NULL, `name` varchar(255) NOT NULL, - `description` longtext NOT NULL, - `link_url` varchar(200) NOT NULL, - `link_text` varchar(255) NOT NULL, - `date_created` datetime(6) NOT NULL, - `method` varchar(128) NOT NULL, - `num_products` smallint(5) unsigned NOT NULL, - PRIMARY KEY (`id`) + `number` varchar(32) NOT NULL, + `expiry_date` date NOT NULL, + `partner_reference` varchar(255) NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `payment_bankcard_user_id_08e1d04c_fk_ecommerce_user_id` (`user_id`), + CONSTRAINT `payment_bankcard_user_id_08e1d04c_fk_ecommerce_user_id` FOREIGN KEY (`user_id`) REFERENCES `ecommerce_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `promotions_automaticproductlist` +-- Dumping data for table `payment_bankcard` -- -LOCK TABLES `promotions_automaticproductlist` WRITE; -/*!40000 ALTER TABLE `promotions_automaticproductlist` DISABLE KEYS */; -/*!40000 ALTER TABLE `promotions_automaticproductlist` ENABLE KEYS */; +LOCK TABLES `payment_bankcard` WRITE; +/*!40000 ALTER TABLE `payment_bankcard` DISABLE KEYS */; +/*!40000 ALTER TABLE `payment_bankcard` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `promotions_handpickedproductlist` +-- Table structure for table `payment_enterprisecontractmetadata` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `promotions_handpickedproductlist` ( +CREATE TABLE `payment_enterprisecontractmetadata` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(255) NOT NULL, - `description` longtext NOT NULL, - `link_url` varchar(200) NOT NULL, - `link_text` varchar(255) NOT NULL, - `date_created` datetime(6) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `amount_paid` decimal(12,2) DEFAULT NULL, + `discount_value` decimal(15,5) DEFAULT NULL, + `discount_type` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `promotions_handpickedproductlist` +-- Dumping data for table `payment_enterprisecontractmetadata` -- -LOCK TABLES `promotions_handpickedproductlist` WRITE; -/*!40000 ALTER TABLE `promotions_handpickedproductlist` DISABLE KEYS */; -/*!40000 ALTER TABLE `promotions_handpickedproductlist` ENABLE KEYS */; +LOCK TABLES `payment_enterprisecontractmetadata` WRITE; +/*!40000 ALTER TABLE `payment_enterprisecontractmetadata` DISABLE KEYS */; +/*!40000 ALTER TABLE `payment_enterprisecontractmetadata` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `promotions_image` +-- Table structure for table `payment_paymentprocessorresponse` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `promotions_image` ( +CREATE TABLE `payment_paymentprocessorresponse` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(128) NOT NULL, - `link_url` varchar(200) NOT NULL, - `image` varchar(255) NOT NULL, - `date_created` datetime(6) NOT NULL, - PRIMARY KEY (`id`) + `processor_name` varchar(255) NOT NULL, + `transaction_id` varchar(255) DEFAULT NULL, + `response` longtext NOT NULL, + `created` datetime(6) NOT NULL, + `basket_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `payment_paymentprocessorr_processor_name_transactio_c62034f3_idx` (`processor_name`,`transaction_id`), + KEY `payment_paymentproce_basket_id_ff3d36a2_fk_basket_ba` (`basket_id`), + KEY `payment_paymentprocessorresponse_created_412fdf33` (`created`), + CONSTRAINT `payment_paymentproce_basket_id_ff3d36a2_fk_basket_ba` FOREIGN KEY (`basket_id`) REFERENCES `basket_basket` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `promotions_image` +-- Dumping data for table `payment_paymentprocessorresponse` -- -LOCK TABLES `promotions_image` WRITE; -/*!40000 ALTER TABLE `promotions_image` DISABLE KEYS */; -/*!40000 ALTER TABLE `promotions_image` ENABLE KEYS */; +LOCK TABLES `payment_paymentprocessorresponse` WRITE; +/*!40000 ALTER TABLE `payment_paymentprocessorresponse` DISABLE KEYS */; +/*!40000 ALTER TABLE `payment_paymentprocessorresponse` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `promotions_keywordpromotion` +-- Table structure for table `payment_paypalprocessorconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `promotions_keywordpromotion` ( +CREATE TABLE `payment_paypalprocessorconfiguration` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `object_id` int(10) unsigned NOT NULL, - `position` varchar(100) NOT NULL, - `display_order` int(10) unsigned NOT NULL, - `clicks` int(10) unsigned NOT NULL, - `date_created` datetime(6) NOT NULL, - `keyword` varchar(200) NOT NULL, - `filter` varchar(200) NOT NULL, - `content_type_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `promotions_ke_content_type_id_91959aa4_fk_django_content_type_id` (`content_type_id`), - CONSTRAINT `promotions_ke_content_type_id_91959aa4_fk_django_content_type_id` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`) + `retry_attempts` smallint(5) unsigned NOT NULL, + PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `promotions_keywordpromotion` +-- Dumping data for table `payment_paypalprocessorconfiguration` -- -LOCK TABLES `promotions_keywordpromotion` WRITE; -/*!40000 ALTER TABLE `promotions_keywordpromotion` DISABLE KEYS */; -/*!40000 ALTER TABLE `promotions_keywordpromotion` ENABLE KEYS */; +LOCK TABLES `payment_paypalprocessorconfiguration` WRITE; +/*!40000 ALTER TABLE `payment_paypalprocessorconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `payment_paypalprocessorconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `promotions_multiimage` +-- Table structure for table `payment_paypalwebprofile` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `promotions_multiimage` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(128) NOT NULL, - `date_created` datetime(6) NOT NULL, - PRIMARY KEY (`id`) +CREATE TABLE `payment_paypalwebprofile` ( + `id` varchar(255) NOT NULL, + `name` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `promotions_multiimage` +-- Dumping data for table `payment_paypalwebprofile` -- -LOCK TABLES `promotions_multiimage` WRITE; -/*!40000 ALTER TABLE `promotions_multiimage` DISABLE KEYS */; -/*!40000 ALTER TABLE `promotions_multiimage` ENABLE KEYS */; +LOCK TABLES `payment_paypalwebprofile` WRITE; +/*!40000 ALTER TABLE `payment_paypalwebprofile` DISABLE KEYS */; +/*!40000 ALTER TABLE `payment_paypalwebprofile` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `promotions_multiimage_images` +-- Table structure for table `payment_sdncheckfailure` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `promotions_multiimage_images` ( +CREATE TABLE `payment_sdncheckfailure` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `multiimage_id` int(11) NOT NULL, - `image_id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `full_name` varchar(255) NOT NULL, + `username` varchar(255) NOT NULL, + `country` varchar(2) NOT NULL, + `sdn_check_response` longtext NOT NULL, + `site_id` int(11) DEFAULT NULL, + `city` varchar(32) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `promotions_multiimage_images_multiimage_id_29363bca_uniq` (`multiimage_id`,`image_id`), - KEY `promotions_multiimage_i_image_id_bb6eca34_fk_promotions_image_id` (`image_id`), - CONSTRAINT `promotions_mu_multiimage_id_62ed9a9f_fk_promotions_multiimage_id` FOREIGN KEY (`multiimage_id`) REFERENCES `promotions_multiimage` (`id`), - CONSTRAINT `promotions_multiimage_i_image_id_bb6eca34_fk_promotions_image_id` FOREIGN KEY (`image_id`) REFERENCES `promotions_image` (`id`) + KEY `payment_sdncheckfailure_site_id_202cf400_fk_django_site_id` (`site_id`), + CONSTRAINT `payment_sdncheckfailure_site_id_202cf400_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `promotions_multiimage_images` +-- Dumping data for table `payment_sdncheckfailure` -- -LOCK TABLES `promotions_multiimage_images` WRITE; -/*!40000 ALTER TABLE `promotions_multiimage_images` DISABLE KEYS */; -/*!40000 ALTER TABLE `promotions_multiimage_images` ENABLE KEYS */; +LOCK TABLES `payment_sdncheckfailure` WRITE; +/*!40000 ALTER TABLE `payment_sdncheckfailure` DISABLE KEYS */; +/*!40000 ALTER TABLE `payment_sdncheckfailure` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `promotions_orderedproduct` +-- Table structure for table `payment_sdncheckfailure_products` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `promotions_orderedproduct` ( +CREATE TABLE `payment_sdncheckfailure_products` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `display_order` int(10) unsigned NOT NULL, - `list_id` int(11) NOT NULL, + `sdncheckfailure_id` int(11) NOT NULL, `product_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `promotions_orderedproduct_list_id_1e22874a_uniq` (`list_id`,`product_id`), - KEY `promotions_orderedpr_product_id_94dede36_fk_catalogue_product_id` (`product_id`), - CONSTRAINT `promotio_list_id_94f390b0_fk_promotions_handpickedproductlist_id` FOREIGN KEY (`list_id`) REFERENCES `promotions_handpickedproductlist` (`id`), - CONSTRAINT `promotions_orderedpr_product_id_94dede36_fk_catalogue_product_id` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`) + UNIQUE KEY `payment_sdncheckfailure__sdncheckfailure_id_produ_5e39885c_uniq` (`sdncheckfailure_id`,`product_id`), + KEY `payment_sdncheckfail_product_id_6d431270_fk_catalogue` (`product_id`), + CONSTRAINT `payment_sdncheckfail_product_id_6d431270_fk_catalogue` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`), + CONSTRAINT `payment_sdncheckfail_sdncheckfailure_id_a8c1f0d4_fk_payment_s` FOREIGN KEY (`sdncheckfailure_id`) REFERENCES `payment_sdncheckfailure` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `promotions_orderedproduct` +-- Dumping data for table `payment_sdncheckfailure_products` -- -LOCK TABLES `promotions_orderedproduct` WRITE; -/*!40000 ALTER TABLE `promotions_orderedproduct` DISABLE KEYS */; -/*!40000 ALTER TABLE `promotions_orderedproduct` ENABLE KEYS */; +LOCK TABLES `payment_sdncheckfailure_products` WRITE; +/*!40000 ALTER TABLE `payment_sdncheckfailure_products` DISABLE KEYS */; +/*!40000 ALTER TABLE `payment_sdncheckfailure_products` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `promotions_orderedproductlist` +-- Table structure for table `payment_sdnfallbackdata` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `promotions_orderedproductlist` ( - `handpickedproductlist_ptr_id` int(11) NOT NULL, - `display_order` int(10) unsigned NOT NULL, - `tabbed_block_id` int(11) NOT NULL, - PRIMARY KEY (`handpickedproductlist_ptr_id`), - KEY `promotions_tabbed_block_id_a018e8d5_fk_promotions_tabbedblock_id` (`tabbed_block_id`), - CONSTRAINT `D0960c2dac786e2180c5e16db0f3bf02` FOREIGN KEY (`handpickedproductlist_ptr_id`) REFERENCES `promotions_handpickedproductlist` (`id`), - CONSTRAINT `promotions_tabbed_block_id_a018e8d5_fk_promotions_tabbedblock_id` FOREIGN KEY (`tabbed_block_id`) REFERENCES `promotions_tabbedblock` (`id`) +CREATE TABLE `payment_sdnfallbackdata` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `source` varchar(255) NOT NULL, + `sdn_type` varchar(255) NOT NULL, + `names` longtext NOT NULL, + `addresses` longtext NOT NULL, + `countries` varchar(255) NOT NULL, + `sdn_fallback_metadata_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `payment_sdnfallbackd_sdn_fallback_metadat_ce5c42ba_fk_payment_s` (`sdn_fallback_metadata_id`), + KEY `payment_sdnfallbackdata_source_fabd7697` (`source`), + KEY `payment_sdnfallbackdata_sdn_type_09e8362b` (`sdn_type`), + CONSTRAINT `payment_sdnfallbackd_sdn_fallback_metadat_ce5c42ba_fk_payment_s` FOREIGN KEY (`sdn_fallback_metadata_id`) REFERENCES `payment_sdnfallbackmetadata` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `promotions_orderedproductlist` +-- Dumping data for table `payment_sdnfallbackdata` -- -LOCK TABLES `promotions_orderedproductlist` WRITE; -/*!40000 ALTER TABLE `promotions_orderedproductlist` DISABLE KEYS */; -/*!40000 ALTER TABLE `promotions_orderedproductlist` ENABLE KEYS */; +LOCK TABLES `payment_sdnfallbackdata` WRITE; +/*!40000 ALTER TABLE `payment_sdnfallbackdata` DISABLE KEYS */; +/*!40000 ALTER TABLE `payment_sdnfallbackdata` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `promotions_pagepromotion` +-- Table structure for table `payment_sdnfallbackmetadata` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `promotions_pagepromotion` ( +CREATE TABLE `payment_sdnfallbackmetadata` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `object_id` int(10) unsigned NOT NULL, - `position` varchar(100) NOT NULL, - `display_order` int(10) unsigned NOT NULL, - `clicks` int(10) unsigned NOT NULL, - `date_created` datetime(6) NOT NULL, - `page_url` varchar(128) NOT NULL, - `content_type_id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `file_checksum` varchar(255) NOT NULL, + `download_timestamp` datetime(6) NOT NULL, + `import_timestamp` datetime(6) DEFAULT NULL, + `import_state` varchar(255) NOT NULL, PRIMARY KEY (`id`), - KEY `promotions_pa_content_type_id_00707bff_fk_django_content_type_id` (`content_type_id`), - KEY `promotions_pagepromotion_072c6e88` (`page_url`), - CONSTRAINT `promotions_pa_content_type_id_00707bff_fk_django_content_type_id` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`) + UNIQUE KEY `import_state` (`import_state`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `promotions_pagepromotion` +-- Dumping data for table `payment_sdnfallbackmetadata` -- -LOCK TABLES `promotions_pagepromotion` WRITE; -/*!40000 ALTER TABLE `promotions_pagepromotion` DISABLE KEYS */; -/*!40000 ALTER TABLE `promotions_pagepromotion` ENABLE KEYS */; +LOCK TABLES `payment_sdnfallbackmetadata` WRITE; +/*!40000 ALTER TABLE `payment_sdnfallbackmetadata` DISABLE KEYS */; +/*!40000 ALTER TABLE `payment_sdnfallbackmetadata` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `promotions_rawhtml` +-- Table structure for table `payment_source` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `promotions_rawhtml` ( +CREATE TABLE `payment_source` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(128) NOT NULL, - `display_type` varchar(128) NOT NULL, - `body` longtext NOT NULL, - `date_created` datetime(6) NOT NULL, - PRIMARY KEY (`id`) + `currency` varchar(12) NOT NULL, + `amount_allocated` decimal(12,2) NOT NULL, + `amount_debited` decimal(12,2) NOT NULL, + `amount_refunded` decimal(12,2) NOT NULL, + `reference` varchar(255) NOT NULL, + `label` varchar(128) NOT NULL, + `order_id` int(11) NOT NULL, + `source_type_id` int(11) NOT NULL, + `card_type` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `payment_source_order_id_6b7f2215_fk_order_order_id` (`order_id`), + KEY `payment_source_source_type_id_700828fe_fk_payment_sourcetype_id` (`source_type_id`), + CONSTRAINT `payment_source_order_id_6b7f2215_fk_order_order_id` FOREIGN KEY (`order_id`) REFERENCES `order_order` (`id`), + CONSTRAINT `payment_source_source_type_id_700828fe_fk_payment_sourcetype_id` FOREIGN KEY (`source_type_id`) REFERENCES `payment_sourcetype` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `promotions_rawhtml` +-- Dumping data for table `payment_source` -- -LOCK TABLES `promotions_rawhtml` WRITE; -/*!40000 ALTER TABLE `promotions_rawhtml` DISABLE KEYS */; -/*!40000 ALTER TABLE `promotions_rawhtml` ENABLE KEYS */; +LOCK TABLES `payment_source` WRITE; +/*!40000 ALTER TABLE `payment_source` DISABLE KEYS */; +/*!40000 ALTER TABLE `payment_source` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `promotions_singleproduct` +-- Table structure for table `payment_sourcetype` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `promotions_singleproduct` ( +CREATE TABLE `payment_sourcetype` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(128) NOT NULL, - `description` longtext NOT NULL, - `date_created` datetime(6) NOT NULL, - `product_id` int(11) NOT NULL, + `code` varchar(128) NOT NULL, PRIMARY KEY (`id`), - KEY `promotions_singlepro_product_id_d7ad5e03_fk_catalogue_product_id` (`product_id`), - CONSTRAINT `promotions_singlepro_product_id_d7ad5e03_fk_catalogue_product_id` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`) + UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `promotions_singleproduct` +-- Dumping data for table `payment_sourcetype` -- -LOCK TABLES `promotions_singleproduct` WRITE; -/*!40000 ALTER TABLE `promotions_singleproduct` DISABLE KEYS */; -/*!40000 ALTER TABLE `promotions_singleproduct` ENABLE KEYS */; +LOCK TABLES `payment_sourcetype` WRITE; +/*!40000 ALTER TABLE `payment_sourcetype` DISABLE KEYS */; +/*!40000 ALTER TABLE `payment_sourcetype` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `promotions_tabbedblock` +-- Table structure for table `payment_transaction` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `promotions_tabbedblock` ( +CREATE TABLE `payment_transaction` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(255) NOT NULL, + `txn_type` varchar(128) NOT NULL, + `amount` decimal(12,2) NOT NULL, + `reference` varchar(128) NOT NULL, + `status` varchar(128) NOT NULL, `date_created` datetime(6) NOT NULL, - PRIMARY KEY (`id`) + `source_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `payment_transaction_source_id_c5ac31e8_fk_payment_source_id` (`source_id`), + KEY `payment_transaction_date_created_f887f6bc` (`date_created`), + CONSTRAINT `payment_transaction_source_id_c5ac31e8_fk_payment_source_id` FOREIGN KEY (`source_id`) REFERENCES `payment_source` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `promotions_tabbedblock` +-- Dumping data for table `payment_transaction` -- -LOCK TABLES `promotions_tabbedblock` WRITE; -/*!40000 ALTER TABLE `promotions_tabbedblock` DISABLE KEYS */; -/*!40000 ALTER TABLE `promotions_tabbedblock` ENABLE KEYS */; +LOCK TABLES `payment_transaction` WRITE; +/*!40000 ALTER TABLE `payment_transaction` DISABLE KEYS */; +/*!40000 ALTER TABLE `payment_transaction` ENABLE KEYS */; UNLOCK TABLES; -- @@ -3035,6 +4214,82 @@ LOCK TABLES `referrals_referral` WRITE; /*!40000 ALTER TABLE `referrals_referral` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `refund_historicalrefund` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `refund_historicalrefund` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `total_credit_excl_tax` decimal(12,2) NOT NULL, + `currency` varchar(12) NOT NULL, + `status` varchar(255) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `order_id` int(11) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `refund_historicalref_history_user_id_c1853b09_fk_ecommerce` (`history_user_id`), + KEY `refund_historicalrefund_id_6b2753a1` (`id`), + KEY `refund_historicalrefund_order_id_1d9b0b20` (`order_id`), + KEY `refund_historicalrefund_user_id_142a3c52` (`user_id`), + CONSTRAINT `refund_historicalref_history_user_id_c1853b09_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `refund_historicalrefund` +-- + +LOCK TABLES `refund_historicalrefund` WRITE; +/*!40000 ALTER TABLE `refund_historicalrefund` DISABLE KEYS */; +/*!40000 ALTER TABLE `refund_historicalrefund` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `refund_historicalrefundline` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `refund_historicalrefundline` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `line_credit_excl_tax` decimal(12,2) NOT NULL, + `quantity` int(10) unsigned NOT NULL, + `status` varchar(255) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `order_line_id` int(11) DEFAULT NULL, + `refund_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `refund_historicalref_history_user_id_1b172964_fk_ecommerce` (`history_user_id`), + KEY `refund_historicalrefundline_id_b5dd937d` (`id`), + KEY `refund_historicalrefundline_order_line_id_59524c13` (`order_line_id`), + KEY `refund_historicalrefundline_refund_id_487db801` (`refund_id`), + CONSTRAINT `refund_historicalref_history_user_id_1b172964_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `refund_historicalrefundline` +-- + +LOCK TABLES `refund_historicalrefundline` WRITE; +/*!40000 ALTER TABLE `refund_historicalrefundline` DISABLE KEYS */; +/*!40000 ALTER TABLE `refund_historicalrefundline` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `refund_refund` -- @@ -3120,10 +4375,10 @@ CREATE TABLE `reviews_productreview` ( `product_id` int(11) DEFAULT NULL, `user_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `reviews_productreview_product_id_c4fdc4cd_uniq` (`product_id`,`user_id`), + UNIQUE KEY `reviews_productreview_product_id_user_id_c4fdc4cd_uniq` (`product_id`,`user_id`), KEY `reviews_productreview_user_id_8acb5ddd_fk_ecommerce_user_id` (`user_id`), - KEY `reviews_productreview_979acfd1` (`delta_votes`), - CONSTRAINT `reviews_productrevie_product_id_52e52a32_fk_catalogue_product_id` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`), + KEY `reviews_productreview_delta_votes_bd8ffc87` (`delta_votes`), + CONSTRAINT `reviews_productrevie_product_id_52e52a32_fk_catalogue` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`), CONSTRAINT `reviews_productreview_user_id_8acb5ddd_fk_ecommerce_user_id` FOREIGN KEY (`user_id`) REFERENCES `ecommerce_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -3150,7 +4405,7 @@ CREATE TABLE `reviews_vote` ( `review_id` int(11) NOT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `reviews_vote_user_id_bb858939_uniq` (`user_id`,`review_id`), + UNIQUE KEY `reviews_vote_user_id_review_id_bb858939_uniq` (`user_id`,`review_id`), KEY `reviews_vote_review_id_371b2d8d_fk_reviews_productreview_id` (`review_id`), CONSTRAINT `reviews_vote_review_id_371b2d8d_fk_reviews_productreview_id` FOREIGN KEY (`review_id`) REFERENCES `reviews_productreview` (`id`), CONSTRAINT `reviews_vote_user_id_5fb87b53_fk_ecommerce_user_id` FOREIGN KEY (`user_id`) REFERENCES `ecommerce_user` (`id`) @@ -3206,10 +4461,10 @@ CREATE TABLE `shipping_orderanditemcharges_countries` ( `orderanditemcharges_id` int(11) NOT NULL, `country_id` varchar(2) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `shipping_orderanditemcharge_orderanditemcharges_id_9f0c9c8f_uniq` (`orderanditemcharges_id`,`country_id`), - KEY `shipping_or_country_id_30387f2e_fk_address_country_iso_3166_1_a2` (`country_id`), - CONSTRAINT `D7d640886e5bf6acefe7155c1048828a` FOREIGN KEY (`orderanditemcharges_id`) REFERENCES `shipping_orderanditemcharges` (`id`), - CONSTRAINT `shipping_or_country_id_30387f2e_fk_address_country_iso_3166_1_a2` FOREIGN KEY (`country_id`) REFERENCES `address_country` (`iso_3166_1_a2`) + UNIQUE KEY `shipping_orderanditemcha_orderanditemcharges_id_c_9f0c9c8f_uniq` (`orderanditemcharges_id`,`country_id`), + KEY `shipping_orderandite_country_id_30387f2e_fk_address_c` (`country_id`), + CONSTRAINT `shipping_orderandite_country_id_30387f2e_fk_address_c` FOREIGN KEY (`country_id`) REFERENCES `address_country` (`iso_3166_1_a2`), + CONSTRAINT `shipping_orderandite_orderanditemcharges__bf5bfee9_fk_shipping_` FOREIGN KEY (`orderanditemcharges_id`) REFERENCES `shipping_orderanditemcharges` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -3234,8 +4489,9 @@ CREATE TABLE `shipping_weightband` ( `charge` decimal(12,2) NOT NULL, `method_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `shipping_weightban_method_id_b699a1ba_fk_shipping_weightbased_id` (`method_id`), - CONSTRAINT `shipping_weightban_method_id_b699a1ba_fk_shipping_weightbased_id` FOREIGN KEY (`method_id`) REFERENCES `shipping_weightbased` (`id`) + KEY `shipping_weightband_method_id_b699a1ba_fk_shipping_` (`method_id`), + KEY `shipping_weightband_upper_limit_9edc5097` (`upper_limit`), + CONSTRAINT `shipping_weightband_method_id_b699a1ba_fk_shipping_` FOREIGN KEY (`method_id`) REFERENCES `shipping_weightbased` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -3286,10 +4542,10 @@ CREATE TABLE `shipping_weightbased_countries` ( `weightbased_id` int(11) NOT NULL, `country_id` varchar(2) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `shipping_weightbased_countries_weightbased_id_de8c5e42_uniq` (`weightbased_id`,`country_id`), - KEY `shipping_we_country_id_06117384_fk_address_country_iso_3166_1_a2` (`country_id`), - CONSTRAINT `shipping_we_country_id_06117384_fk_address_country_iso_3166_1_a2` FOREIGN KEY (`country_id`) REFERENCES `address_country` (`iso_3166_1_a2`), - CONSTRAINT `shipping_weig_weightbased_id_93e3132f_fk_shipping_weightbased_id` FOREIGN KEY (`weightbased_id`) REFERENCES `shipping_weightbased` (`id`) + UNIQUE KEY `shipping_weightbased_cou_weightbased_id_country_i_de8c5e42_uniq` (`weightbased_id`,`country_id`), + KEY `shipping_weightbased_country_id_06117384_fk_address_c` (`country_id`), + CONSTRAINT `shipping_weightbased_country_id_06117384_fk_address_c` FOREIGN KEY (`country_id`) REFERENCES `address_country` (`iso_3166_1_a2`), + CONSTRAINT `shipping_weightbased_weightbased_id_93e3132f_fk_shipping_` FOREIGN KEY (`weightbased_id`) REFERENCES `shipping_weightbased` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -3317,7 +4573,7 @@ CREATE TABLE `social_auth_association` ( `lifetime` int(11) NOT NULL, `assoc_type` varchar(64) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `social_auth_association_server_url_078befa2_uniq` (`server_url`,`handle`) + UNIQUE KEY `social_auth_association_server_url_handle_078befa2_uniq` (`server_url`,`handle`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -3341,9 +4597,11 @@ CREATE TABLE `social_auth_code` ( `email` varchar(254) NOT NULL, `code` varchar(32) NOT NULL, `verified` tinyint(1) NOT NULL, + `timestamp` datetime(6) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `social_auth_code_email_801b2d02_uniq` (`email`,`code`), - KEY `social_auth_code_c1336794` (`code`) + UNIQUE KEY `social_auth_code_email_code_801b2d02_uniq` (`email`,`code`), + KEY `social_auth_code_code_a2393167` (`code`), + KEY `social_auth_code_timestamp_176b341f` (`timestamp`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -3368,7 +4626,7 @@ CREATE TABLE `social_auth_nonce` ( `timestamp` int(11) NOT NULL, `salt` varchar(65) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `social_auth_nonce_server_url_f6284463_uniq` (`server_url`,`timestamp`,`salt`) + UNIQUE KEY `social_auth_nonce_server_url_timestamp_salt_f6284463_uniq` (`server_url`,`timestamp`,`salt`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -3393,8 +4651,10 @@ CREATE TABLE `social_auth_partial` ( `next_step` smallint(5) unsigned NOT NULL, `backend` varchar(32) NOT NULL, `data` longtext NOT NULL, + `timestamp` datetime(6) NOT NULL, PRIMARY KEY (`id`), - KEY `social_auth_partial_94a08da1` (`token`) + KEY `social_auth_partial_token_3017fea3` (`token`), + KEY `social_auth_partial_timestamp_50f2119f` (`timestamp`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -3419,9 +4679,12 @@ CREATE TABLE `social_auth_usersocialauth` ( `uid` varchar(255) NOT NULL, `extra_data` longtext NOT NULL, `user_id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `social_auth_usersocialauth_provider_e6b5e668_uniq` (`provider`,`uid`), + UNIQUE KEY `social_auth_usersocialauth_provider_uid_e6b5e668_uniq` (`provider`,`uid`), KEY `social_auth_usersocialauth_user_id_17d28448_fk_ecommerce_user_id` (`user_id`), + KEY `social_auth_usersocialauth_uid_796e51dc` (`uid`), CONSTRAINT `social_auth_usersocialauth_user_id_17d28448_fk_ecommerce_user_id` FOREIGN KEY (`user_id`) REFERENCES `ecommerce_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -3492,8 +4755,8 @@ CREATE TABLE `voucher_couponvouchers` ( `id` int(11) NOT NULL AUTO_INCREMENT, `coupon_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `voucher_couponvoucher_coupon_id_44356128_fk_catalogue_product_id` (`coupon_id`), - CONSTRAINT `voucher_couponvoucher_coupon_id_44356128_fk_catalogue_product_id` FOREIGN KEY (`coupon_id`) REFERENCES `catalogue_product` (`id`) + KEY `voucher_couponvouche_coupon_id_44356128_fk_catalogue` (`coupon_id`), + CONSTRAINT `voucher_couponvouche_coupon_id_44356128_fk_catalogue` FOREIGN KEY (`coupon_id`) REFERENCES `catalogue_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -3517,10 +4780,10 @@ CREATE TABLE `voucher_couponvouchers_vouchers` ( `couponvouchers_id` int(11) NOT NULL, `voucher_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `voucher_couponvouchers_vouchers_couponvouchers_id_390b5a38_uniq` (`couponvouchers_id`,`voucher_id`), - KEY `voucher_couponvouchers_voucher_id_d5507ed9_fk_voucher_voucher_id` (`voucher_id`), - CONSTRAINT `voucher__couponvouchers_id_ebe4c993_fk_voucher_couponvouchers_id` FOREIGN KEY (`couponvouchers_id`) REFERENCES `voucher_couponvouchers` (`id`), - CONSTRAINT `voucher_couponvouchers_voucher_id_d5507ed9_fk_voucher_voucher_id` FOREIGN KEY (`voucher_id`) REFERENCES `voucher_voucher` (`id`) + UNIQUE KEY `voucher_couponvouchers_v_couponvouchers_id_vouche_390b5a38_uniq` (`couponvouchers_id`,`voucher_id`), + KEY `voucher_couponvouche_voucher_id_d5507ed9_fk_voucher_v` (`voucher_id`), + CONSTRAINT `voucher_couponvouche_couponvouchers_id_ebe4c993_fk_voucher_c` FOREIGN KEY (`couponvouchers_id`) REFERENCES `voucher_couponvouchers` (`id`), + CONSTRAINT `voucher_couponvouche_voucher_id_d5507ed9_fk_voucher_v` FOREIGN KEY (`voucher_id`) REFERENCES `voucher_voucher` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -3533,6 +4796,42 @@ LOCK TABLES `voucher_couponvouchers_vouchers` WRITE; /*!40000 ALTER TABLE `voucher_couponvouchers_vouchers` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `voucher_historicalvoucherapplication` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `voucher_historicalvoucherapplication` ( + `id` int(11) NOT NULL, + `date_created` datetime(6) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `order_id` int(11) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + `voucher_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `voucher_historicalvo_history_user_id_add45a08_fk_ecommerce` (`history_user_id`), + KEY `voucher_historicalvoucherapplication_id_f6cc2df0` (`id`), + KEY `voucher_historicalvoucherapplication_order_id_c8a880a6` (`order_id`), + KEY `voucher_historicalvoucherapplication_user_id_0dc6e29e` (`user_id`), + KEY `voucher_historicalvoucherapplication_voucher_id_529f437b` (`voucher_id`), + CONSTRAINT `voucher_historicalvo_history_user_id_add45a08_fk_ecommerce` FOREIGN KEY (`history_user_id`) REFERENCES `ecommerce_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `voucher_historicalvoucherapplication` +-- + +LOCK TABLES `voucher_historicalvoucherapplication` WRITE; +/*!40000 ALTER TABLE `voucher_historicalvoucherapplication` DISABLE KEYS */; +/*!40000 ALTER TABLE `voucher_historicalvoucherapplication` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `voucher_orderlinevouchers` -- @@ -3568,10 +4867,10 @@ CREATE TABLE `voucher_orderlinevouchers_vouchers` ( `orderlinevouchers_id` int(11) NOT NULL, `voucher_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `voucher_orderlinevouchers_vou_orderlinevouchers_id_2a30647d_uniq` (`orderlinevouchers_id`,`voucher_id`), - KEY `voucher_orderlinevouch_voucher_id_b8820f35_fk_voucher_voucher_id` (`voucher_id`), - CONSTRAINT `vo_orderlinevouchers_id_c916ee3a_fk_voucher_orderlinevouchers_id` FOREIGN KEY (`orderlinevouchers_id`) REFERENCES `voucher_orderlinevouchers` (`id`), - CONSTRAINT `voucher_orderlinevouch_voucher_id_b8820f35_fk_voucher_voucher_id` FOREIGN KEY (`voucher_id`) REFERENCES `voucher_voucher` (`id`) + UNIQUE KEY `voucher_orderlinevoucher_orderlinevouchers_id_vou_2a30647d_uniq` (`orderlinevouchers_id`,`voucher_id`), + KEY `voucher_orderlinevou_voucher_id_b8820f35_fk_voucher_v` (`voucher_id`), + CONSTRAINT `voucher_orderlinevou_orderlinevouchers_id_c916ee3a_fk_voucher_o` FOREIGN KEY (`orderlinevouchers_id`) REFERENCES `voucher_orderlinevouchers` (`id`), + CONSTRAINT `voucher_orderlinevou_voucher_id_b8820f35_fk_voucher_v` FOREIGN KEY (`voucher_id`) REFERENCES `voucher_voucher` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -3600,9 +4899,15 @@ CREATE TABLE `voucher_voucher` ( `num_basket_additions` int(10) unsigned NOT NULL, `num_orders` int(10) unsigned NOT NULL, `total_discount` decimal(12,2) NOT NULL, - `date_created` date NOT NULL, + `date_created` datetime(6) NOT NULL, + `voucher_set_id` int(11) DEFAULT NULL, + `is_public` tinyint(1) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `code` (`code`) + UNIQUE KEY `code` (`code`), + KEY `voucher_voucher_voucher_set_id_17b96a54_fk_voucher_voucherset_id` (`voucher_set_id`), + KEY `voucher_voucher_end_datetime_db182297` (`end_datetime`), + KEY `voucher_voucher_start_datetime_bfb7df84` (`start_datetime`), + CONSTRAINT `voucher_voucher_voucher_set_id_17b96a54_fk_voucher_voucherset_id` FOREIGN KEY (`voucher_set_id`) REFERENCES `voucher_voucherset` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -3626,9 +4931,9 @@ CREATE TABLE `voucher_voucher_offers` ( `voucher_id` int(11) NOT NULL, `conditionaloffer_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `voucher_voucher_offers_voucher_id_01628a7f_uniq` (`voucher_id`,`conditionaloffer_id`), - KEY `vouche_conditionaloffer_id_f9682bfb_fk_offer_conditionaloffer_id` (`conditionaloffer_id`), - CONSTRAINT `vouche_conditionaloffer_id_f9682bfb_fk_offer_conditionaloffer_id` FOREIGN KEY (`conditionaloffer_id`) REFERENCES `offer_conditionaloffer` (`id`), + UNIQUE KEY `voucher_voucher_offers_voucher_id_conditionalof_01628a7f_uniq` (`voucher_id`,`conditionaloffer_id`), + KEY `voucher_voucher_offe_conditionaloffer_id_f9682bfb_fk_offer_con` (`conditionaloffer_id`), + CONSTRAINT `voucher_voucher_offe_conditionaloffer_id_f9682bfb_fk_offer_con` FOREIGN KEY (`conditionaloffer_id`) REFERENCES `offer_conditionaloffer` (`id`), CONSTRAINT `voucher_voucher_offers_voucher_id_7f9c575d_fk_voucher_voucher_id` FOREIGN KEY (`voucher_id`) REFERENCES `voucher_voucher` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -3650,15 +4955,15 @@ UNLOCK TABLES; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `voucher_voucherapplication` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `date_created` date NOT NULL, + `date_created` datetime(6) NOT NULL, `order_id` int(11) NOT NULL, `user_id` int(11) DEFAULT NULL, `voucher_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `voucher_voucherapplication_order_id_30248a05_fk_order_order_id` (`order_id`), KEY `voucher_voucherapplication_user_id_df53a393_fk_ecommerce_user_id` (`user_id`), - KEY `voucher_voucherapplica_voucher_id_5204edb7_fk_voucher_voucher_id` (`voucher_id`), - CONSTRAINT `voucher_voucherapplica_voucher_id_5204edb7_fk_voucher_voucher_id` FOREIGN KEY (`voucher_id`) REFERENCES `voucher_voucher` (`id`), + KEY `voucher_voucherappli_voucher_id_5204edb7_fk_voucher_v` (`voucher_id`), + CONSTRAINT `voucher_voucherappli_voucher_id_5204edb7_fk_voucher_v` FOREIGN KEY (`voucher_id`) REFERENCES `voucher_voucher` (`id`), CONSTRAINT `voucher_voucherapplication_order_id_30248a05_fk_order_order_id` FOREIGN KEY (`order_id`) REFERENCES `order_order` (`id`), CONSTRAINT `voucher_voucherapplication_user_id_df53a393_fk_ecommerce_user_id` FOREIGN KEY (`user_id`) REFERENCES `ecommerce_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -3673,6 +4978,37 @@ LOCK TABLES `voucher_voucherapplication` WRITE; /*!40000 ALTER TABLE `voucher_voucherapplication` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `voucher_voucherset` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `voucher_voucherset` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `count` int(10) unsigned NOT NULL, + `code_length` int(11) NOT NULL, + `description` longtext NOT NULL, + `date_created` datetime(6) NOT NULL, + `start_datetime` datetime(6) NOT NULL, + `end_datetime` datetime(6) NOT NULL, + `offer_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `offer_id` (`offer_id`), + CONSTRAINT `voucher_voucherset_offer_id_1d10d5d6_fk_offer_con` FOREIGN KEY (`offer_id`) REFERENCES `offer_conditionaloffer` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `voucher_voucherset` +-- + +LOCK TABLES `voucher_voucherset` WRITE; +/*!40000 ALTER TABLE `voucher_voucherset` DISABLE KEYS */; +/*!40000 ALTER TABLE `voucher_voucherset` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `waffle_flag` -- @@ -3695,8 +5031,8 @@ CREATE TABLE `waffle_flag` ( `modified` datetime(6) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`), - KEY `waffle_flag_e2fa5388` (`created`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; + KEY `waffle_flag_created_4a6e8cef` (`created`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3705,7 +5041,7 @@ CREATE TABLE `waffle_flag` ( LOCK TABLES `waffle_flag` WRITE; /*!40000 ALTER TABLE `waffle_flag` DISABLE KEYS */; -INSERT INTO `waffle_flag` VALUES (1,'enable_client_side_checkout',1,NULL,0,1,0,0,'',0,'This flag determines if the integrated/client-side checkout flow should be enabled.','2017-06-21 16:06:20.833592','2018-02-02 15:05:41.692051'); +INSERT INTO `waffle_flag` VALUES (2,'enable_client_side_checkout',1,NULL,0,1,0,0,'',0,'This flag determines if the integrated/client-side checkout flow should be enabled.','2021-07-30 20:17:26.458439','2023-02-21 14:41:58.381258'),(3,'disable_microfrontend_for_basket_page',NULL,NULL,0,0,0,0,'',0,'','2021-07-30 20:17:27.246844','2021-07-30 20:17:27.246866'); /*!40000 ALTER TABLE `waffle_flag` ENABLE KEYS */; UNLOCK TABLES; @@ -3720,7 +5056,7 @@ CREATE TABLE `waffle_flag_groups` ( `flag_id` int(11) NOT NULL, `group_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `waffle_flag_groups_flag_id_8ba0c71b_uniq` (`flag_id`,`group_id`), + UNIQUE KEY `waffle_flag_groups_flag_id_group_id_8ba0c71b_uniq` (`flag_id`,`group_id`), KEY `waffle_flag_groups_group_id_a97c4f66_fk_auth_group_id` (`group_id`), CONSTRAINT `waffle_flag_groups_flag_id_c11c0c05_fk_waffle_flag_id` FOREIGN KEY (`flag_id`) REFERENCES `waffle_flag` (`id`), CONSTRAINT `waffle_flag_groups_group_id_a97c4f66_fk_auth_group_id` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`) @@ -3747,7 +5083,7 @@ CREATE TABLE `waffle_flag_users` ( `flag_id` int(11) NOT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `waffle_flag_users_flag_id_b46f76b0_uniq` (`flag_id`,`user_id`), + UNIQUE KEY `waffle_flag_users_flag_id_user_id_b46f76b0_uniq` (`flag_id`,`user_id`), KEY `waffle_flag_users_user_id_8026df9b_fk_ecommerce_user_id` (`user_id`), CONSTRAINT `waffle_flag_users_flag_id_833c37b0_fk_waffle_flag_id` FOREIGN KEY (`flag_id`) REFERENCES `waffle_flag` (`id`), CONSTRAINT `waffle_flag_users_user_id_8026df9b_fk_ecommerce_user_id` FOREIGN KEY (`user_id`) REFERENCES `ecommerce_user` (`id`) @@ -3778,8 +5114,8 @@ CREATE TABLE `waffle_sample` ( `modified` datetime(6) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`), - KEY `waffle_sample_e2fa5388` (`created`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; + KEY `waffle_sample_created_76198bd5` (`created`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3788,7 +5124,7 @@ CREATE TABLE `waffle_sample` ( LOCK TABLES `waffle_sample` WRITE; /*!40000 ALTER TABLE `waffle_sample` DISABLE KEYS */; -INSERT INTO `waffle_sample` VALUES (1,'async_order_fulfillment',0.0,'Determines what percentage of orders are fulfilled asynchronously.','2017-06-21 16:06:05.827665','2017-06-21 16:06:05.827675'); +INSERT INTO `waffle_sample` VALUES (1,'async_order_fulfillment',0.0,'Determines what percentage of orders are fulfilled asynchronously.','2021-07-30 20:17:12.304163','2021-07-30 20:17:12.304184'); /*!40000 ALTER TABLE `waffle_sample` ENABLE KEYS */; UNLOCK TABLES; @@ -3807,8 +5143,8 @@ CREATE TABLE `waffle_switch` ( `modified` datetime(6) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`), - KEY `waffle_switch_e2fa5388` (`created`) -) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8; + KEY `waffle_switch_created_c004e77e` (`created`) +) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3817,7 +5153,7 @@ CREATE TABLE `waffle_switch` ( LOCK TABLES `waffle_switch` WRITE; /*!40000 ALTER TABLE `waffle_switch` DISABLE KEYS */; -INSERT INTO `waffle_switch` VALUES (1,'allow_repeat_purchase',1,'','2017-06-21 16:05:58.863603','2017-06-21 16:05:58.863613'),(2,'publish_course_modes_to_lms',1,'','2017-06-21 16:06:05.413981','2017-06-21 16:06:05.413997'),(4,'create_enrollment_codes',0,'','2017-06-21 16:06:06.215623','2017-06-21 16:06:06.215633'),(5,'enable_user_list_view',1,'','2017-06-21 16:06:09.360454','2017-06-21 16:06:09.360463'),(6,'enable_order_list_view',1,'','2017-06-21 16:06:18.897479','2017-06-21 16:06:18.897489'),(7,'payment_processor_active_cybersource',1,'','2017-06-21 16:06:20.656777','2017-06-21 16:06:20.656795'),(8,'payment_processor_active_paypal',1,'','2017-06-21 16:06:20.657882','2017-06-21 16:06:20.657890'),(9,'sailthru_enable',0,'','2017-06-21 16:06:28.416700','2017-06-21 16:06:28.416709'),(10,'enable_enterprise_offers',0,'','2018-02-02 15:04:41.040305','2018-02-02 15:04:41.040320'),(11,'enable_enterprise_on_runtime',0,'','2018-02-02 15:04:41.062108','2018-02-02 15:04:41.062123'),(12,'disable_repeat_order_check',0,'','2018-02-02 15:04:42.976798','2018-02-02 15:04:42.976810'),(13,'payment_processor_active_stripe',1,'','2018-02-02 15:04:45.646511','2018-02-02 15:04:45.646527'); +INSERT INTO `waffle_switch` VALUES (1,'publish_course_modes_to_lms',1,'','2021-07-30 20:17:11.591857','2021-07-30 20:17:11.591878'),(4,'enable_user_list_view',1,'','2021-07-30 20:17:13.951196','2021-07-30 20:17:13.951217'),(5,'enable_braze',0,'','2021-07-30 20:17:16.230898','2021-07-30 20:17:16.230919'),(7,'enable_enterprise_on_runtime',0,'','2021-07-30 20:17:18.034778','2021-07-30 20:17:18.034799'),(10,'hubspot_forms_integration_enable',0,'','2021-07-30 20:17:19.219855','2021-07-30 20:17:19.219876'),(11,'enable_order_list_view',1,'','2021-07-30 20:17:20.691939','2021-07-30 20:17:20.691961'),(12,'disable_repeat_order_check',0,'','2021-07-30 20:17:20.791438','2021-07-30 20:17:20.791459'),(13,'payment_processor_active_cybersource',1,'','2021-07-30 20:17:25.835839','2021-07-30 20:17:25.835862'),(14,'payment_processor_active_paypal',1,'','2021-07-30 20:17:25.837210','2021-07-30 20:17:25.837225'),(15,'payment_processor_active_stripe',1,'','2021-07-30 20:17:27.076682','2021-07-30 20:17:27.076704'),(16,'enable_refund_list_view',1,'','2021-07-30 20:17:40.082901','2021-07-30 20:17:40.082922'),(17,'sailthru_enable',0,'','2021-07-30 20:17:41.280967','2021-07-30 20:17:41.280987'); /*!40000 ALTER TABLE `waffle_switch` ENABLE KEYS */; UNLOCK TABLES; @@ -3834,7 +5170,7 @@ CREATE TABLE `wishlists_line` ( `product_id` int(11) DEFAULT NULL, `wishlist_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `wishlists_line_wishlist_id_78f04673_uniq` (`wishlist_id`,`product_id`), + UNIQUE KEY `wishlists_line_wishlist_id_product_id_78f04673_uniq` (`wishlist_id`,`product_id`), KEY `wishlists_line_product_id_9d6d9b37_fk_catalogue_product_id` (`product_id`), CONSTRAINT `wishlists_line_product_id_9d6d9b37_fk_catalogue_product_id` FOREIGN KEY (`product_id`) REFERENCES `catalogue_product` (`id`), CONSTRAINT `wishlists_line_wishlist_id_4cffe302_fk_wishlists_wishlist_id` FOREIGN KEY (`wishlist_id`) REFERENCES `wishlists_wishlist` (`id`) @@ -3866,6 +5202,7 @@ CREATE TABLE `wishlists_wishlist` ( PRIMARY KEY (`id`), UNIQUE KEY `key` (`key`), KEY `wishlists_wishlist_owner_id_d5464c62_fk_ecommerce_user_id` (`owner_id`), + KEY `wishlists_wishlist_date_created_c05d5e7f` (`date_created`), CONSTRAINT `wishlists_wishlist_owner_id_d5464c62_fk_ecommerce_user_id` FOREIGN KEY (`owner_id`) REFERENCES `ecommerce_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -3888,4 +5225,4 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2018-02-02 15:44:26 +-- Dump completed on 2023-02-21 14:42:05 diff --git a/edxapp.sql b/edxapp.sql index 313cc8acc9..4b5764ab1c 100644 --- a/edxapp.sql +++ b/edxapp.sql @@ -1,8 +1,8 @@ --- MySQL dump 10.13 Distrib 5.6.39, for Linux (x86_64) +-- MySQL dump 10.13 Distrib 5.7.39, for Linux (x86_64) -- -- Host: localhost Database: edxapp -- ------------------------------------------------------ --- Server version 5.6.39 +-- Server version 5.7.39 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; @@ -26,235 +26,116 @@ CREATE DATABASE /*!32312 IF NOT EXISTS*/ `edxapp` /*!40100 DEFAULT CHARACTER SET USE `edxapp`; -- --- Table structure for table `api_admin_apiaccessconfig` --- - -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `api_admin_apiaccessconfig` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `api_admin_apiacce_changed_by_id_771a504ee92a076c_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `api_admin_apiacce_changed_by_id_771a504ee92a076c_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `api_admin_apiaccessconfig` --- - -LOCK TABLES `api_admin_apiaccessconfig` WRITE; -/*!40000 ALTER TABLE `api_admin_apiaccessconfig` DISABLE KEYS */; -/*!40000 ALTER TABLE `api_admin_apiaccessconfig` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `api_admin_apiaccessrequest` +-- Table structure for table `agreements_integritysignature` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `api_admin_apiaccessrequest` ( +CREATE TABLE `agreements_integritysignature` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `status` varchar(255) NOT NULL, - `website` varchar(200) NOT NULL, - `reason` longtext NOT NULL, + `course_key` varchar(255) NOT NULL, `user_id` int(11) NOT NULL, - `company_address` varchar(255) NOT NULL, - `company_name` varchar(255) NOT NULL, - `contacted` tinyint(1) NOT NULL, - `site_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `api_admin_apiaccessrequest_user_id_6753e50e296cabc7_uniq` (`user_id`), - KEY `api_admin_apiaccessrequest_9acb4454` (`status`), - KEY `api_admin_apiaccessrequest_9365d6e7` (`site_id`), - CONSTRAINT `api_admin_apiaccessre_site_id_7963330a765f8041_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`), - CONSTRAINT `api_admin_apiaccessrequ_user_id_6753e50e296cabc7_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `api_admin_apiaccessrequest` --- - -LOCK TABLES `api_admin_apiaccessrequest` WRITE; -/*!40000 ALTER TABLE `api_admin_apiaccessrequest` DISABLE KEYS */; -/*!40000 ALTER TABLE `api_admin_apiaccessrequest` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `assessment_aiclassifier` --- - -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `assessment_aiclassifier` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `classifier_data` varchar(100) NOT NULL, - `classifier_set_id` int(11) NOT NULL, - `criterion_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `assessment_aiclassifier_962f069f` (`classifier_set_id`), - KEY `assessment_aiclassifier_385b00a3` (`criterion_id`), - CONSTRAINT `D3bd45d5e3c9cfdc4f3b442119adebe8` FOREIGN KEY (`classifier_set_id`) REFERENCES `assessment_aiclassifierset` (`id`), - CONSTRAINT `assessm_criterion_id_275db29f2a0e1711_fk_assessment_criterion_id` FOREIGN KEY (`criterion_id`) REFERENCES `assessment_criterion` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `assessment_aiclassifier` --- - -LOCK TABLES `assessment_aiclassifier` WRITE; -/*!40000 ALTER TABLE `assessment_aiclassifier` DISABLE KEYS */; -/*!40000 ALTER TABLE `assessment_aiclassifier` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `assessment_aiclassifierset` --- - -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `assessment_aiclassifierset` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `created_at` datetime(6) NOT NULL, - `algorithm_id` varchar(128) NOT NULL, - `course_id` varchar(255) NOT NULL, - `item_id` varchar(128) NOT NULL, - `rubric_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `assessment_aiclassifierset_fde81f11` (`created_at`), - KEY `assessment_aiclassifierset_65143c91` (`algorithm_id`), - KEY `assessment_aiclassifierset_ea134da7` (`course_id`), - KEY `assessment_aiclassifierset_82bfda79` (`item_id`), - KEY `assessment_aiclassifierset_8980b7ae` (`rubric_id`), - CONSTRAINT `assessment_ai_rubric_id_45488be94ea0aea5_fk_assessment_rubric_id` FOREIGN KEY (`rubric_id`) REFERENCES `assessment_rubric` (`id`) + UNIQUE KEY `agreements_integritysignature_user_id_course_key_80bb4165_uniq` (`user_id`,`course_key`), + KEY `agreements_integritysignature_course_key_0536c1fa` (`course_key`), + CONSTRAINT `agreements_integritysignature_user_id_a4d26f65_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `assessment_aiclassifierset` +-- Dumping data for table `agreements_integritysignature` -- -LOCK TABLES `assessment_aiclassifierset` WRITE; -/*!40000 ALTER TABLE `assessment_aiclassifierset` DISABLE KEYS */; -/*!40000 ALTER TABLE `assessment_aiclassifierset` ENABLE KEYS */; +LOCK TABLES `agreements_integritysignature` WRITE; +/*!40000 ALTER TABLE `agreements_integritysignature` DISABLE KEYS */; +/*!40000 ALTER TABLE `agreements_integritysignature` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `assessment_aigradingworkflow` +-- Table structure for table `announcements_announcement` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `assessment_aigradingworkflow` ( +CREATE TABLE `announcements_announcement` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `uuid` varchar(36) NOT NULL, - `course_id` varchar(255) NOT NULL, - `item_id` varchar(128) NOT NULL, - `scheduled_at` datetime(6) NOT NULL, - `completed_at` datetime(6) DEFAULT NULL, - `algorithm_id` varchar(128) NOT NULL, - `submission_uuid` varchar(128) NOT NULL, - `essay_text` longtext NOT NULL, - `student_id` varchar(40) NOT NULL, - `assessment_id` int(11) DEFAULT NULL, - `classifier_set_id` int(11) DEFAULT NULL, - `rubric_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `uuid` (`uuid`), - KEY `assessment_aigradingworkflow_ea134da7` (`course_id`), - KEY `assessment_aigradingworkflow_82bfda79` (`item_id`), - KEY `assessment_aigradingworkflow_96e4551c` (`scheduled_at`), - KEY `assessment_aigradingworkflow_4430a679` (`completed_at`), - KEY `assessment_aigradingworkflow_65143c91` (`algorithm_id`), - KEY `assessment_aigradingworkflow_ab5b2b73` (`submission_uuid`), - KEY `assessment_aigradingworkflow_30a811f6` (`student_id`), - KEY `assessment_aigradingworkflow_a4079fcf` (`assessment_id`), - KEY `assessment_aigradingworkflow_962f069f` (`classifier_set_id`), - KEY `assessment_aigradingworkflow_8980b7ae` (`rubric_id`), - CONSTRAINT `D4d9bca115376aeb07fd970155499db3` FOREIGN KEY (`classifier_set_id`) REFERENCES `assessment_aiclassifierset` (`id`), - CONSTRAINT `asses_assessment_id_68b86880a7f62f1c_fk_assessment_assessment_id` FOREIGN KEY (`assessment_id`) REFERENCES `assessment_assessment` (`id`), - CONSTRAINT `assessment_ai_rubric_id_3fc938e9e3ae7b2d_fk_assessment_rubric_id` FOREIGN KEY (`rubric_id`) REFERENCES `assessment_rubric` (`id`) + `content` varchar(1000) NOT NULL, + `active` tinyint(1) NOT NULL, + PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `assessment_aigradingworkflow` +-- Dumping data for table `announcements_announcement` -- -LOCK TABLES `assessment_aigradingworkflow` WRITE; -/*!40000 ALTER TABLE `assessment_aigradingworkflow` DISABLE KEYS */; -/*!40000 ALTER TABLE `assessment_aigradingworkflow` ENABLE KEYS */; +LOCK TABLES `announcements_announcement` WRITE; +/*!40000 ALTER TABLE `announcements_announcement` DISABLE KEYS */; +/*!40000 ALTER TABLE `announcements_announcement` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `assessment_aitrainingworkflow` +-- Table structure for table `api_admin_apiaccessconfig` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `assessment_aitrainingworkflow` ( +CREATE TABLE `api_admin_apiaccessconfig` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `uuid` varchar(36) NOT NULL, - `course_id` varchar(255) NOT NULL, - `item_id` varchar(128) NOT NULL, - `scheduled_at` datetime(6) NOT NULL, - `completed_at` datetime(6) DEFAULT NULL, - `algorithm_id` varchar(128) NOT NULL, - `classifier_set_id` int(11) DEFAULT NULL, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `uuid` (`uuid`), - KEY `fb3b73b224dc39eb386f5d3ec67998b7` (`classifier_set_id`), - KEY `assessment_aitrainingworkflow_ea134da7` (`course_id`), - KEY `assessment_aitrainingworkflow_82bfda79` (`item_id`), - KEY `assessment_aitrainingworkflow_96e4551c` (`scheduled_at`), - KEY `assessment_aitrainingworkflow_4430a679` (`completed_at`), - KEY `assessment_aitrainingworkflow_65143c91` (`algorithm_id`), - CONSTRAINT `fb3b73b224dc39eb386f5d3ec67998b7` FOREIGN KEY (`classifier_set_id`) REFERENCES `assessment_aiclassifierset` (`id`) + KEY `api_admin_apiaccessconfig_changed_by_id_d2f4cd88_fk_auth_user_id` (`changed_by_id`), + CONSTRAINT `api_admin_apiaccessconfig_changed_by_id_d2f4cd88_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `assessment_aitrainingworkflow` +-- Dumping data for table `api_admin_apiaccessconfig` -- -LOCK TABLES `assessment_aitrainingworkflow` WRITE; -/*!40000 ALTER TABLE `assessment_aitrainingworkflow` DISABLE KEYS */; -/*!40000 ALTER TABLE `assessment_aitrainingworkflow` ENABLE KEYS */; +LOCK TABLES `api_admin_apiaccessconfig` WRITE; +/*!40000 ALTER TABLE `api_admin_apiaccessconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `api_admin_apiaccessconfig` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `assessment_aitrainingworkflow_training_examples` +-- Table structure for table `api_admin_apiaccessrequest` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `assessment_aitrainingworkflow_training_examples` ( +CREATE TABLE `api_admin_apiaccessrequest` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `aitrainingworkflow_id` int(11) NOT NULL, - `trainingexample_id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `status` varchar(255) NOT NULL, + `website` varchar(200) NOT NULL, + `reason` longtext NOT NULL, + `user_id` int(11) NOT NULL, + `company_address` varchar(255) NOT NULL, + `company_name` varchar(255) NOT NULL, + `contacted` tinyint(1) NOT NULL, + `site_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `aitrainingworkflow_id` (`aitrainingworkflow_id`,`trainingexample_id`), - KEY `ff4ddecc43bd06c0d85785a61e955133` (`trainingexample_id`), - CONSTRAINT `da55be90caee21d95136e40c53e5c754` FOREIGN KEY (`aitrainingworkflow_id`) REFERENCES `assessment_aitrainingworkflow` (`id`), - CONSTRAINT `ff4ddecc43bd06c0d85785a61e955133` FOREIGN KEY (`trainingexample_id`) REFERENCES `assessment_trainingexample` (`id`) + UNIQUE KEY `api_admin_apiaccessrequest_user_id_eb0cc217_uniq` (`user_id`), + KEY `api_admin_apiaccessrequest_status_f8039aea` (`status`), + KEY `api_admin_apiaccessrequest_site_id_b78f5161_fk_django_site_id` (`site_id`), + CONSTRAINT `api_admin_apiaccessrequest_site_id_b78f5161_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`), + CONSTRAINT `api_admin_apiaccessrequest_user_id_eb0cc217_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `assessment_aitrainingworkflow_training_examples` +-- Dumping data for table `api_admin_apiaccessrequest` -- -LOCK TABLES `assessment_aitrainingworkflow_training_examples` WRITE; -/*!40000 ALTER TABLE `assessment_aitrainingworkflow_training_examples` DISABLE KEYS */; -/*!40000 ALTER TABLE `assessment_aitrainingworkflow_training_examples` ENABLE KEYS */; +LOCK TABLES `api_admin_apiaccessrequest` WRITE; +/*!40000 ALTER TABLE `api_admin_apiaccessrequest` DISABLE KEYS */; +/*!40000 ALTER TABLE `api_admin_apiaccessrequest` ENABLE KEYS */; UNLOCK TABLES; -- @@ -272,11 +153,11 @@ CREATE TABLE `assessment_assessment` ( `feedback` longtext NOT NULL, `rubric_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `assessment_assessment_ab5b2b73` (`submission_uuid`), - KEY `assessment_assessment_ef4c53ff` (`scored_at`), - KEY `assessment_assessment_7b0042c0` (`scorer_id`), - KEY `assessment_assessment_8980b7ae` (`rubric_id`), - CONSTRAINT `assessment_as_rubric_id_7997f01dcbd05633_fk_assessment_rubric_id` FOREIGN KEY (`rubric_id`) REFERENCES `assessment_rubric` (`id`) + KEY `assessment_assessment_rubric_id_2ed0d5db_fk_assessment_rubric_id` (`rubric_id`), + KEY `assessment_assessment_submission_uuid_cf5817c5` (`submission_uuid`), + KEY `assessment_assessment_scored_at_a1a213d6` (`scored_at`), + KEY `assessment_assessment_scorer_id_ad1a38cb` (`scorer_id`), + CONSTRAINT `assessment_assessment_rubric_id_2ed0d5db_fk_assessment_rubric_id` FOREIGN KEY (`rubric_id`) REFERENCES `assessment_rubric` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -324,10 +205,10 @@ CREATE TABLE `assessment_assessmentfeedback_assessments` ( `assessmentfeedback_id` int(11) NOT NULL, `assessment_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `assessmentfeedback_id` (`assessmentfeedback_id`,`assessment_id`), - KEY `asses_assessment_id_392d354eca2e0c87_fk_assessment_assessment_id` (`assessment_id`), - CONSTRAINT `D1fc3fa7cd7be79d20561668a95a9fc1` FOREIGN KEY (`assessmentfeedback_id`) REFERENCES `assessment_assessmentfeedback` (`id`), - CONSTRAINT `asses_assessment_id_392d354eca2e0c87_fk_assessment_assessment_id` FOREIGN KEY (`assessment_id`) REFERENCES `assessment_assessment` (`id`) + UNIQUE KEY `assessment_assessmentfee_assessmentfeedback_id_as_f8246578_uniq` (`assessmentfeedback_id`,`assessment_id`), + KEY `assessment_assessmen_assessment_id_033f1121_fk_assessmen` (`assessment_id`), + CONSTRAINT `assessment_assessmen_assessment_id_033f1121_fk_assessmen` FOREIGN KEY (`assessment_id`) REFERENCES `assessment_assessment` (`id`), + CONSTRAINT `assessment_assessmen_assessmentfeedback_i_6634a3b4_fk_assessmen` FOREIGN KEY (`assessmentfeedback_id`) REFERENCES `assessment_assessmentfeedback` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -351,10 +232,10 @@ CREATE TABLE `assessment_assessmentfeedback_options` ( `assessmentfeedback_id` int(11) NOT NULL, `assessmentfeedbackoption_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `assessmentfeedback_id` (`assessmentfeedback_id`,`assessmentfeedbackoption_id`), - KEY `cc7028abc88c431df3172c9b2d6422e4` (`assessmentfeedbackoption_id`), - CONSTRAINT `cba12ac98c4a04d67d5edaa2223f4fe5` FOREIGN KEY (`assessmentfeedback_id`) REFERENCES `assessment_assessmentfeedback` (`id`), - CONSTRAINT `cc7028abc88c431df3172c9b2d6422e4` FOREIGN KEY (`assessmentfeedbackoption_id`) REFERENCES `assessment_assessmentfeedbackoption` (`id`) + UNIQUE KEY `assessment_assessmentfee_assessmentfeedback_id_as_4e554cc7_uniq` (`assessmentfeedback_id`,`assessmentfeedbackoption_id`), + KEY `assessment_assessmen_assessmentfeedbackop_a9af45f6_fk_assessmen` (`assessmentfeedbackoption_id`), + CONSTRAINT `assessment_assessmen_assessmentfeedback_i_004e1bf0_fk_assessmen` FOREIGN KEY (`assessmentfeedback_id`) REFERENCES `assessment_assessmentfeedback` (`id`), + CONSTRAINT `assessment_assessmen_assessmentfeedbackop_a9af45f6_fk_assessmen` FOREIGN KEY (`assessmentfeedbackoption_id`) REFERENCES `assessment_assessmentfeedbackoption` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -403,12 +284,12 @@ CREATE TABLE `assessment_assessmentpart` ( `criterion_id` int(11) NOT NULL, `option_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `asses_assessment_id_1d752290138ce479_fk_assessment_assessment_id` (`assessment_id`), - KEY `assessment_assessmentpart_385b00a3` (`criterion_id`), - KEY `assessment_assessmentpart_28df3725` (`option_id`), - CONSTRAINT `asse_option_id_2508a14feeabf4ce_fk_assessment_criterionoption_id` FOREIGN KEY (`option_id`) REFERENCES `assessment_criterionoption` (`id`), - CONSTRAINT `asses_assessment_id_1d752290138ce479_fk_assessment_assessment_id` FOREIGN KEY (`assessment_id`) REFERENCES `assessment_assessment` (`id`), - CONSTRAINT `assessm_criterion_id_2061f2359fd292bf_fk_assessment_criterion_id` FOREIGN KEY (`criterion_id`) REFERENCES `assessment_criterion` (`id`) + KEY `assessment_assessmen_criterion_id_5bc40925_fk_assessmen` (`criterion_id`), + KEY `assessment_assessmen_option_id_dd35c2c5_fk_assessmen` (`option_id`), + KEY `assessment_assessmen_assessment_id_de1999cd_fk_assessmen` (`assessment_id`), + CONSTRAINT `assessment_assessmen_assessment_id_de1999cd_fk_assessmen` FOREIGN KEY (`assessment_id`) REFERENCES `assessment_assessment` (`id`), + CONSTRAINT `assessment_assessmen_criterion_id_5bc40925_fk_assessmen` FOREIGN KEY (`criterion_id`) REFERENCES `assessment_criterion` (`id`), + CONSTRAINT `assessment_assessmen_option_id_dd35c2c5_fk_assessmen` FOREIGN KEY (`option_id`) REFERENCES `assessment_criterionoption` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -435,9 +316,9 @@ CREATE TABLE `assessment_criterion` ( `prompt` longtext NOT NULL, `rubric_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `assessment_criterion_8980b7ae` (`rubric_id`), - CONSTRAINT `assessment_cr_rubric_id_30b7422eb7f191cd_fk_assessment_rubric_id` FOREIGN KEY (`rubric_id`) REFERENCES `assessment_rubric` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; + KEY `assessment_criterion_rubric_id_fe236962_fk_assessment_rubric_id` (`rubric_id`), + CONSTRAINT `assessment_criterion_rubric_id_fe236962_fk_assessment_rubric_id` FOREIGN KEY (`rubric_id`) REFERENCES `assessment_rubric` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -446,7 +327,6 @@ CREATE TABLE `assessment_criterion` ( LOCK TABLES `assessment_criterion` WRITE; /*!40000 ALTER TABLE `assessment_criterion` DISABLE KEYS */; -INSERT INTO `assessment_criterion` VALUES (1,'Content','Content',0,'Did the response describe a meal and did it describe why someone should chose to eat it?',1),(2,'Organization & Clarity','Organization & Clarity',1,'How well did the response use language?',1),(3,'Persuasiveness','Persuasiveness',2,'How well did the response convince you to try the meal that it describes?',1); /*!40000 ALTER TABLE `assessment_criterion` ENABLE KEYS */; UNLOCK TABLES; @@ -465,9 +345,9 @@ CREATE TABLE `assessment_criterionoption` ( `explanation` longtext NOT NULL, `criterion_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `assessm_criterion_id_4d0f74d959b454af_fk_assessment_criterion_id` (`criterion_id`), - CONSTRAINT `assessm_criterion_id_4d0f74d959b454af_fk_assessment_criterion_id` FOREIGN KEY (`criterion_id`) REFERENCES `assessment_criterion` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; + KEY `assessment_criterion_criterion_id_53928be7_fk_assessmen` (`criterion_id`), + CONSTRAINT `assessment_criterion_criterion_id_53928be7_fk_assessmen` FOREIGN KEY (`criterion_id`) REFERENCES `assessment_criterion` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -476,10 +356,53 @@ CREATE TABLE `assessment_criterionoption` ( LOCK TABLES `assessment_criterionoption` WRITE; /*!40000 ALTER TABLE `assessment_criterionoption` DISABLE KEYS */; -INSERT INTO `assessment_criterionoption` VALUES (1,0,0,'Off Topic','Off Topic','The essay is off-topic or does not answer all or part of the question.',1),(2,1,5,'No Explanation','No Explanation','A meal is described, but no argument is made to persuade the reader to try it.',1),(3,2,5,'Unclear recommendation','Unclear recommendation','A meal is not described, but an argument is made to persuade the reader to try it.',1),(4,3,10,'Persuasive recommendation','Persuasive recommendation','The essay give a good description of the meal and provides supporting reasons for trying the meal.',1),(5,0,0,'Confusing','Confusing','It is difficult to identify the argument and main idea.',2),(6,1,1,'Basic Structure','Basic Structure','The essay provides a main idea. Additional details are provided, and some support the main idea.',2),(7,2,2,'Clear Structure','Clear Structure','The essay provides a clear main idea supported by specific details.',2),(8,3,3,'Complete Structure','Complete Structure','The essay has a complete structure: an introduction, statement of main idea, supporting details and summary.',2),(9,0,0,'Unconvincing','Unconvincing','The author did not present a persuasive argument, and I have no interest in trying this meal.',3),(10,1,2,'Interesting','Interesting','The author’s argument was somewhat persuarsive. I need more information to consider trying this meal.',3),(11,2,4,'Persuasive','Persuasive','The author’s argument was persuasive, and I will consider trying the meal.',3),(12,3,6,'Inspiring','Inspiring','The author presented an exceptionally strong case and has convinced me to try the meal.',3); /*!40000 ALTER TABLE `assessment_criterionoption` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `assessment_historicalsharedfileupload` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `assessment_historicalsharedfileupload` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `team_id` varchar(255) NOT NULL, + `course_id` varchar(255) NOT NULL, + `item_id` varchar(255) NOT NULL, + `owner_id` varchar(255) NOT NULL, + `file_key` varchar(255) NOT NULL, + `description` longtext NOT NULL, + `size` bigint(20) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `name` varchar(255) NOT NULL, + PRIMARY KEY (`history_id`), + KEY `assessment_historica_history_user_id_28fa87d9_fk_auth_user` (`history_user_id`), + KEY `assessment_historicalsharedfileupload_id_34052991` (`id`), + KEY `assessment_historicalsharedfileupload_team_id_e32268e1` (`team_id`), + KEY `assessment_historicalsharedfileupload_course_id_7fd70b9d` (`course_id`), + KEY `assessment_historicalsharedfileupload_item_id_b7bca199` (`item_id`), + KEY `assessment_historicalsharedfileupload_owner_id_09b09e30` (`owner_id`), + KEY `assessment_historicalsharedfileupload_file_key_03fbd3e7` (`file_key`), + CONSTRAINT `assessment_historica_history_user_id_28fa87d9_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `assessment_historicalsharedfileupload` +-- + +LOCK TABLES `assessment_historicalsharedfileupload` WRITE; +/*!40000 ALTER TABLE `assessment_historicalsharedfileupload` DISABLE KEYS */; +/*!40000 ALTER TABLE `assessment_historicalsharedfileupload` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `assessment_peerworkflow` -- @@ -498,13 +421,13 @@ CREATE TABLE `assessment_peerworkflow` ( `cancelled_at` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `submission_uuid` (`submission_uuid`), - KEY `assessment_peerworkflow_30a811f6` (`student_id`), - KEY `assessment_peerworkflow_82bfda79` (`item_id`), - KEY `assessment_peerworkflow_ea134da7` (`course_id`), - KEY `assessment_peerworkflow_fde81f11` (`created_at`), - KEY `assessment_peerworkflow_4430a679` (`completed_at`), - KEY `assessment_peerworkflow_85d183d8` (`grading_completed_at`), - KEY `assessment_peerworkflow_740da1db` (`cancelled_at`) + KEY `assessment_peerworkflow_student_id_9382ae54` (`student_id`), + KEY `assessment_peerworkflow_item_id_c17d799e` (`item_id`), + KEY `assessment_peerworkflow_course_id_875599e3` (`course_id`), + KEY `assessment_peerworkflow_created_at_b8aaf4a5` (`created_at`), + KEY `assessment_peerworkflow_completed_at_681f19e1` (`completed_at`), + KEY `assessment_peerworkflow_grading_completed_at_33e2560c` (`grading_completed_at`), + KEY `assessment_peerworkflow_cancelled_at_0e258929` (`cancelled_at`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -532,14 +455,14 @@ CREATE TABLE `assessment_peerworkflowitem` ( `author_id` int(11) NOT NULL, `scorer_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `asses_assessment_id_15cadfae90ddcc2a_fk_assessment_assessment_id` (`assessment_id`), - KEY `assessm_author_id_1948f89dea6d2b5f_fk_assessment_peerworkflow_id` (`author_id`), - KEY `assessm_scorer_id_2d803ee2d52c0e2c_fk_assessment_peerworkflow_id` (`scorer_id`), - KEY `assessment_peerworkflowitem_ab5b2b73` (`submission_uuid`), - KEY `assessment_peerworkflowitem_ff1ae11b` (`started_at`), - CONSTRAINT `asses_assessment_id_15cadfae90ddcc2a_fk_assessment_assessment_id` FOREIGN KEY (`assessment_id`) REFERENCES `assessment_assessment` (`id`), - CONSTRAINT `assessm_author_id_1948f89dea6d2b5f_fk_assessment_peerworkflow_id` FOREIGN KEY (`author_id`) REFERENCES `assessment_peerworkflow` (`id`), - CONSTRAINT `assessm_scorer_id_2d803ee2d52c0e2c_fk_assessment_peerworkflow_id` FOREIGN KEY (`scorer_id`) REFERENCES `assessment_peerworkflow` (`id`) + KEY `assessment_peerworkf_assessment_id_27f9ef1f_fk_assessmen` (`assessment_id`), + KEY `assessment_peerworkf_author_id_0e3ed804_fk_assessmen` (`author_id`), + KEY `assessment_peerworkf_scorer_id_27e47cd4_fk_assessmen` (`scorer_id`), + KEY `assessment_peerworkflowitem_submission_uuid_edd446aa` (`submission_uuid`), + KEY `assessment_peerworkflowitem_started_at_8644e7a0` (`started_at`), + CONSTRAINT `assessment_peerworkf_assessment_id_27f9ef1f_fk_assessmen` FOREIGN KEY (`assessment_id`) REFERENCES `assessment_assessment` (`id`), + CONSTRAINT `assessment_peerworkf_author_id_0e3ed804_fk_assessmen` FOREIGN KEY (`author_id`) REFERENCES `assessment_peerworkflow` (`id`), + CONSTRAINT `assessment_peerworkf_scorer_id_27e47cd4_fk_assessmen` FOREIGN KEY (`scorer_id`) REFERENCES `assessment_peerworkflow` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -564,8 +487,8 @@ CREATE TABLE `assessment_rubric` ( `structure_hash` varchar(40) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `content_hash` (`content_hash`), - KEY `assessment_rubric_873e9e2d` (`structure_hash`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; + KEY `assessment_rubric_structure_hash_fb456373` (`structure_hash`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -574,10 +497,45 @@ CREATE TABLE `assessment_rubric` ( LOCK TABLES `assessment_rubric` WRITE; /*!40000 ALTER TABLE `assessment_rubric` DISABLE KEYS */; -INSERT INTO `assessment_rubric` VALUES (1,'b2783932b715f500b0af5f2e0d80757e54301353','ab95e8c199881793b6999c5efb1a5754fd7417d5'); /*!40000 ALTER TABLE `assessment_rubric` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `assessment_sharedfileupload` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `assessment_sharedfileupload` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `team_id` varchar(255) NOT NULL, + `course_id` varchar(255) NOT NULL, + `item_id` varchar(255) NOT NULL, + `owner_id` varchar(255) NOT NULL, + `file_key` varchar(255) NOT NULL, + `description` longtext NOT NULL, + `size` bigint(20) NOT NULL, + `name` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `file_key` (`file_key`), + KEY `assessment_sharedfileupload_team_id_dbdd3cb7` (`team_id`), + KEY `assessment_sharedfileupload_course_id_73edb775` (`course_id`), + KEY `assessment_sharedfileupload_item_id_b471d0c9` (`item_id`), + KEY `assessment_sharedfileupload_owner_id_f4d7fe4f` (`owner_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `assessment_sharedfileupload` +-- + +LOCK TABLES `assessment_sharedfileupload` WRITE; +/*!40000 ALTER TABLE `assessment_sharedfileupload` DISABLE KEYS */; +/*!40000 ALTER TABLE `assessment_sharedfileupload` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `assessment_staffworkflow` -- @@ -597,14 +555,14 @@ CREATE TABLE `assessment_staffworkflow` ( `assessment` varchar(128) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `submission_uuid` (`submission_uuid`), - KEY `assessment_staffworkflow_7b0042c0` (`scorer_id`), - KEY `assessment_staffworkflow_ea134da7` (`course_id`), - KEY `assessment_staffworkflow_82bfda79` (`item_id`), - KEY `assessment_staffworkflow_fde81f11` (`created_at`), - KEY `assessment_staffworkflow_85d183d8` (`grading_completed_at`), - KEY `assessment_staffworkflow_0af9deae` (`grading_started_at`), - KEY `assessment_staffworkflow_740da1db` (`cancelled_at`), - KEY `assessment_staffworkflow_5096c410` (`assessment`) + KEY `assessment_staffworkflow_scorer_id_ae799ebc` (`scorer_id`), + KEY `assessment_staffworkflow_course_id_3f18693d` (`course_id`), + KEY `assessment_staffworkflow_item_id_4fa3697b` (`item_id`), + KEY `assessment_staffworkflow_created_at_a253bc02` (`created_at`), + KEY `assessment_staffworkflow_grading_completed_at_acd0199f` (`grading_completed_at`), + KEY `assessment_staffworkflow_grading_started_at_90f99005` (`grading_started_at`), + KEY `assessment_staffworkflow_cancelled_at_bc8f93d5` (`cancelled_at`), + KEY `assessment_staffworkflow_assessment_7c1dcc5d` (`assessment`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -631,9 +589,9 @@ CREATE TABLE `assessment_studenttrainingworkflow` ( `course_id` varchar(255) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `submission_uuid` (`submission_uuid`), - KEY `assessment_studenttrainingworkflow_30a811f6` (`student_id`), - KEY `assessment_studenttrainingworkflow_82bfda79` (`item_id`), - KEY `assessment_studenttrainingworkflow_ea134da7` (`course_id`) + KEY `assessment_studenttrainingworkflow_student_id_ea8fdfa8` (`student_id`), + KEY `assessment_studenttrainingworkflow_item_id_f5812a25` (`item_id`), + KEY `assessment_studenttrainingworkflow_course_id_a14d6cde` (`course_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -660,11 +618,10 @@ CREATE TABLE `assessment_studenttrainingworkflowitem` ( `training_example_id` int(11) NOT NULL, `workflow_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `assessment_studenttrainingwork_workflow_id_484e930feb86ad74_uniq` (`workflow_id`,`order_num`), - KEY `assessment_studenttrainingworkflowitem_9cc97abc` (`training_example_id`), - KEY `assessment_studenttrainingworkflowitem_846c77cf` (`workflow_id`), - CONSTRAINT `D74ce3e30635de397fef41ac869640c7` FOREIGN KEY (`training_example_id`) REFERENCES `assessment_trainingexample` (`id`), - CONSTRAINT `f9c080ebc7ad16394edda963ed3f280f` FOREIGN KEY (`workflow_id`) REFERENCES `assessment_studenttrainingworkflow` (`id`) + UNIQUE KEY `assessment_studenttraini_workflow_id_order_num_1ab60238_uniq` (`workflow_id`,`order_num`), + KEY `assessment_studenttr_training_example_id_881dddbd_fk_assessmen` (`training_example_id`), + CONSTRAINT `assessment_studenttr_training_example_id_881dddbd_fk_assessmen` FOREIGN KEY (`training_example_id`) REFERENCES `assessment_trainingexample` (`id`), + CONSTRAINT `assessment_studenttr_workflow_id_a75a9a2e_fk_assessmen` FOREIGN KEY (`workflow_id`) REFERENCES `assessment_studenttrainingworkflow` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -677,6 +634,30 @@ LOCK TABLES `assessment_studenttrainingworkflowitem` WRITE; /*!40000 ALTER TABLE `assessment_studenttrainingworkflowitem` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `assessment_teamstaffworkflow` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `assessment_teamstaffworkflow` ( + `staffworkflow_ptr_id` int(11) NOT NULL, + `team_submission_uuid` varchar(128) NOT NULL, + PRIMARY KEY (`staffworkflow_ptr_id`), + UNIQUE KEY `team_submission_uuid` (`team_submission_uuid`), + CONSTRAINT `assessment_teamstaff_staffworkflow_ptr_id_e55a780c_fk_assessmen` FOREIGN KEY (`staffworkflow_ptr_id`) REFERENCES `assessment_staffworkflow` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `assessment_teamstaffworkflow` +-- + +LOCK TABLES `assessment_teamstaffworkflow` WRITE; +/*!40000 ALTER TABLE `assessment_teamstaffworkflow` DISABLE KEYS */; +/*!40000 ALTER TABLE `assessment_teamstaffworkflow` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `assessment_trainingexample` -- @@ -690,8 +671,8 @@ CREATE TABLE `assessment_trainingexample` ( `rubric_id` int(11) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `content_hash` (`content_hash`), - KEY `assessment_tr_rubric_id_33664d383bafcaaa_fk_assessment_rubric_id` (`rubric_id`), - CONSTRAINT `assessment_tr_rubric_id_33664d383bafcaaa_fk_assessment_rubric_id` FOREIGN KEY (`rubric_id`) REFERENCES `assessment_rubric` (`id`) + KEY `assessment_traininge_rubric_id_cfb4afc3_fk_assessmen` (`rubric_id`), + CONSTRAINT `assessment_traininge_rubric_id_cfb4afc3_fk_assessmen` FOREIGN KEY (`rubric_id`) REFERENCES `assessment_rubric` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -715,10 +696,10 @@ CREATE TABLE `assessment_trainingexample_options_selected` ( `trainingexample_id` int(11) NOT NULL, `criterionoption_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `trainingexample_id` (`trainingexample_id`,`criterionoption_id`), - KEY `D0b4a450eed0c653d223e489254ed8a1` (`criterionoption_id`), - CONSTRAINT `D0b4a450eed0c653d223e489254ed8a1` FOREIGN KEY (`criterionoption_id`) REFERENCES `assessment_criterionoption` (`id`), - CONSTRAINT `ae406d6687690bb9277287984729cfd8` FOREIGN KEY (`trainingexample_id`) REFERENCES `assessment_trainingexample` (`id`) + UNIQUE KEY `assessment_trainingexamp_trainingexample_id_crite_4b6b8b90_uniq` (`trainingexample_id`,`criterionoption_id`), + KEY `assessment_traininge_criterionoption_id_de6716f1_fk_assessmen` (`criterionoption_id`), + CONSTRAINT `assessment_traininge_criterionoption_id_de6716f1_fk_assessmen` FOREIGN KEY (`criterionoption_id`) REFERENCES `assessment_criterionoption` (`id`), + CONSTRAINT `assessment_traininge_trainingexample_id_7a04b572_fk_assessmen` FOREIGN KEY (`trainingexample_id`) REFERENCES `assessment_trainingexample` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -731,6 +712,33 @@ LOCK TABLES `assessment_trainingexample_options_selected` WRITE; /*!40000 ALTER TABLE `assessment_trainingexample_options_selected` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `auth_accountrecovery` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `auth_accountrecovery` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `secondary_email` varchar(254) NOT NULL, + `user_id` int(11) NOT NULL, + `is_active` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `secondary_email` (`secondary_email`), + UNIQUE KEY `user_id` (`user_id`), + CONSTRAINT `auth_accountrecovery_user_id_0c61e73c_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `auth_accountrecovery` +-- + +LOCK TABLES `auth_accountrecovery` WRITE; +/*!40000 ALTER TABLE `auth_accountrecovery` DISABLE KEYS */; +/*!40000 ALTER TABLE `auth_accountrecovery` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `auth_group` -- @@ -739,7 +747,7 @@ UNLOCK TABLES; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `auth_group` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(80) NOT NULL, + `name` varchar(150) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; @@ -766,11 +774,11 @@ CREATE TABLE `auth_group_permissions` ( `group_id` int(11) NOT NULL, `permission_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `group_id` (`group_id`,`permission_id`), - KEY `auth_group__permission_id_1f49ccbbdc69d2fc_fk_auth_permission_id` (`permission_id`), - CONSTRAINT `auth_group__permission_id_1f49ccbbdc69d2fc_fk_auth_permission_id` FOREIGN KEY (`permission_id`) REFERENCES `auth_permission` (`id`), - CONSTRAINT `auth_group_permission_group_id_689710a9a73b7457_fk_auth_group_id` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; + UNIQUE KEY `auth_group_permissions_group_id_permission_id_0cd325b0_uniq` (`group_id`,`permission_id`), + KEY `auth_group_permissio_permission_id_84c5c92e_fk_auth_perm` (`permission_id`), + CONSTRAINT `auth_group_permissio_permission_id_84c5c92e_fk_auth_perm` FOREIGN KEY (`permission_id`) REFERENCES `auth_permission` (`id`), + CONSTRAINT `auth_group_permissions_group_id_b120cbf9_fk_auth_group_id` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -779,7 +787,6 @@ CREATE TABLE `auth_group_permissions` ( LOCK TABLES `auth_group_permissions` WRITE; /*!40000 ALTER TABLE `auth_group_permissions` DISABLE KEYS */; -INSERT INTO `auth_group_permissions` VALUES (6,1,695),(4,1,696),(5,1,697); /*!40000 ALTER TABLE `auth_group_permissions` ENABLE KEYS */; UNLOCK TABLES; @@ -795,9 +802,9 @@ CREATE TABLE `auth_permission` ( `content_type_id` int(11) NOT NULL, `codename` varchar(100) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `content_type_id` (`content_type_id`,`codename`), - CONSTRAINT `auth__content_type_id_508cf46651277a81_fk_django_content_type_id` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=1143 DEFAULT CHARSET=utf8; + UNIQUE KEY `auth_permission_content_type_id_codename_01ab375a_uniq` (`content_type_id`,`codename`), + CONSTRAINT `auth_permission_content_type_id_2f476e4b_fk_django_co` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1921 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -806,7 +813,7 @@ CREATE TABLE `auth_permission` ( LOCK TABLES `auth_permission` WRITE; /*!40000 ALTER TABLE `auth_permission` DISABLE KEYS */; -INSERT INTO `auth_permission` VALUES (1,'Can add permission',2,'add_permission'),(2,'Can change permission',2,'change_permission'),(3,'Can delete permission',2,'delete_permission'),(4,'Can add group',3,'add_group'),(5,'Can change group',3,'change_group'),(6,'Can delete group',3,'delete_group'),(7,'Can add user',4,'add_user'),(8,'Can change user',4,'change_user'),(9,'Can delete user',4,'delete_user'),(10,'Can add content type',5,'add_contenttype'),(11,'Can change content type',5,'change_contenttype'),(12,'Can delete content type',5,'delete_contenttype'),(13,'Can add redirect',6,'add_redirect'),(14,'Can change redirect',6,'change_redirect'),(15,'Can delete redirect',6,'delete_redirect'),(16,'Can add session',7,'add_session'),(17,'Can change session',7,'change_session'),(18,'Can delete session',7,'delete_session'),(19,'Can add site',8,'add_site'),(20,'Can change site',8,'change_site'),(21,'Can delete site',8,'delete_site'),(22,'Can add task state',9,'add_taskmeta'),(23,'Can change task state',9,'change_taskmeta'),(24,'Can delete task state',9,'delete_taskmeta'),(25,'Can add saved group result',10,'add_tasksetmeta'),(26,'Can change saved group result',10,'change_tasksetmeta'),(27,'Can delete saved group result',10,'delete_tasksetmeta'),(28,'Can add interval',11,'add_intervalschedule'),(29,'Can change interval',11,'change_intervalschedule'),(30,'Can delete interval',11,'delete_intervalschedule'),(31,'Can add crontab',12,'add_crontabschedule'),(32,'Can change crontab',12,'change_crontabschedule'),(33,'Can delete crontab',12,'delete_crontabschedule'),(34,'Can add periodic tasks',13,'add_periodictasks'),(35,'Can change periodic tasks',13,'change_periodictasks'),(36,'Can delete periodic tasks',13,'delete_periodictasks'),(37,'Can add periodic task',14,'add_periodictask'),(38,'Can change periodic task',14,'change_periodictask'),(39,'Can delete periodic task',14,'delete_periodictask'),(40,'Can add worker',15,'add_workerstate'),(41,'Can change worker',15,'change_workerstate'),(42,'Can delete worker',15,'delete_workerstate'),(43,'Can add task',16,'add_taskstate'),(44,'Can change task',16,'change_taskstate'),(45,'Can delete task',16,'delete_taskstate'),(46,'Can add global status message',17,'add_globalstatusmessage'),(47,'Can change global status message',17,'change_globalstatusmessage'),(48,'Can delete global status message',17,'delete_globalstatusmessage'),(49,'Can add course message',18,'add_coursemessage'),(50,'Can change course message',18,'change_coursemessage'),(51,'Can delete course message',18,'delete_coursemessage'),(52,'Can add asset base url config',19,'add_assetbaseurlconfig'),(53,'Can change asset base url config',19,'change_assetbaseurlconfig'),(54,'Can delete asset base url config',19,'delete_assetbaseurlconfig'),(55,'Can add asset excluded extensions config',20,'add_assetexcludedextensionsconfig'),(56,'Can change asset excluded extensions config',20,'change_assetexcludedextensionsconfig'),(57,'Can delete asset excluded extensions config',20,'delete_assetexcludedextensionsconfig'),(58,'Can add course asset cache ttl config',21,'add_courseassetcachettlconfig'),(59,'Can change course asset cache ttl config',21,'change_courseassetcachettlconfig'),(60,'Can delete course asset cache ttl config',21,'delete_courseassetcachettlconfig'),(61,'Can add cdn user agents config',22,'add_cdnuseragentsconfig'),(62,'Can change cdn user agents config',22,'change_cdnuseragentsconfig'),(63,'Can delete cdn user agents config',22,'delete_cdnuseragentsconfig'),(64,'Can add site theme',23,'add_sitetheme'),(65,'Can change site theme',23,'change_sitetheme'),(66,'Can delete site theme',23,'delete_sitetheme'),(67,'Can add site configuration',24,'add_siteconfiguration'),(68,'Can change site configuration',24,'change_siteconfiguration'),(69,'Can delete site configuration',24,'delete_siteconfiguration'),(70,'Can add site configuration history',25,'add_siteconfigurationhistory'),(71,'Can change site configuration history',25,'change_siteconfigurationhistory'),(72,'Can delete site configuration history',25,'delete_siteconfigurationhistory'),(73,'Can add student module',26,'add_studentmodule'),(74,'Can change student module',26,'change_studentmodule'),(75,'Can delete student module',26,'delete_studentmodule'),(76,'Can add student module history',27,'add_studentmodulehistory'),(77,'Can change student module history',27,'change_studentmodulehistory'),(78,'Can delete student module history',27,'delete_studentmodulehistory'),(79,'Can add x module user state summary field',28,'add_xmoduleuserstatesummaryfield'),(80,'Can change x module user state summary field',28,'change_xmoduleuserstatesummaryfield'),(81,'Can delete x module user state summary field',28,'delete_xmoduleuserstatesummaryfield'),(82,'Can add x module student prefs field',29,'add_xmodulestudentprefsfield'),(83,'Can change x module student prefs field',29,'change_xmodulestudentprefsfield'),(84,'Can delete x module student prefs field',29,'delete_xmodulestudentprefsfield'),(85,'Can add x module student info field',30,'add_xmodulestudentinfofield'),(86,'Can change x module student info field',30,'change_xmodulestudentinfofield'),(87,'Can delete x module student info field',30,'delete_xmodulestudentinfofield'),(88,'Can add offline computed grade',31,'add_offlinecomputedgrade'),(89,'Can change offline computed grade',31,'change_offlinecomputedgrade'),(90,'Can delete offline computed grade',31,'delete_offlinecomputedgrade'),(91,'Can add offline computed grade log',32,'add_offlinecomputedgradelog'),(92,'Can change offline computed grade log',32,'change_offlinecomputedgradelog'),(93,'Can delete offline computed grade log',32,'delete_offlinecomputedgradelog'),(94,'Can add student field override',33,'add_studentfieldoverride'),(95,'Can change student field override',33,'change_studentfieldoverride'),(96,'Can delete student field override',33,'delete_studentfieldoverride'),(97,'Can add anonymous user id',34,'add_anonymoususerid'),(98,'Can change anonymous user id',34,'change_anonymoususerid'),(99,'Can delete anonymous user id',34,'delete_anonymoususerid'),(100,'Can add user standing',35,'add_userstanding'),(101,'Can change user standing',35,'change_userstanding'),(102,'Can delete user standing',35,'delete_userstanding'),(103,'Can add user profile',36,'add_userprofile'),(104,'Can change user profile',36,'change_userprofile'),(105,'Can delete user profile',36,'delete_userprofile'),(106,'Can add user signup source',37,'add_usersignupsource'),(107,'Can change user signup source',37,'change_usersignupsource'),(108,'Can delete user signup source',37,'delete_usersignupsource'),(109,'Can add user test group',38,'add_usertestgroup'),(110,'Can change user test group',38,'change_usertestgroup'),(111,'Can delete user test group',38,'delete_usertestgroup'),(112,'Can add registration',39,'add_registration'),(113,'Can change registration',39,'change_registration'),(114,'Can delete registration',39,'delete_registration'),(115,'Can add pending name change',40,'add_pendingnamechange'),(116,'Can change pending name change',40,'change_pendingnamechange'),(117,'Can delete pending name change',40,'delete_pendingnamechange'),(118,'Can add pending email change',41,'add_pendingemailchange'),(119,'Can change pending email change',41,'change_pendingemailchange'),(120,'Can delete pending email change',41,'delete_pendingemailchange'),(121,'Can add password history',42,'add_passwordhistory'),(122,'Can change password history',42,'change_passwordhistory'),(123,'Can delete password history',42,'delete_passwordhistory'),(124,'Can add login failures',43,'add_loginfailures'),(125,'Can change login failures',43,'change_loginfailures'),(126,'Can delete login failures',43,'delete_loginfailures'),(127,'Can add historical course enrollment',44,'add_historicalcourseenrollment'),(128,'Can change historical course enrollment',44,'change_historicalcourseenrollment'),(129,'Can delete historical course enrollment',44,'delete_historicalcourseenrollment'),(130,'Can add course enrollment',45,'add_courseenrollment'),(131,'Can change course enrollment',45,'change_courseenrollment'),(132,'Can delete course enrollment',45,'delete_courseenrollment'),(133,'Can add manual enrollment audit',46,'add_manualenrollmentaudit'),(134,'Can change manual enrollment audit',46,'change_manualenrollmentaudit'),(135,'Can delete manual enrollment audit',46,'delete_manualenrollmentaudit'),(136,'Can add course enrollment allowed',47,'add_courseenrollmentallowed'),(137,'Can change course enrollment allowed',47,'change_courseenrollmentallowed'),(138,'Can delete course enrollment allowed',47,'delete_courseenrollmentallowed'),(139,'Can add course access role',48,'add_courseaccessrole'),(140,'Can change course access role',48,'change_courseaccessrole'),(141,'Can delete course access role',48,'delete_courseaccessrole'),(142,'Can add dashboard configuration',49,'add_dashboardconfiguration'),(143,'Can change dashboard configuration',49,'change_dashboardconfiguration'),(144,'Can delete dashboard configuration',49,'delete_dashboardconfiguration'),(145,'Can add linked in add to profile configuration',50,'add_linkedinaddtoprofileconfiguration'),(146,'Can change linked in add to profile configuration',50,'change_linkedinaddtoprofileconfiguration'),(147,'Can delete linked in add to profile configuration',50,'delete_linkedinaddtoprofileconfiguration'),(148,'Can add entrance exam configuration',51,'add_entranceexamconfiguration'),(149,'Can change entrance exam configuration',51,'change_entranceexamconfiguration'),(150,'Can delete entrance exam configuration',51,'delete_entranceexamconfiguration'),(151,'Can add language proficiency',52,'add_languageproficiency'),(152,'Can change language proficiency',52,'change_languageproficiency'),(153,'Can delete language proficiency',52,'delete_languageproficiency'),(154,'Can add course enrollment attribute',53,'add_courseenrollmentattribute'),(155,'Can change course enrollment attribute',53,'change_courseenrollmentattribute'),(156,'Can delete course enrollment attribute',53,'delete_courseenrollmentattribute'),(157,'Can add enrollment refund configuration',54,'add_enrollmentrefundconfiguration'),(158,'Can change enrollment refund configuration',54,'change_enrollmentrefundconfiguration'),(159,'Can delete enrollment refund configuration',54,'delete_enrollmentrefundconfiguration'),(160,'Can add registration cookie configuration',55,'add_registrationcookieconfiguration'),(161,'Can change registration cookie configuration',55,'change_registrationcookieconfiguration'),(162,'Can delete registration cookie configuration',55,'delete_registrationcookieconfiguration'),(163,'Can add user attribute',56,'add_userattribute'),(164,'Can change user attribute',56,'change_userattribute'),(165,'Can delete user attribute',56,'delete_userattribute'),(166,'Can add logout view configuration',57,'add_logoutviewconfiguration'),(167,'Can change logout view configuration',57,'change_logoutviewconfiguration'),(168,'Can delete logout view configuration',57,'delete_logoutviewconfiguration'),(169,'Can add tracking log',58,'add_trackinglog'),(170,'Can change tracking log',58,'change_trackinglog'),(171,'Can delete tracking log',58,'delete_trackinglog'),(172,'Can add rate limit configuration',59,'add_ratelimitconfiguration'),(173,'Can change rate limit configuration',59,'change_ratelimitconfiguration'),(174,'Can delete rate limit configuration',59,'delete_ratelimitconfiguration'),(175,'Can add certificate whitelist',60,'add_certificatewhitelist'),(176,'Can change certificate whitelist',60,'change_certificatewhitelist'),(177,'Can delete certificate whitelist',60,'delete_certificatewhitelist'),(178,'Can add generated certificate',61,'add_generatedcertificate'),(179,'Can change generated certificate',61,'change_generatedcertificate'),(180,'Can delete generated certificate',61,'delete_generatedcertificate'),(181,'Can add certificate generation history',62,'add_certificategenerationhistory'),(182,'Can change certificate generation history',62,'change_certificategenerationhistory'),(183,'Can delete certificate generation history',62,'delete_certificategenerationhistory'),(184,'Can add certificate invalidation',63,'add_certificateinvalidation'),(185,'Can change certificate invalidation',63,'change_certificateinvalidation'),(186,'Can delete certificate invalidation',63,'delete_certificateinvalidation'),(187,'Can add example certificate set',64,'add_examplecertificateset'),(188,'Can change example certificate set',64,'change_examplecertificateset'),(189,'Can delete example certificate set',64,'delete_examplecertificateset'),(190,'Can add example certificate',65,'add_examplecertificate'),(191,'Can change example certificate',65,'change_examplecertificate'),(192,'Can delete example certificate',65,'delete_examplecertificate'),(193,'Can add certificate generation course setting',66,'add_certificategenerationcoursesetting'),(194,'Can change certificate generation course setting',66,'change_certificategenerationcoursesetting'),(195,'Can delete certificate generation course setting',66,'delete_certificategenerationcoursesetting'),(196,'Can add certificate generation configuration',67,'add_certificategenerationconfiguration'),(197,'Can change certificate generation configuration',67,'change_certificategenerationconfiguration'),(198,'Can delete certificate generation configuration',67,'delete_certificategenerationconfiguration'),(199,'Can add certificate html view configuration',68,'add_certificatehtmlviewconfiguration'),(200,'Can change certificate html view configuration',68,'change_certificatehtmlviewconfiguration'),(201,'Can delete certificate html view configuration',68,'delete_certificatehtmlviewconfiguration'),(202,'Can add certificate template',69,'add_certificatetemplate'),(203,'Can change certificate template',69,'change_certificatetemplate'),(204,'Can delete certificate template',69,'delete_certificatetemplate'),(205,'Can add certificate template asset',70,'add_certificatetemplateasset'),(206,'Can change certificate template asset',70,'change_certificatetemplateasset'),(207,'Can delete certificate template asset',70,'delete_certificatetemplateasset'),(208,'Can add instructor task',71,'add_instructortask'),(209,'Can change instructor task',71,'change_instructortask'),(210,'Can delete instructor task',71,'delete_instructortask'),(211,'Can add course user group',72,'add_courseusergroup'),(212,'Can change course user group',72,'change_courseusergroup'),(213,'Can delete course user group',72,'delete_courseusergroup'),(214,'Can add cohort membership',73,'add_cohortmembership'),(215,'Can change cohort membership',73,'change_cohortmembership'),(216,'Can delete cohort membership',73,'delete_cohortmembership'),(217,'Can add course user group partition group',74,'add_courseusergrouppartitiongroup'),(218,'Can change course user group partition group',74,'change_courseusergrouppartitiongroup'),(219,'Can delete course user group partition group',74,'delete_courseusergrouppartitiongroup'),(220,'Can add course cohorts settings',75,'add_coursecohortssettings'),(221,'Can change course cohorts settings',75,'change_coursecohortssettings'),(222,'Can delete course cohorts settings',75,'delete_coursecohortssettings'),(223,'Can add course cohort',76,'add_coursecohort'),(224,'Can change course cohort',76,'change_coursecohort'),(225,'Can delete course cohort',76,'delete_coursecohort'),(226,'Can add target',77,'add_target'),(227,'Can change target',77,'change_target'),(228,'Can delete target',77,'delete_target'),(229,'Can add cohort target',78,'add_cohorttarget'),(230,'Can change cohort target',78,'change_cohorttarget'),(231,'Can delete cohort target',78,'delete_cohorttarget'),(232,'Can add course email',79,'add_courseemail'),(233,'Can change course email',79,'change_courseemail'),(234,'Can delete course email',79,'delete_courseemail'),(235,'Can add optout',80,'add_optout'),(236,'Can change optout',80,'change_optout'),(237,'Can delete optout',80,'delete_optout'),(238,'Can add course email template',81,'add_courseemailtemplate'),(239,'Can change course email template',81,'change_courseemailtemplate'),(240,'Can delete course email template',81,'delete_courseemailtemplate'),(241,'Can add course authorization',82,'add_courseauthorization'),(242,'Can change course authorization',82,'change_courseauthorization'),(243,'Can delete course authorization',82,'delete_courseauthorization'),(244,'Can add bulk email flag',83,'add_bulkemailflag'),(245,'Can change bulk email flag',83,'change_bulkemailflag'),(246,'Can delete bulk email flag',83,'delete_bulkemailflag'),(247,'Can add branding info config',84,'add_brandinginfoconfig'),(248,'Can change branding info config',84,'change_brandinginfoconfig'),(249,'Can delete branding info config',84,'delete_brandinginfoconfig'),(250,'Can add branding api config',85,'add_brandingapiconfig'),(251,'Can change branding api config',85,'change_brandingapiconfig'),(252,'Can delete branding api config',85,'delete_brandingapiconfig'),(253,'Can add visible blocks',86,'add_visibleblocks'),(254,'Can change visible blocks',86,'change_visibleblocks'),(255,'Can delete visible blocks',86,'delete_visibleblocks'),(256,'Can add persistent subsection grade',87,'add_persistentsubsectiongrade'),(257,'Can change persistent subsection grade',87,'change_persistentsubsectiongrade'),(258,'Can delete persistent subsection grade',87,'delete_persistentsubsectiongrade'),(259,'Can add persistent course grade',88,'add_persistentcoursegrade'),(260,'Can change persistent course grade',88,'change_persistentcoursegrade'),(261,'Can delete persistent course grade',88,'delete_persistentcoursegrade'),(262,'Can add persistent grades enabled flag',89,'add_persistentgradesenabledflag'),(263,'Can change persistent grades enabled flag',89,'change_persistentgradesenabledflag'),(264,'Can delete persistent grades enabled flag',89,'delete_persistentgradesenabledflag'),(265,'Can add course persistent grades flag',90,'add_coursepersistentgradesflag'),(266,'Can change course persistent grades flag',90,'change_coursepersistentgradesflag'),(267,'Can delete course persistent grades flag',90,'delete_coursepersistentgradesflag'),(268,'Can add external auth map',91,'add_externalauthmap'),(269,'Can change external auth map',91,'change_externalauthmap'),(270,'Can delete external auth map',91,'delete_externalauthmap'),(271,'Can add nonce',92,'add_nonce'),(272,'Can change nonce',92,'change_nonce'),(273,'Can delete nonce',92,'delete_nonce'),(274,'Can add association',93,'add_association'),(275,'Can change association',93,'change_association'),(276,'Can delete association',93,'delete_association'),(277,'Can add user open id',94,'add_useropenid'),(278,'Can change user open id',94,'change_useropenid'),(279,'Can delete user open id',94,'delete_useropenid'),(280,'The OpenID has been verified',94,'account_verified'),(281,'Can add client',95,'add_client'),(282,'Can change client',95,'change_client'),(283,'Can delete client',95,'delete_client'),(284,'Can add grant',96,'add_grant'),(285,'Can change grant',96,'change_grant'),(286,'Can delete grant',96,'delete_grant'),(287,'Can add access token',97,'add_accesstoken'),(288,'Can change access token',97,'change_accesstoken'),(289,'Can delete access token',97,'delete_accesstoken'),(290,'Can add refresh token',98,'add_refreshtoken'),(291,'Can change refresh token',98,'change_refreshtoken'),(292,'Can delete refresh token',98,'delete_refreshtoken'),(293,'Can add trusted client',99,'add_trustedclient'),(294,'Can change trusted client',99,'change_trustedclient'),(295,'Can delete trusted client',99,'delete_trustedclient'),(296,'Can add application',100,'add_application'),(297,'Can change application',100,'change_application'),(298,'Can delete application',100,'delete_application'),(299,'Can add grant',101,'add_grant'),(300,'Can change grant',101,'change_grant'),(301,'Can delete grant',101,'delete_grant'),(302,'Can add access token',102,'add_accesstoken'),(303,'Can change access token',102,'change_accesstoken'),(304,'Can delete access token',102,'delete_accesstoken'),(305,'Can add refresh token',103,'add_refreshtoken'),(306,'Can change refresh token',103,'change_refreshtoken'),(307,'Can delete refresh token',103,'delete_refreshtoken'),(308,'Can add restricted application',104,'add_restrictedapplication'),(309,'Can change restricted application',104,'change_restrictedapplication'),(310,'Can delete restricted application',104,'delete_restrictedapplication'),(311,'Can add Provider Configuration (OAuth)',105,'add_oauth2providerconfig'),(312,'Can change Provider Configuration (OAuth)',105,'change_oauth2providerconfig'),(313,'Can delete Provider Configuration (OAuth)',105,'delete_oauth2providerconfig'),(314,'Can add Provider Configuration (SAML IdP)',106,'add_samlproviderconfig'),(315,'Can change Provider Configuration (SAML IdP)',106,'change_samlproviderconfig'),(316,'Can delete Provider Configuration (SAML IdP)',106,'delete_samlproviderconfig'),(317,'Can add SAML Configuration',107,'add_samlconfiguration'),(318,'Can change SAML Configuration',107,'change_samlconfiguration'),(319,'Can delete SAML Configuration',107,'delete_samlconfiguration'),(320,'Can add SAML Provider Data',108,'add_samlproviderdata'),(321,'Can change SAML Provider Data',108,'change_samlproviderdata'),(322,'Can delete SAML Provider Data',108,'delete_samlproviderdata'),(323,'Can add Provider Configuration (LTI)',109,'add_ltiproviderconfig'),(324,'Can change Provider Configuration (LTI)',109,'change_ltiproviderconfig'),(325,'Can delete Provider Configuration (LTI)',109,'delete_ltiproviderconfig'),(326,'Can add Provider API Permission',110,'add_providerapipermissions'),(327,'Can change Provider API Permission',110,'change_providerapipermissions'),(328,'Can delete Provider API Permission',110,'delete_providerapipermissions'),(329,'Can add nonce',111,'add_nonce'),(330,'Can change nonce',111,'change_nonce'),(331,'Can delete nonce',111,'delete_nonce'),(332,'Can add scope',112,'add_scope'),(333,'Can change scope',112,'change_scope'),(334,'Can delete scope',112,'delete_scope'),(335,'Can add resource',112,'add_resource'),(336,'Can change resource',112,'change_resource'),(337,'Can delete resource',112,'delete_resource'),(338,'Can add consumer',113,'add_consumer'),(339,'Can change consumer',113,'change_consumer'),(340,'Can delete consumer',113,'delete_consumer'),(341,'Can add token',114,'add_token'),(342,'Can change token',114,'change_token'),(343,'Can delete token',114,'delete_token'),(344,'Can add article',116,'add_article'),(345,'Can change article',116,'change_article'),(346,'Can delete article',116,'delete_article'),(347,'Can edit all articles and lock/unlock/restore',116,'moderate'),(348,'Can change ownership of any article',116,'assign'),(349,'Can assign permissions to other users',116,'grant'),(350,'Can add Article for object',117,'add_articleforobject'),(351,'Can change Article for object',117,'change_articleforobject'),(352,'Can delete Article for object',117,'delete_articleforobject'),(353,'Can add article revision',118,'add_articlerevision'),(354,'Can change article revision',118,'change_articlerevision'),(355,'Can delete article revision',118,'delete_articlerevision'),(356,'Can add URL path',119,'add_urlpath'),(357,'Can change URL path',119,'change_urlpath'),(358,'Can delete URL path',119,'delete_urlpath'),(359,'Can add article plugin',120,'add_articleplugin'),(360,'Can change article plugin',120,'change_articleplugin'),(361,'Can delete article plugin',120,'delete_articleplugin'),(362,'Can add reusable plugin',121,'add_reusableplugin'),(363,'Can change reusable plugin',121,'change_reusableplugin'),(364,'Can delete reusable plugin',121,'delete_reusableplugin'),(365,'Can add simple plugin',122,'add_simpleplugin'),(366,'Can change simple plugin',122,'change_simpleplugin'),(367,'Can delete simple plugin',122,'delete_simpleplugin'),(368,'Can add revision plugin',123,'add_revisionplugin'),(369,'Can change revision plugin',123,'change_revisionplugin'),(370,'Can delete revision plugin',123,'delete_revisionplugin'),(371,'Can add revision plugin revision',124,'add_revisionpluginrevision'),(372,'Can change revision plugin revision',124,'change_revisionpluginrevision'),(373,'Can delete revision plugin revision',124,'delete_revisionpluginrevision'),(374,'Can add image',125,'add_image'),(375,'Can change image',125,'change_image'),(376,'Can delete image',125,'delete_image'),(377,'Can add image revision',126,'add_imagerevision'),(378,'Can change image revision',126,'change_imagerevision'),(379,'Can delete image revision',126,'delete_imagerevision'),(380,'Can add attachment',127,'add_attachment'),(381,'Can change attachment',127,'change_attachment'),(382,'Can delete attachment',127,'delete_attachment'),(383,'Can add attachment revision',128,'add_attachmentrevision'),(384,'Can change attachment revision',128,'change_attachmentrevision'),(385,'Can delete attachment revision',128,'delete_attachmentrevision'),(386,'Can add type',129,'add_notificationtype'),(387,'Can change type',129,'change_notificationtype'),(388,'Can delete type',129,'delete_notificationtype'),(389,'Can add settings',130,'add_settings'),(390,'Can change settings',130,'change_settings'),(391,'Can delete settings',130,'delete_settings'),(392,'Can add subscription',131,'add_subscription'),(393,'Can change subscription',131,'change_subscription'),(394,'Can delete subscription',131,'delete_subscription'),(395,'Can add notification',132,'add_notification'),(396,'Can change notification',132,'change_notification'),(397,'Can delete notification',132,'delete_notification'),(398,'Can add log entry',133,'add_logentry'),(399,'Can change log entry',133,'change_logentry'),(400,'Can delete log entry',133,'delete_logentry'),(401,'Can add role',134,'add_role'),(402,'Can change role',134,'change_role'),(403,'Can delete role',134,'delete_role'),(404,'Can add permission',135,'add_permission'),(405,'Can change permission',135,'change_permission'),(406,'Can delete permission',135,'delete_permission'),(407,'Can add forums config',136,'add_forumsconfig'),(408,'Can change forums config',136,'change_forumsconfig'),(409,'Can delete forums config',136,'delete_forumsconfig'),(410,'Can add note',137,'add_note'),(411,'Can change note',137,'change_note'),(412,'Can delete note',137,'delete_note'),(413,'Can add splash config',138,'add_splashconfig'),(414,'Can change splash config',138,'change_splashconfig'),(415,'Can delete splash config',138,'delete_splashconfig'),(416,'Can add user preference',139,'add_userpreference'),(417,'Can change user preference',139,'change_userpreference'),(418,'Can delete user preference',139,'delete_userpreference'),(419,'Can add user course tag',140,'add_usercoursetag'),(420,'Can change user course tag',140,'change_usercoursetag'),(421,'Can delete user course tag',140,'delete_usercoursetag'),(422,'Can add user org tag',141,'add_userorgtag'),(423,'Can change user org tag',141,'change_userorgtag'),(424,'Can delete user org tag',141,'delete_userorgtag'),(425,'Can add order',142,'add_order'),(426,'Can change order',142,'change_order'),(427,'Can delete order',142,'delete_order'),(428,'Can add order item',143,'add_orderitem'),(429,'Can change order item',143,'change_orderitem'),(430,'Can delete order item',143,'delete_orderitem'),(431,'Can add invoice',144,'add_invoice'),(432,'Can change invoice',144,'change_invoice'),(433,'Can delete invoice',144,'delete_invoice'),(434,'Can add invoice transaction',145,'add_invoicetransaction'),(435,'Can change invoice transaction',145,'change_invoicetransaction'),(436,'Can delete invoice transaction',145,'delete_invoicetransaction'),(437,'Can add invoice item',146,'add_invoiceitem'),(438,'Can change invoice item',146,'change_invoiceitem'),(439,'Can delete invoice item',146,'delete_invoiceitem'),(440,'Can add course registration code invoice item',147,'add_courseregistrationcodeinvoiceitem'),(441,'Can change course registration code invoice item',147,'change_courseregistrationcodeinvoiceitem'),(442,'Can delete course registration code invoice item',147,'delete_courseregistrationcodeinvoiceitem'),(443,'Can add invoice history',148,'add_invoicehistory'),(444,'Can change invoice history',148,'change_invoicehistory'),(445,'Can delete invoice history',148,'delete_invoicehistory'),(446,'Can add course registration code',149,'add_courseregistrationcode'),(447,'Can change course registration code',149,'change_courseregistrationcode'),(448,'Can delete course registration code',149,'delete_courseregistrationcode'),(449,'Can add registration code redemption',150,'add_registrationcoderedemption'),(450,'Can change registration code redemption',150,'change_registrationcoderedemption'),(451,'Can delete registration code redemption',150,'delete_registrationcoderedemption'),(452,'Can add coupon',151,'add_coupon'),(453,'Can change coupon',151,'change_coupon'),(454,'Can delete coupon',151,'delete_coupon'),(455,'Can add coupon redemption',152,'add_couponredemption'),(456,'Can change coupon redemption',152,'change_couponredemption'),(457,'Can delete coupon redemption',152,'delete_couponredemption'),(458,'Can add paid course registration',153,'add_paidcourseregistration'),(459,'Can change paid course registration',153,'change_paidcourseregistration'),(460,'Can delete paid course registration',153,'delete_paidcourseregistration'),(461,'Can add course reg code item',154,'add_courseregcodeitem'),(462,'Can change course reg code item',154,'change_courseregcodeitem'),(463,'Can delete course reg code item',154,'delete_courseregcodeitem'),(464,'Can add course reg code item annotation',155,'add_courseregcodeitemannotation'),(465,'Can change course reg code item annotation',155,'change_courseregcodeitemannotation'),(466,'Can delete course reg code item annotation',155,'delete_courseregcodeitemannotation'),(467,'Can add paid course registration annotation',156,'add_paidcourseregistrationannotation'),(468,'Can change paid course registration annotation',156,'change_paidcourseregistrationannotation'),(469,'Can delete paid course registration annotation',156,'delete_paidcourseregistrationannotation'),(470,'Can add certificate item',157,'add_certificateitem'),(471,'Can change certificate item',157,'change_certificateitem'),(472,'Can delete certificate item',157,'delete_certificateitem'),(473,'Can add donation configuration',158,'add_donationconfiguration'),(474,'Can change donation configuration',158,'change_donationconfiguration'),(475,'Can delete donation configuration',158,'delete_donationconfiguration'),(476,'Can add donation',159,'add_donation'),(477,'Can change donation',159,'change_donation'),(478,'Can delete donation',159,'delete_donation'),(479,'Can add course mode',160,'add_coursemode'),(480,'Can change course mode',160,'change_coursemode'),(481,'Can delete course mode',160,'delete_coursemode'),(482,'Can add course modes archive',161,'add_coursemodesarchive'),(483,'Can change course modes archive',161,'change_coursemodesarchive'),(484,'Can delete course modes archive',161,'delete_coursemodesarchive'),(485,'Can add course mode expiration config',162,'add_coursemodeexpirationconfig'),(486,'Can change course mode expiration config',162,'change_coursemodeexpirationconfig'),(487,'Can delete course mode expiration config',162,'delete_coursemodeexpirationconfig'),(488,'Can add software secure photo verification',163,'add_softwaresecurephotoverification'),(489,'Can change software secure photo verification',163,'change_softwaresecurephotoverification'),(490,'Can delete software secure photo verification',163,'delete_softwaresecurephotoverification'),(491,'Can add historical verification deadline',164,'add_historicalverificationdeadline'),(492,'Can change historical verification deadline',164,'change_historicalverificationdeadline'),(493,'Can delete historical verification deadline',164,'delete_historicalverificationdeadline'),(494,'Can add verification deadline',165,'add_verificationdeadline'),(495,'Can change verification deadline',165,'change_verificationdeadline'),(496,'Can delete verification deadline',165,'delete_verificationdeadline'),(497,'Can add verification checkpoint',166,'add_verificationcheckpoint'),(498,'Can change verification checkpoint',166,'change_verificationcheckpoint'),(499,'Can delete verification checkpoint',166,'delete_verificationcheckpoint'),(500,'Can add Verification Status',167,'add_verificationstatus'),(501,'Can change Verification Status',167,'change_verificationstatus'),(502,'Can delete Verification Status',167,'delete_verificationstatus'),(503,'Can add in course reverification configuration',168,'add_incoursereverificationconfiguration'),(504,'Can change in course reverification configuration',168,'change_incoursereverificationconfiguration'),(505,'Can delete in course reverification configuration',168,'delete_incoursereverificationconfiguration'),(506,'Can add icrv status emails configuration',169,'add_icrvstatusemailsconfiguration'),(507,'Can change icrv status emails configuration',169,'change_icrvstatusemailsconfiguration'),(508,'Can delete icrv status emails configuration',169,'delete_icrvstatusemailsconfiguration'),(509,'Can add skipped reverification',170,'add_skippedreverification'),(510,'Can change skipped reverification',170,'change_skippedreverification'),(511,'Can delete skipped reverification',170,'delete_skippedreverification'),(512,'Can add dark lang config',171,'add_darklangconfig'),(513,'Can change dark lang config',171,'change_darklangconfig'),(514,'Can delete dark lang config',171,'delete_darklangconfig'),(515,'Can add microsite',172,'add_microsite'),(516,'Can change microsite',172,'change_microsite'),(517,'Can delete microsite',172,'delete_microsite'),(518,'Can add microsite history',173,'add_micrositehistory'),(519,'Can change microsite history',173,'change_micrositehistory'),(520,'Can delete microsite history',173,'delete_micrositehistory'),(521,'Can add historical microsite organization mapping',174,'add_historicalmicrositeorganizationmapping'),(522,'Can change historical microsite organization mapping',174,'change_historicalmicrositeorganizationmapping'),(523,'Can delete historical microsite organization mapping',174,'delete_historicalmicrositeorganizationmapping'),(524,'Can add microsite organization mapping',175,'add_micrositeorganizationmapping'),(525,'Can change microsite organization mapping',175,'change_micrositeorganizationmapping'),(526,'Can delete microsite organization mapping',175,'delete_micrositeorganizationmapping'),(527,'Can add historical microsite template',176,'add_historicalmicrositetemplate'),(528,'Can change historical microsite template',176,'change_historicalmicrositetemplate'),(529,'Can delete historical microsite template',176,'delete_historicalmicrositetemplate'),(530,'Can add microsite template',177,'add_micrositetemplate'),(531,'Can change microsite template',177,'change_micrositetemplate'),(532,'Can delete microsite template',177,'delete_micrositetemplate'),(533,'Can add whitelisted rss url',178,'add_whitelistedrssurl'),(534,'Can change whitelisted rss url',178,'change_whitelistedrssurl'),(535,'Can delete whitelisted rss url',178,'delete_whitelistedrssurl'),(536,'Can add embargoed course',179,'add_embargoedcourse'),(537,'Can change embargoed course',179,'change_embargoedcourse'),(538,'Can delete embargoed course',179,'delete_embargoedcourse'),(539,'Can add embargoed state',180,'add_embargoedstate'),(540,'Can change embargoed state',180,'change_embargoedstate'),(541,'Can delete embargoed state',180,'delete_embargoedstate'),(542,'Can add restricted course',181,'add_restrictedcourse'),(543,'Can change restricted course',181,'change_restrictedcourse'),(544,'Can delete restricted course',181,'delete_restrictedcourse'),(545,'Can add country',182,'add_country'),(546,'Can change country',182,'change_country'),(547,'Can delete country',182,'delete_country'),(548,'Can add country access rule',183,'add_countryaccessrule'),(549,'Can change country access rule',183,'change_countryaccessrule'),(550,'Can delete country access rule',183,'delete_countryaccessrule'),(551,'Can add course access rule history',184,'add_courseaccessrulehistory'),(552,'Can change course access rule history',184,'change_courseaccessrulehistory'),(553,'Can delete course access rule history',184,'delete_courseaccessrulehistory'),(554,'Can add ip filter',185,'add_ipfilter'),(555,'Can change ip filter',185,'change_ipfilter'),(556,'Can delete ip filter',185,'delete_ipfilter'),(557,'Can add course rerun state',186,'add_coursererunstate'),(558,'Can change course rerun state',186,'change_coursererunstate'),(559,'Can delete course rerun state',186,'delete_coursererunstate'),(560,'Can add mobile api config',187,'add_mobileapiconfig'),(561,'Can change mobile api config',187,'change_mobileapiconfig'),(562,'Can delete mobile api config',187,'delete_mobileapiconfig'),(563,'Can add app version config',188,'add_appversionconfig'),(564,'Can change app version config',188,'change_appversionconfig'),(565,'Can delete app version config',188,'delete_appversionconfig'),(566,'Can add user social auth',189,'add_usersocialauth'),(567,'Can change user social auth',189,'change_usersocialauth'),(568,'Can delete user social auth',189,'delete_usersocialauth'),(569,'Can add nonce',190,'add_nonce'),(570,'Can change nonce',190,'change_nonce'),(571,'Can delete nonce',190,'delete_nonce'),(572,'Can add association',191,'add_association'),(573,'Can change association',191,'change_association'),(574,'Can delete association',191,'delete_association'),(575,'Can add code',192,'add_code'),(576,'Can change code',192,'change_code'),(577,'Can delete code',192,'delete_code'),(578,'Can add survey form',193,'add_surveyform'),(579,'Can change survey form',193,'change_surveyform'),(580,'Can delete survey form',193,'delete_surveyform'),(581,'Can add survey answer',194,'add_surveyanswer'),(582,'Can change survey answer',194,'change_surveyanswer'),(583,'Can delete survey answer',194,'delete_surveyanswer'),(584,'Can add x block asides config',195,'add_xblockasidesconfig'),(585,'Can change x block asides config',195,'change_xblockasidesconfig'),(586,'Can delete x block asides config',195,'delete_xblockasidesconfig'),(587,'Can add course overview',196,'add_courseoverview'),(588,'Can change course overview',196,'change_courseoverview'),(589,'Can delete course overview',196,'delete_courseoverview'),(590,'Can add course overview tab',197,'add_courseoverviewtab'),(591,'Can change course overview tab',197,'change_courseoverviewtab'),(592,'Can delete course overview tab',197,'delete_courseoverviewtab'),(593,'Can add course overview image set',198,'add_courseoverviewimageset'),(594,'Can change course overview image set',198,'change_courseoverviewimageset'),(595,'Can delete course overview image set',198,'delete_courseoverviewimageset'),(596,'Can add course overview image config',199,'add_courseoverviewimageconfig'),(597,'Can change course overview image config',199,'change_courseoverviewimageconfig'),(598,'Can delete course overview image config',199,'delete_courseoverviewimageconfig'),(599,'Can add course structure',200,'add_coursestructure'),(600,'Can change course structure',200,'change_coursestructure'),(601,'Can delete course structure',200,'delete_coursestructure'),(602,'Can add cors model',201,'add_corsmodel'),(603,'Can change cors model',201,'change_corsmodel'),(604,'Can delete cors model',201,'delete_corsmodel'),(605,'Can add x domain proxy configuration',202,'add_xdomainproxyconfiguration'),(606,'Can change x domain proxy configuration',202,'change_xdomainproxyconfiguration'),(607,'Can delete x domain proxy configuration',202,'delete_xdomainproxyconfiguration'),(608,'Can add commerce configuration',203,'add_commerceconfiguration'),(609,'Can change commerce configuration',203,'change_commerceconfiguration'),(610,'Can delete commerce configuration',203,'delete_commerceconfiguration'),(611,'Can add credit provider',204,'add_creditprovider'),(612,'Can change credit provider',204,'change_creditprovider'),(613,'Can delete credit provider',204,'delete_creditprovider'),(614,'Can add credit course',205,'add_creditcourse'),(615,'Can change credit course',205,'change_creditcourse'),(616,'Can delete credit course',205,'delete_creditcourse'),(617,'Can add credit requirement',206,'add_creditrequirement'),(618,'Can change credit requirement',206,'change_creditrequirement'),(619,'Can delete credit requirement',206,'delete_creditrequirement'),(620,'Can add historical credit requirement status',207,'add_historicalcreditrequirementstatus'),(621,'Can change historical credit requirement status',207,'change_historicalcreditrequirementstatus'),(622,'Can delete historical credit requirement status',207,'delete_historicalcreditrequirementstatus'),(623,'Can add credit requirement status',208,'add_creditrequirementstatus'),(624,'Can change credit requirement status',208,'change_creditrequirementstatus'),(625,'Can delete credit requirement status',208,'delete_creditrequirementstatus'),(626,'Can add credit eligibility',209,'add_crediteligibility'),(627,'Can change credit eligibility',209,'change_crediteligibility'),(628,'Can delete credit eligibility',209,'delete_crediteligibility'),(629,'Can add historical credit request',210,'add_historicalcreditrequest'),(630,'Can change historical credit request',210,'change_historicalcreditrequest'),(631,'Can delete historical credit request',210,'delete_historicalcreditrequest'),(632,'Can add credit request',211,'add_creditrequest'),(633,'Can change credit request',211,'change_creditrequest'),(634,'Can delete credit request',211,'delete_creditrequest'),(635,'Can add credit config',212,'add_creditconfig'),(636,'Can change credit config',212,'change_creditconfig'),(637,'Can delete credit config',212,'delete_creditconfig'),(638,'Can add course team',213,'add_courseteam'),(639,'Can change course team',213,'change_courseteam'),(640,'Can delete course team',213,'delete_courseteam'),(641,'Can add course team membership',214,'add_courseteammembership'),(642,'Can change course team membership',214,'change_courseteammembership'),(643,'Can delete course team membership',214,'delete_courseteammembership'),(644,'Can add x block configuration',215,'add_xblockconfiguration'),(645,'Can change x block configuration',215,'change_xblockconfiguration'),(646,'Can delete x block configuration',215,'delete_xblockconfiguration'),(647,'Can add x block studio configuration flag',216,'add_xblockstudioconfigurationflag'),(648,'Can change x block studio configuration flag',216,'change_xblockstudioconfigurationflag'),(649,'Can delete x block studio configuration flag',216,'delete_xblockstudioconfigurationflag'),(650,'Can add x block studio configuration',217,'add_xblockstudioconfiguration'),(651,'Can change x block studio configuration',217,'change_xblockstudioconfiguration'),(652,'Can delete x block studio configuration',217,'delete_xblockstudioconfiguration'),(653,'Can add bookmark',218,'add_bookmark'),(654,'Can change bookmark',218,'change_bookmark'),(655,'Can delete bookmark',218,'delete_bookmark'),(656,'Can add x block cache',219,'add_xblockcache'),(657,'Can change x block cache',219,'change_xblockcache'),(658,'Can delete x block cache',219,'delete_xblockcache'),(659,'Can add programs api config',220,'add_programsapiconfig'),(660,'Can change programs api config',220,'change_programsapiconfig'),(661,'Can delete programs api config',220,'delete_programsapiconfig'),(662,'Can add catalog integration',221,'add_catalogintegration'),(663,'Can change catalog integration',221,'change_catalogintegration'),(664,'Can delete catalog integration',221,'delete_catalogintegration'),(665,'Can add self paced configuration',222,'add_selfpacedconfiguration'),(666,'Can change self paced configuration',222,'change_selfpacedconfiguration'),(667,'Can delete self paced configuration',222,'delete_selfpacedconfiguration'),(668,'Can add kv store',223,'add_kvstore'),(669,'Can change kv store',223,'change_kvstore'),(670,'Can delete kv store',223,'delete_kvstore'),(671,'Can add credentials api config',224,'add_credentialsapiconfig'),(672,'Can change credentials api config',224,'change_credentialsapiconfig'),(673,'Can delete credentials api config',224,'delete_credentialsapiconfig'),(674,'Can add milestone',225,'add_milestone'),(675,'Can change milestone',225,'change_milestone'),(676,'Can delete milestone',225,'delete_milestone'),(677,'Can add milestone relationship type',226,'add_milestonerelationshiptype'),(678,'Can change milestone relationship type',226,'change_milestonerelationshiptype'),(679,'Can delete milestone relationship type',226,'delete_milestonerelationshiptype'),(680,'Can add course milestone',227,'add_coursemilestone'),(681,'Can change course milestone',227,'change_coursemilestone'),(682,'Can delete course milestone',227,'delete_coursemilestone'),(683,'Can add course content milestone',228,'add_coursecontentmilestone'),(684,'Can change course content milestone',228,'change_coursecontentmilestone'),(685,'Can delete course content milestone',228,'delete_coursecontentmilestone'),(686,'Can add user milestone',229,'add_usermilestone'),(687,'Can change user milestone',229,'change_usermilestone'),(688,'Can delete user milestone',229,'delete_usermilestone'),(689,'Can add course talk widget configuration',230,'add_coursetalkwidgetconfiguration'),(690,'Can change course talk widget configuration',230,'change_coursetalkwidgetconfiguration'),(691,'Can delete course talk widget configuration',230,'delete_coursetalkwidgetconfiguration'),(692,'Can add historical api access request',231,'add_historicalapiaccessrequest'),(693,'Can change historical api access request',231,'change_historicalapiaccessrequest'),(694,'Can delete historical api access request',231,'delete_historicalapiaccessrequest'),(695,'Can add api access request',1,'add_apiaccessrequest'),(696,'Can change api access request',1,'change_apiaccessrequest'),(697,'Can delete api access request',1,'delete_apiaccessrequest'),(698,'Can add api access config',232,'add_apiaccessconfig'),(699,'Can change api access config',232,'change_apiaccessconfig'),(700,'Can delete api access config',232,'delete_apiaccessconfig'),(701,'Can add catalog',233,'add_catalog'),(702,'Can change catalog',233,'change_catalog'),(703,'Can delete catalog',233,'delete_catalog'),(704,'Can add verified track cohorted course',234,'add_verifiedtrackcohortedcourse'),(705,'Can change verified track cohorted course',234,'change_verifiedtrackcohortedcourse'),(706,'Can delete verified track cohorted course',234,'delete_verifiedtrackcohortedcourse'),(707,'Can add badge class',235,'add_badgeclass'),(708,'Can change badge class',235,'change_badgeclass'),(709,'Can delete badge class',235,'delete_badgeclass'),(710,'Can add badge assertion',236,'add_badgeassertion'),(711,'Can change badge assertion',236,'change_badgeassertion'),(712,'Can delete badge assertion',236,'delete_badgeassertion'),(713,'Can add course complete image configuration',237,'add_coursecompleteimageconfiguration'),(714,'Can change course complete image configuration',237,'change_coursecompleteimageconfiguration'),(715,'Can delete course complete image configuration',237,'delete_coursecompleteimageconfiguration'),(716,'Can add course event badges configuration',238,'add_courseeventbadgesconfiguration'),(717,'Can change course event badges configuration',238,'change_courseeventbadgesconfiguration'),(718,'Can delete course event badges configuration',238,'delete_courseeventbadgesconfiguration'),(719,'Can add email marketing configuration',239,'add_emailmarketingconfiguration'),(720,'Can change email marketing configuration',239,'change_emailmarketingconfiguration'),(721,'Can delete email marketing configuration',239,'delete_emailmarketingconfiguration'),(722,'Can add answer',240,'add_answer'),(723,'Can change answer',240,'change_answer'),(724,'Can delete answer',240,'delete_answer'),(725,'Can add answer',241,'add_answer'),(726,'Can change answer',241,'change_answer'),(727,'Can delete answer',241,'delete_answer'),(728,'Can add share',242,'add_share'),(729,'Can change share',242,'change_share'),(730,'Can delete share',242,'delete_share'),(731,'Can add student item',243,'add_studentitem'),(732,'Can change student item',243,'change_studentitem'),(733,'Can delete student item',243,'delete_studentitem'),(734,'Can add submission',244,'add_submission'),(735,'Can change submission',244,'change_submission'),(736,'Can delete submission',244,'delete_submission'),(737,'Can add score',245,'add_score'),(738,'Can change score',245,'change_score'),(739,'Can delete score',245,'delete_score'),(740,'Can add score summary',246,'add_scoresummary'),(741,'Can change score summary',246,'change_scoresummary'),(742,'Can delete score summary',246,'delete_scoresummary'),(743,'Can add score annotation',247,'add_scoreannotation'),(744,'Can change score annotation',247,'change_scoreannotation'),(745,'Can delete score annotation',247,'delete_scoreannotation'),(746,'Can add rubric',248,'add_rubric'),(747,'Can change rubric',248,'change_rubric'),(748,'Can delete rubric',248,'delete_rubric'),(749,'Can add criterion',249,'add_criterion'),(750,'Can change criterion',249,'change_criterion'),(751,'Can delete criterion',249,'delete_criterion'),(752,'Can add criterion option',250,'add_criterionoption'),(753,'Can change criterion option',250,'change_criterionoption'),(754,'Can delete criterion option',250,'delete_criterionoption'),(755,'Can add assessment',251,'add_assessment'),(756,'Can change assessment',251,'change_assessment'),(757,'Can delete assessment',251,'delete_assessment'),(758,'Can add assessment part',252,'add_assessmentpart'),(759,'Can change assessment part',252,'change_assessmentpart'),(760,'Can delete assessment part',252,'delete_assessmentpart'),(761,'Can add assessment feedback option',253,'add_assessmentfeedbackoption'),(762,'Can change assessment feedback option',253,'change_assessmentfeedbackoption'),(763,'Can delete assessment feedback option',253,'delete_assessmentfeedbackoption'),(764,'Can add assessment feedback',254,'add_assessmentfeedback'),(765,'Can change assessment feedback',254,'change_assessmentfeedback'),(766,'Can delete assessment feedback',254,'delete_assessmentfeedback'),(767,'Can add peer workflow',255,'add_peerworkflow'),(768,'Can change peer workflow',255,'change_peerworkflow'),(769,'Can delete peer workflow',255,'delete_peerworkflow'),(770,'Can add peer workflow item',256,'add_peerworkflowitem'),(771,'Can change peer workflow item',256,'change_peerworkflowitem'),(772,'Can delete peer workflow item',256,'delete_peerworkflowitem'),(773,'Can add training example',257,'add_trainingexample'),(774,'Can change training example',257,'change_trainingexample'),(775,'Can delete training example',257,'delete_trainingexample'),(776,'Can add student training workflow',258,'add_studenttrainingworkflow'),(777,'Can change student training workflow',258,'change_studenttrainingworkflow'),(778,'Can delete student training workflow',258,'delete_studenttrainingworkflow'),(779,'Can add student training workflow item',259,'add_studenttrainingworkflowitem'),(780,'Can change student training workflow item',259,'change_studenttrainingworkflowitem'),(781,'Can delete student training workflow item',259,'delete_studenttrainingworkflowitem'),(782,'Can add ai classifier set',260,'add_aiclassifierset'),(783,'Can change ai classifier set',260,'change_aiclassifierset'),(784,'Can delete ai classifier set',260,'delete_aiclassifierset'),(785,'Can add ai classifier',261,'add_aiclassifier'),(786,'Can change ai classifier',261,'change_aiclassifier'),(787,'Can delete ai classifier',261,'delete_aiclassifier'),(788,'Can add ai training workflow',262,'add_aitrainingworkflow'),(789,'Can change ai training workflow',262,'change_aitrainingworkflow'),(790,'Can delete ai training workflow',262,'delete_aitrainingworkflow'),(791,'Can add ai grading workflow',263,'add_aigradingworkflow'),(792,'Can change ai grading workflow',263,'change_aigradingworkflow'),(793,'Can delete ai grading workflow',263,'delete_aigradingworkflow'),(794,'Can add staff workflow',264,'add_staffworkflow'),(795,'Can change staff workflow',264,'change_staffworkflow'),(796,'Can delete staff workflow',264,'delete_staffworkflow'),(797,'Can add assessment workflow',265,'add_assessmentworkflow'),(798,'Can change assessment workflow',265,'change_assessmentworkflow'),(799,'Can delete assessment workflow',265,'delete_assessmentworkflow'),(800,'Can add assessment workflow step',266,'add_assessmentworkflowstep'),(801,'Can change assessment workflow step',266,'change_assessmentworkflowstep'),(802,'Can delete assessment workflow step',266,'delete_assessmentworkflowstep'),(803,'Can add assessment workflow cancellation',267,'add_assessmentworkflowcancellation'),(804,'Can change assessment workflow cancellation',267,'change_assessmentworkflowcancellation'),(805,'Can delete assessment workflow cancellation',267,'delete_assessmentworkflowcancellation'),(806,'Can add profile',268,'add_profile'),(807,'Can change profile',268,'change_profile'),(808,'Can delete profile',268,'delete_profile'),(809,'Can add video',269,'add_video'),(810,'Can change video',269,'change_video'),(811,'Can delete video',269,'delete_video'),(812,'Can add course video',270,'add_coursevideo'),(813,'Can change course video',270,'change_coursevideo'),(814,'Can delete course video',270,'delete_coursevideo'),(815,'Can add encoded video',271,'add_encodedvideo'),(816,'Can change encoded video',271,'change_encodedvideo'),(817,'Can delete encoded video',271,'delete_encodedvideo'),(818,'Can add subtitle',272,'add_subtitle'),(819,'Can change subtitle',272,'change_subtitle'),(820,'Can delete subtitle',272,'delete_subtitle'),(821,'Can add proctored exam',273,'add_proctoredexam'),(822,'Can change proctored exam',273,'change_proctoredexam'),(823,'Can delete proctored exam',273,'delete_proctoredexam'),(824,'Can add Proctored exam review policy',274,'add_proctoredexamreviewpolicy'),(825,'Can change Proctored exam review policy',274,'change_proctoredexamreviewpolicy'),(826,'Can delete Proctored exam review policy',274,'delete_proctoredexamreviewpolicy'),(827,'Can add proctored exam review policy history',275,'add_proctoredexamreviewpolicyhistory'),(828,'Can change proctored exam review policy history',275,'change_proctoredexamreviewpolicyhistory'),(829,'Can delete proctored exam review policy history',275,'delete_proctoredexamreviewpolicyhistory'),(830,'Can add proctored exam attempt',276,'add_proctoredexamstudentattempt'),(831,'Can change proctored exam attempt',276,'change_proctoredexamstudentattempt'),(832,'Can delete proctored exam attempt',276,'delete_proctoredexamstudentattempt'),(833,'Can add proctored exam attempt history',277,'add_proctoredexamstudentattempthistory'),(834,'Can change proctored exam attempt history',277,'change_proctoredexamstudentattempthistory'),(835,'Can delete proctored exam attempt history',277,'delete_proctoredexamstudentattempthistory'),(836,'Can add proctored allowance',278,'add_proctoredexamstudentallowance'),(837,'Can change proctored allowance',278,'change_proctoredexamstudentallowance'),(838,'Can delete proctored allowance',278,'delete_proctoredexamstudentallowance'),(839,'Can add proctored allowance history',279,'add_proctoredexamstudentallowancehistory'),(840,'Can change proctored allowance history',279,'change_proctoredexamstudentallowancehistory'),(841,'Can delete proctored allowance history',279,'delete_proctoredexamstudentallowancehistory'),(842,'Can add Proctored exam software secure review',280,'add_proctoredexamsoftwaresecurereview'),(843,'Can change Proctored exam software secure review',280,'change_proctoredexamsoftwaresecurereview'),(844,'Can delete Proctored exam software secure review',280,'delete_proctoredexamsoftwaresecurereview'),(845,'Can add Proctored exam review archive',281,'add_proctoredexamsoftwaresecurereviewhistory'),(846,'Can change Proctored exam review archive',281,'change_proctoredexamsoftwaresecurereviewhistory'),(847,'Can delete Proctored exam review archive',281,'delete_proctoredexamsoftwaresecurereviewhistory'),(848,'Can add proctored exam software secure comment',282,'add_proctoredexamsoftwaresecurecomment'),(849,'Can change proctored exam software secure comment',282,'change_proctoredexamsoftwaresecurecomment'),(850,'Can delete proctored exam software secure comment',282,'delete_proctoredexamsoftwaresecurecomment'),(851,'Can add organization',283,'add_organization'),(852,'Can change organization',283,'change_organization'),(853,'Can delete organization',283,'delete_organization'),(854,'Can add Link Course',284,'add_organizationcourse'),(855,'Can change Link Course',284,'change_organizationcourse'),(856,'Can delete Link Course',284,'delete_organizationcourse'),(857,'Can add historical Enterprise Customer',285,'add_historicalenterprisecustomer'),(858,'Can change historical Enterprise Customer',285,'change_historicalenterprisecustomer'),(859,'Can delete historical Enterprise Customer',285,'delete_historicalenterprisecustomer'),(860,'Can add Enterprise Customer',286,'add_enterprisecustomer'),(861,'Can change Enterprise Customer',286,'change_enterprisecustomer'),(862,'Can delete Enterprise Customer',286,'delete_enterprisecustomer'),(863,'Can add Enterprise Customer User',287,'add_enterprisecustomeruser'),(864,'Can change Enterprise Customer User',287,'change_enterprisecustomeruser'),(865,'Can delete Enterprise Customer User',287,'delete_enterprisecustomeruser'),(866,'Can add pending enterprise customer user',288,'add_pendingenterprisecustomeruser'),(867,'Can change pending enterprise customer user',288,'change_pendingenterprisecustomeruser'),(868,'Can delete pending enterprise customer user',288,'delete_pendingenterprisecustomeruser'),(869,'Can add Branding Configuration',289,'add_enterprisecustomerbrandingconfiguration'),(870,'Can change Branding Configuration',289,'change_enterprisecustomerbrandingconfiguration'),(871,'Can delete Branding Configuration',289,'delete_enterprisecustomerbrandingconfiguration'),(872,'Can add enterprise customer identity provider',290,'add_enterprisecustomeridentityprovider'),(873,'Can change enterprise customer identity provider',290,'change_enterprisecustomeridentityprovider'),(874,'Can delete enterprise customer identity provider',290,'delete_enterprisecustomeridentityprovider'),(875,'Can add historical Data Sharing Consent Audit State',291,'add_historicaluserdatasharingconsentaudit'),(876,'Can change historical Data Sharing Consent Audit State',291,'change_historicaluserdatasharingconsentaudit'),(877,'Can delete historical Data Sharing Consent Audit State',291,'delete_historicaluserdatasharingconsentaudit'),(878,'Can add Data Sharing Consent Audit State',292,'add_userdatasharingconsentaudit'),(879,'Can change Data Sharing Consent Audit State',292,'change_userdatasharingconsentaudit'),(880,'Can delete Data Sharing Consent Audit State',292,'delete_userdatasharingconsentaudit'),(881,'Can add student module history extended',293,'add_studentmodulehistoryextended'),(882,'Can change student module history extended',293,'change_studentmodulehistoryextended'),(883,'Can delete student module history extended',293,'delete_studentmodulehistoryextended'),(884,'Can add video upload config',294,'add_videouploadconfig'),(885,'Can change video upload config',294,'change_videouploadconfig'),(886,'Can delete video upload config',294,'delete_videouploadconfig'),(887,'Can add push notification config',295,'add_pushnotificationconfig'),(888,'Can change push notification config',295,'change_pushnotificationconfig'),(889,'Can delete push notification config',295,'delete_pushnotificationconfig'),(890,'Can add course creator',296,'add_coursecreator'),(891,'Can change course creator',296,'change_coursecreator'),(892,'Can delete course creator',296,'delete_coursecreator'),(893,'Can add studio config',297,'add_studioconfig'),(894,'Can change studio config',297,'change_studioconfig'),(895,'Can delete studio config',297,'delete_studioconfig'),(896,'Can add tag categories',298,'add_tagcategories'),(897,'Can change tag categories',298,'change_tagcategories'),(898,'Can delete tag categories',298,'delete_tagcategories'),(899,'Can add tag available values',299,'add_tagavailablevalues'),(900,'Can change tag available values',299,'change_tagavailablevalues'),(901,'Can delete tag available values',299,'delete_tagavailablevalues'),(902,'Can add user task status',300,'add_usertaskstatus'),(903,'Can change user task status',300,'change_usertaskstatus'),(904,'Can delete user task status',300,'delete_usertaskstatus'),(905,'Can add user task artifact',301,'add_usertaskartifact'),(906,'Can change user task artifact',301,'change_usertaskartifact'),(907,'Can delete user task artifact',301,'delete_usertaskartifact'),(908,'Can add flag',302,'add_flag'),(909,'Can change flag',302,'change_flag'),(910,'Can delete flag',302,'delete_flag'),(911,'Can add switch',303,'add_switch'),(912,'Can change switch',303,'change_switch'),(913,'Can delete switch',303,'delete_switch'),(914,'Can add sample',304,'add_sample'),(915,'Can change sample',304,'change_sample'),(916,'Can delete sample',304,'delete_sample'),(917,'Can deactivate, but NOT delete users',36,'can_deactivate_users'),(918,'Can add course mode target',305,'add_coursemodetarget'),(919,'Can change course mode target',305,'change_coursemodetarget'),(920,'Can delete course mode target',305,'delete_coursemodetarget'),(921,'Can add ignore mobile available flag config',306,'add_ignoremobileavailableflagconfig'),(922,'Can change ignore mobile available flag config',306,'change_ignoremobileavailableflagconfig'),(923,'Can delete ignore mobile available flag config',306,'delete_ignoremobileavailableflagconfig'),(924,'Can add user social auth',307,'add_usersocialauth'),(925,'Can change user social auth',307,'change_usersocialauth'),(926,'Can delete user social auth',307,'delete_usersocialauth'),(927,'Can add nonce',308,'add_nonce'),(928,'Can change nonce',308,'change_nonce'),(929,'Can delete nonce',308,'delete_nonce'),(930,'Can add association',309,'add_association'),(931,'Can change association',309,'change_association'),(932,'Can delete association',309,'delete_association'),(933,'Can add code',310,'add_code'),(934,'Can change code',310,'change_code'),(935,'Can delete code',310,'delete_code'),(936,'Can add failed task',311,'add_failedtask'),(937,'Can change failed task',311,'change_failedtask'),(938,'Can delete failed task',311,'delete_failedtask'),(939,'Can add crawlers config',312,'add_crawlersconfig'),(940,'Can change crawlers config',312,'change_crawlersconfig'),(941,'Can delete crawlers config',312,'delete_crawlersconfig'),(942,'Can add pending enrollment',313,'add_pendingenrollment'),(943,'Can change pending enrollment',313,'change_pendingenrollment'),(944,'Can delete pending enrollment',313,'delete_pendingenrollment'),(945,'Can add historical Enterprise Customer Entitlement',314,'add_historicalenterprisecustomerentitlement'),(946,'Can change historical Enterprise Customer Entitlement',314,'change_historicalenterprisecustomerentitlement'),(947,'Can delete historical Enterprise Customer Entitlement',314,'delete_historicalenterprisecustomerentitlement'),(948,'Can add Enterprise Customer Entitlement',315,'add_enterprisecustomerentitlement'),(949,'Can change Enterprise Customer Entitlement',315,'change_enterprisecustomerentitlement'),(950,'Can delete Enterprise Customer Entitlement',315,'delete_enterprisecustomerentitlement'),(951,'Can add historical enterprise course enrollment',316,'add_historicalenterprisecourseenrollment'),(952,'Can change historical enterprise course enrollment',316,'change_historicalenterprisecourseenrollment'),(953,'Can delete historical enterprise course enrollment',316,'delete_historicalenterprisecourseenrollment'),(954,'Can add enterprise course enrollment',317,'add_enterprisecourseenrollment'),(955,'Can change enterprise course enrollment',317,'change_enterprisecourseenrollment'),(956,'Can delete enterprise course enrollment',317,'delete_enterprisecourseenrollment'),(957,'Can add historical enrollment notification email template',318,'add_historicalenrollmentnotificationemailtemplate'),(958,'Can change historical enrollment notification email template',318,'change_historicalenrollmentnotificationemailtemplate'),(959,'Can delete historical enrollment notification email template',318,'delete_historicalenrollmentnotificationemailtemplate'),(960,'Can add enrollment notification email template',319,'add_enrollmentnotificationemailtemplate'),(961,'Can change enrollment notification email template',319,'change_enrollmentnotificationemailtemplate'),(962,'Can delete enrollment notification email template',319,'delete_enrollmentnotificationemailtemplate'),(963,'Can add grade report setting',320,'add_gradereportsetting'),(964,'Can change grade report setting',320,'change_gradereportsetting'),(965,'Can delete grade report setting',320,'delete_gradereportsetting'),(966,'Can add compute grades setting',321,'add_computegradessetting'),(967,'Can change compute grades setting',321,'change_computegradessetting'),(968,'Can delete compute grades setting',321,'delete_computegradessetting'),(969,'Can add block structure configuration',322,'add_blockstructureconfiguration'),(970,'Can change block structure configuration',322,'change_blockstructureconfiguration'),(971,'Can delete block structure configuration',322,'delete_blockstructureconfiguration'),(972,'Can add block structure model',323,'add_blockstructuremodel'),(973,'Can change block structure model',323,'change_blockstructuremodel'),(974,'Can delete block structure model',323,'delete_blockstructuremodel'),(975,'Can add hls playback enabled flag',324,'add_hlsplaybackenabledflag'),(976,'Can change hls playback enabled flag',324,'change_hlsplaybackenabledflag'),(977,'Can delete hls playback enabled flag',324,'delete_hlsplaybackenabledflag'),(978,'Can add course hls playback enabled flag',325,'add_coursehlsplaybackenabledflag'),(979,'Can change course hls playback enabled flag',325,'change_coursehlsplaybackenabledflag'),(980,'Can delete course hls playback enabled flag',325,'delete_coursehlsplaybackenabledflag'),(981,'Can add Waffle flag course override',326,'add_waffleflagcourseoverridemodel'),(982,'Can change Waffle flag course override',326,'change_waffleflagcourseoverridemodel'),(983,'Can delete Waffle flag course override',326,'delete_waffleflagcourseoverridemodel'),(984,'Can add Enterprise Integrated Channel',327,'add_enterpriseintegratedchannel'),(985,'Can change Enterprise Integrated Channel',327,'change_enterpriseintegratedchannel'),(986,'Can delete Enterprise Integrated Channel',327,'delete_enterpriseintegratedchannel'),(987,'Can add sap success factors global configuration',328,'add_sapsuccessfactorsglobalconfiguration'),(988,'Can change sap success factors global configuration',328,'change_sapsuccessfactorsglobalconfiguration'),(989,'Can delete sap success factors global configuration',328,'delete_sapsuccessfactorsglobalconfiguration'),(990,'Can add historical sap success factors enterprise customer configuration',329,'add_historicalsapsuccessfactorsenterprisecustomerconfiguration'),(991,'Can change historical sap success factors enterprise customer configuration',329,'change_historicalsapsuccessfactorsenterprisecustomerconfiguration'),(992,'Can delete historical sap success factors enterprise customer configuration',329,'delete_historicalsapsuccessfactorsenterprisecustomerconfiguration'),(993,'Can add sap success factors enterprise customer configuration',330,'add_sapsuccessfactorsenterprisecustomerconfiguration'),(994,'Can change sap success factors enterprise customer configuration',330,'change_sapsuccessfactorsenterprisecustomerconfiguration'),(995,'Can delete sap success factors enterprise customer configuration',330,'delete_sapsuccessfactorsenterprisecustomerconfiguration'),(996,'Can add learner data transmission audit',331,'add_learnerdatatransmissionaudit'),(997,'Can change learner data transmission audit',331,'change_learnerdatatransmissionaudit'),(998,'Can delete learner data transmission audit',331,'delete_learnerdatatransmissionaudit'),(999,'Can add catalog transmission audit',332,'add_catalogtransmissionaudit'),(1000,'Can change catalog transmission audit',332,'change_catalogtransmissionaudit'),(1001,'Can delete catalog transmission audit',332,'delete_catalogtransmissionaudit'),(1002,'Can add course edit lti fields enabled flag',333,'add_courseeditltifieldsenabledflag'),(1003,'Can change course edit lti fields enabled flag',333,'change_courseeditltifieldsenabledflag'),(1004,'Can delete course edit lti fields enabled flag',333,'delete_courseeditltifieldsenabledflag'),(1005,'Can add course discussion settings',334,'add_coursediscussionsettings'),(1006,'Can change course discussion settings',334,'change_coursediscussionsettings'),(1007,'Can delete course discussion settings',334,'delete_coursediscussionsettings'),(1008,'Can add Experiment Data',335,'add_experimentdata'),(1009,'Can change Experiment Data',335,'change_experimentdata'),(1010,'Can delete Experiment Data',335,'delete_experimentdata'),(1011,'Can add unregistered learner cohort assignments',336,'add_unregisteredlearnercohortassignments'),(1012,'Can change unregistered learner cohort assignments',336,'change_unregisteredlearnercohortassignments'),(1013,'Can delete unregistered learner cohort assignments',336,'delete_unregisteredlearnercohortassignments'),(1014,'Can add user social auth',337,'add_usersocialauth'),(1015,'Can change user social auth',337,'change_usersocialauth'),(1016,'Can delete user social auth',337,'delete_usersocialauth'),(1017,'Can add nonce',338,'add_nonce'),(1018,'Can change nonce',338,'change_nonce'),(1019,'Can delete nonce',338,'delete_nonce'),(1020,'Can add association',339,'add_association'),(1021,'Can change association',339,'change_association'),(1022,'Can delete association',339,'delete_association'),(1023,'Can add code',340,'add_code'),(1024,'Can change code',340,'change_code'),(1025,'Can delete code',340,'delete_code'),(1026,'Can add partial',341,'add_partial'),(1027,'Can change partial',341,'change_partial'),(1028,'Can delete partial',341,'delete_partial'),(1029,'Can add chord data',342,'add_chorddata'),(1030,'Can change chord data',342,'change_chorddata'),(1031,'Can delete chord data',342,'delete_chorddata'),(1032,'Can add video transcript enabled flag',343,'add_videotranscriptenabledflag'),(1033,'Can change video transcript enabled flag',343,'change_videotranscriptenabledflag'),(1034,'Can delete video transcript enabled flag',343,'delete_videotranscriptenabledflag'),(1035,'Can add course video transcript enabled flag',344,'add_coursevideotranscriptenabledflag'),(1036,'Can change course video transcript enabled flag',344,'change_coursevideotranscriptenabledflag'),(1037,'Can delete course video transcript enabled flag',344,'delete_coursevideotranscriptenabledflag'),(1038,'Can add video pipeline integration',345,'add_videopipelineintegration'),(1039,'Can change video pipeline integration',345,'change_videopipelineintegration'),(1040,'Can delete video pipeline integration',345,'delete_videopipelineintegration'),(1041,'Can add video uploads enabled by default',346,'add_videouploadsenabledbydefault'),(1042,'Can change video uploads enabled by default',346,'change_videouploadsenabledbydefault'),(1043,'Can delete video uploads enabled by default',346,'delete_videouploadsenabledbydefault'),(1044,'Can add course video uploads enabled by default',347,'add_coursevideouploadsenabledbydefault'),(1045,'Can change course video uploads enabled by default',347,'change_coursevideouploadsenabledbydefault'),(1046,'Can delete course video uploads enabled by default',347,'delete_coursevideouploadsenabledbydefault'),(1047,'Can add dynamic upgrade deadline configuration',348,'add_dynamicupgradedeadlineconfiguration'),(1048,'Can change dynamic upgrade deadline configuration',348,'change_dynamicupgradedeadlineconfiguration'),(1049,'Can delete dynamic upgrade deadline configuration',348,'delete_dynamicupgradedeadlineconfiguration'),(1050,'Can add course dynamic upgrade deadline configuration',349,'add_coursedynamicupgradedeadlineconfiguration'),(1051,'Can change course dynamic upgrade deadline configuration',349,'change_coursedynamicupgradedeadlineconfiguration'),(1052,'Can delete course dynamic upgrade deadline configuration',349,'delete_coursedynamicupgradedeadlineconfiguration'),(1053,'Can add org dynamic upgrade deadline configuration',350,'add_orgdynamicupgradedeadlineconfiguration'),(1054,'Can change org dynamic upgrade deadline configuration',350,'change_orgdynamicupgradedeadlineconfiguration'),(1055,'Can delete org dynamic upgrade deadline configuration',350,'delete_orgdynamicupgradedeadlineconfiguration'),(1056,'Can add social link',351,'add_sociallink'),(1057,'Can change social link',351,'change_sociallink'),(1058,'Can delete social link',351,'delete_sociallink'),(1059,'Can add course entitlement policy',352,'add_courseentitlementpolicy'),(1060,'Can change course entitlement policy',352,'change_courseentitlementpolicy'),(1061,'Can delete course entitlement policy',352,'delete_courseentitlementpolicy'),(1062,'Can add course entitlement',353,'add_courseentitlement'),(1063,'Can change course entitlement',353,'change_courseentitlement'),(1064,'Can delete course entitlement',353,'delete_courseentitlement'),(1065,'Can add video image',354,'add_videoimage'),(1066,'Can change video image',354,'change_videoimage'),(1067,'Can delete video image',354,'delete_videoimage'),(1068,'Can add video transcript',355,'add_videotranscript'),(1069,'Can change video transcript',355,'change_videotranscript'),(1070,'Can delete video transcript',355,'delete_videotranscript'),(1071,'Can add transcript preference',356,'add_transcriptpreference'),(1072,'Can change transcript preference',356,'change_transcriptpreference'),(1073,'Can delete transcript preference',356,'delete_transcriptpreference'),(1074,'Can add third party transcript credentials state',357,'add_thirdpartytranscriptcredentialsstate'),(1075,'Can change third party transcript credentials state',357,'change_thirdpartytranscriptcredentialsstate'),(1076,'Can delete third party transcript credentials state',357,'delete_thirdpartytranscriptcredentialsstate'),(1077,'Can add migrate verified track cohorts setting',358,'add_migrateverifiedtrackcohortssetting'),(1078,'Can change migrate verified track cohorts setting',358,'change_migrateverifiedtrackcohortssetting'),(1079,'Can delete migrate verified track cohorts setting',358,'delete_migrateverifiedtrackcohortssetting'),(1080,'Can add course goal',359,'add_coursegoal'),(1081,'Can change course goal',359,'change_coursegoal'),(1082,'Can delete course goal',359,'delete_coursegoal'),(1083,'Can add block completion',360,'add_blockcompletion'),(1084,'Can change block completion',360,'change_blockcompletion'),(1085,'Can delete block completion',360,'delete_blockcompletion'),(1086,'Can add Experiment Key-Value Pair',361,'add_experimentkeyvalue'),(1087,'Can change Experiment Key-Value Pair',361,'change_experimentkeyvalue'),(1088,'Can delete Experiment Key-Value Pair',361,'delete_experimentkeyvalue'),(1089,'Can add historical Enterprise Customer Catalog',362,'add_historicalenterprisecustomercatalog'),(1090,'Can change historical Enterprise Customer Catalog',362,'change_historicalenterprisecustomercatalog'),(1091,'Can delete historical Enterprise Customer Catalog',362,'delete_historicalenterprisecustomercatalog'),(1092,'Can add Enterprise Customer Catalog',363,'add_enterprisecustomercatalog'),(1093,'Can change Enterprise Customer Catalog',363,'change_enterprisecustomercatalog'),(1094,'Can delete Enterprise Customer Catalog',363,'delete_enterprisecustomercatalog'),(1095,'Can add enterprise customer reporting configuration',364,'add_enterprisecustomerreportingconfiguration'),(1096,'Can change enterprise customer reporting configuration',364,'change_enterprisecustomerreportingconfiguration'),(1097,'Can delete enterprise customer reporting configuration',364,'delete_enterprisecustomerreportingconfiguration'),(1098,'Can add historical Data Sharing Consent Record',365,'add_historicaldatasharingconsent'),(1099,'Can change historical Data Sharing Consent Record',365,'change_historicaldatasharingconsent'),(1100,'Can delete historical Data Sharing Consent Record',365,'delete_historicaldatasharingconsent'),(1101,'Can add Data Sharing Consent Record',366,'add_datasharingconsent'),(1102,'Can change Data Sharing Consent Record',366,'change_datasharingconsent'),(1103,'Can delete Data Sharing Consent Record',366,'delete_datasharingconsent'),(1104,'Can add learner data transmission audit',367,'add_learnerdatatransmissionaudit'),(1105,'Can change learner data transmission audit',367,'change_learnerdatatransmissionaudit'),(1106,'Can delete learner data transmission audit',367,'delete_learnerdatatransmissionaudit'),(1107,'Can add catalog transmission audit',368,'add_catalogtransmissionaudit'),(1108,'Can change catalog transmission audit',368,'change_catalogtransmissionaudit'),(1109,'Can delete catalog transmission audit',368,'delete_catalogtransmissionaudit'),(1110,'Can add degreed global configuration',369,'add_degreedglobalconfiguration'),(1111,'Can change degreed global configuration',369,'change_degreedglobalconfiguration'),(1112,'Can delete degreed global configuration',369,'delete_degreedglobalconfiguration'),(1113,'Can add historical degreed enterprise customer configuration',370,'add_historicaldegreedenterprisecustomerconfiguration'),(1114,'Can change historical degreed enterprise customer configuration',370,'change_historicaldegreedenterprisecustomerconfiguration'),(1115,'Can delete historical degreed enterprise customer configuration',370,'delete_historicaldegreedenterprisecustomerconfiguration'),(1116,'Can add degreed enterprise customer configuration',371,'add_degreedenterprisecustomerconfiguration'),(1117,'Can change degreed enterprise customer configuration',371,'change_degreedenterprisecustomerconfiguration'),(1118,'Can delete degreed enterprise customer configuration',371,'delete_degreedenterprisecustomerconfiguration'),(1119,'Can add degreed learner data transmission audit',372,'add_degreedlearnerdatatransmissionaudit'),(1120,'Can change degreed learner data transmission audit',372,'change_degreedlearnerdatatransmissionaudit'),(1121,'Can delete degreed learner data transmission audit',372,'delete_degreedlearnerdatatransmissionaudit'),(1122,'Can add sap success factors learner data transmission audit',373,'add_sapsuccessfactorslearnerdatatransmissionaudit'),(1123,'Can change sap success factors learner data transmission audit',373,'change_sapsuccessfactorslearnerdatatransmissionaudit'),(1124,'Can delete sap success factors learner data transmission audit',373,'delete_sapsuccessfactorslearnerdatatransmissionaudit'),(1125,'Can add persistent subsection grade override',374,'add_persistentsubsectiongradeoverride'),(1126,'Can change persistent subsection grade override',374,'change_persistentsubsectiongradeoverride'),(1127,'Can delete persistent subsection grade override',374,'delete_persistentsubsectiongradeoverride'),(1128,'Can add Schedule',375,'add_schedule'),(1129,'Can change Schedule',375,'change_schedule'),(1130,'Can delete Schedule',375,'delete_schedule'),(1131,'Can add schedule config',376,'add_scheduleconfig'),(1132,'Can change schedule config',376,'change_scheduleconfig'),(1133,'Can delete schedule config',376,'delete_scheduleconfig'),(1134,'Can add schedule experience',377,'add_scheduleexperience'),(1135,'Can change schedule experience',377,'change_scheduleexperience'),(1136,'Can delete schedule experience',377,'delete_scheduleexperience'),(1137,'Can add new assets page flag',378,'add_newassetspageflag'),(1138,'Can change new assets page flag',378,'change_newassetspageflag'),(1139,'Can delete new assets page flag',378,'delete_newassetspageflag'),(1140,'Can add course new assets page flag',379,'add_coursenewassetspageflag'),(1141,'Can change course new assets page flag',379,'change_coursenewassetspageflag'),(1142,'Can delete course new assets page flag',379,'delete_coursenewassetspageflag'); +INSERT INTO `auth_permission` VALUES (1,'Can add permission',2,'add_permission'),(2,'Can change permission',2,'change_permission'),(3,'Can delete permission',2,'delete_permission'),(4,'Can view permission',2,'view_permission'),(5,'Can add group',3,'add_group'),(6,'Can change group',3,'change_group'),(7,'Can delete group',3,'delete_group'),(8,'Can view group',3,'view_group'),(9,'Can add user',4,'add_user'),(10,'Can change user',4,'change_user'),(11,'Can delete user',4,'delete_user'),(12,'Can view user',4,'view_user'),(13,'Can add content type',5,'add_contenttype'),(14,'Can change content type',5,'change_contenttype'),(15,'Can delete content type',5,'delete_contenttype'),(16,'Can view content type',5,'view_contenttype'),(17,'Can add redirect',6,'add_redirect'),(18,'Can change redirect',6,'change_redirect'),(19,'Can delete redirect',6,'delete_redirect'),(20,'Can view redirect',6,'view_redirect'),(21,'Can add session',7,'add_session'),(22,'Can change session',7,'change_session'),(23,'Can delete session',7,'delete_session'),(24,'Can view session',7,'view_session'),(25,'Can add site',8,'add_site'),(26,'Can change site',8,'change_site'),(27,'Can delete site',8,'delete_site'),(28,'Can view site',8,'view_site'),(29,'Can add task result',9,'add_taskresult'),(30,'Can change task result',9,'change_taskresult'),(31,'Can delete task result',9,'delete_taskresult'),(32,'Can view task result',9,'view_taskresult'),(33,'Can add chord counter',10,'add_chordcounter'),(34,'Can change chord counter',10,'change_chordcounter'),(35,'Can delete chord counter',10,'delete_chordcounter'),(36,'Can view chord counter',10,'view_chordcounter'),(37,'Can add group result',11,'add_groupresult'),(38,'Can change group result',11,'change_groupresult'),(39,'Can delete group result',11,'delete_groupresult'),(40,'Can view group result',11,'view_groupresult'),(41,'Can add Flag',12,'add_flag'),(42,'Can change Flag',12,'change_flag'),(43,'Can delete Flag',12,'delete_flag'),(44,'Can view Flag',12,'view_flag'),(45,'Can add Sample',13,'add_sample'),(46,'Can change Sample',13,'change_sample'),(47,'Can delete Sample',13,'delete_sample'),(48,'Can view Sample',13,'view_sample'),(49,'Can add Switch',14,'add_switch'),(50,'Can change Switch',14,'change_switch'),(51,'Can delete Switch',14,'delete_switch'),(52,'Can view Switch',14,'view_switch'),(53,'Can add course message',15,'add_coursemessage'),(54,'Can change course message',15,'change_coursemessage'),(55,'Can delete course message',15,'delete_coursemessage'),(56,'Can view course message',15,'view_coursemessage'),(57,'Can add global status message',16,'add_globalstatusmessage'),(58,'Can change global status message',16,'change_globalstatusmessage'),(59,'Can delete global status message',16,'delete_globalstatusmessage'),(60,'Can view global status message',16,'view_globalstatusmessage'),(61,'Can add asset base url config',17,'add_assetbaseurlconfig'),(62,'Can change asset base url config',17,'change_assetbaseurlconfig'),(63,'Can delete asset base url config',17,'delete_assetbaseurlconfig'),(64,'Can view asset base url config',17,'view_assetbaseurlconfig'),(65,'Can add asset excluded extensions config',18,'add_assetexcludedextensionsconfig'),(66,'Can change asset excluded extensions config',18,'change_assetexcludedextensionsconfig'),(67,'Can delete asset excluded extensions config',18,'delete_assetexcludedextensionsconfig'),(68,'Can view asset excluded extensions config',18,'view_assetexcludedextensionsconfig'),(69,'Can add course asset cache ttl config',19,'add_courseassetcachettlconfig'),(70,'Can change course asset cache ttl config',19,'change_courseassetcachettlconfig'),(71,'Can delete course asset cache ttl config',19,'delete_courseassetcachettlconfig'),(72,'Can view course asset cache ttl config',19,'view_courseassetcachettlconfig'),(73,'Can add cdn user agents config',20,'add_cdnuseragentsconfig'),(74,'Can change cdn user agents config',20,'change_cdnuseragentsconfig'),(75,'Can delete cdn user agents config',20,'delete_cdnuseragentsconfig'),(76,'Can view cdn user agents config',20,'view_cdnuseragentsconfig'),(77,'Can add site configuration',21,'add_siteconfiguration'),(78,'Can change site configuration',21,'change_siteconfiguration'),(79,'Can delete site configuration',21,'delete_siteconfiguration'),(80,'Can view site configuration',21,'view_siteconfiguration'),(81,'Can add site configuration history',22,'add_siteconfigurationhistory'),(82,'Can change site configuration history',22,'change_siteconfigurationhistory'),(83,'Can delete site configuration history',22,'delete_siteconfigurationhistory'),(84,'Can view site configuration history',22,'view_siteconfigurationhistory'),(85,'Can add course hls playback enabled flag',23,'add_coursehlsplaybackenabledflag'),(86,'Can change course hls playback enabled flag',23,'change_coursehlsplaybackenabledflag'),(87,'Can delete course hls playback enabled flag',23,'delete_coursehlsplaybackenabledflag'),(88,'Can view course hls playback enabled flag',23,'view_coursehlsplaybackenabledflag'),(89,'Can add hls playback enabled flag',24,'add_hlsplaybackenabledflag'),(90,'Can change hls playback enabled flag',24,'change_hlsplaybackenabledflag'),(91,'Can delete hls playback enabled flag',24,'delete_hlsplaybackenabledflag'),(92,'Can view hls playback enabled flag',24,'view_hlsplaybackenabledflag'),(93,'Can add course video transcript enabled flag',25,'add_coursevideotranscriptenabledflag'),(94,'Can change course video transcript enabled flag',25,'change_coursevideotranscriptenabledflag'),(95,'Can delete course video transcript enabled flag',25,'delete_coursevideotranscriptenabledflag'),(96,'Can view course video transcript enabled flag',25,'view_coursevideotranscriptenabledflag'),(97,'Can add video transcript enabled flag',26,'add_videotranscriptenabledflag'),(98,'Can change video transcript enabled flag',26,'change_videotranscriptenabledflag'),(99,'Can delete video transcript enabled flag',26,'delete_videotranscriptenabledflag'),(100,'Can view video transcript enabled flag',26,'view_videotranscriptenabledflag'),(101,'Can add transcript migration setting',27,'add_transcriptmigrationsetting'),(102,'Can change transcript migration setting',27,'change_transcriptmigrationsetting'),(103,'Can delete transcript migration setting',27,'delete_transcriptmigrationsetting'),(104,'Can view transcript migration setting',27,'view_transcriptmigrationsetting'),(105,'Can add migration enqueued course',28,'add_migrationenqueuedcourse'),(106,'Can change migration enqueued course',28,'change_migrationenqueuedcourse'),(107,'Can delete migration enqueued course',28,'delete_migrationenqueuedcourse'),(108,'Can view migration enqueued course',28,'view_migrationenqueuedcourse'),(109,'Can add updated course videos',29,'add_updatedcoursevideos'),(110,'Can change updated course videos',29,'change_updatedcoursevideos'),(111,'Can delete updated course videos',29,'delete_updatedcoursevideos'),(112,'Can view updated course videos',29,'view_updatedcoursevideos'),(113,'Can add video thumbnail setting',30,'add_videothumbnailsetting'),(114,'Can change video thumbnail setting',30,'change_videothumbnailsetting'),(115,'Can delete video thumbnail setting',30,'delete_videothumbnailsetting'),(116,'Can view video thumbnail setting',30,'view_videothumbnailsetting'),(117,'Can add course youtube blocked flag',31,'add_courseyoutubeblockedflag'),(118,'Can change course youtube blocked flag',31,'change_courseyoutubeblockedflag'),(119,'Can delete course youtube blocked flag',31,'delete_courseyoutubeblockedflag'),(120,'Can view course youtube blocked flag',31,'view_courseyoutubeblockedflag'),(121,'Can add course video uploads enabled by default',32,'add_coursevideouploadsenabledbydefault'),(122,'Can change course video uploads enabled by default',32,'change_coursevideouploadsenabledbydefault'),(123,'Can delete course video uploads enabled by default',32,'delete_coursevideouploadsenabledbydefault'),(124,'Can view course video uploads enabled by default',32,'view_coursevideouploadsenabledbydefault'),(125,'Can add video uploads enabled by default',33,'add_videouploadsenabledbydefault'),(126,'Can change video uploads enabled by default',33,'change_videouploadsenabledbydefault'),(127,'Can delete video uploads enabled by default',33,'delete_videouploadsenabledbydefault'),(128,'Can view video uploads enabled by default',33,'view_videouploadsenabledbydefault'),(129,'Can add vem pipeline integration',34,'add_vempipelineintegration'),(130,'Can change vem pipeline integration',34,'change_vempipelineintegration'),(131,'Can delete vem pipeline integration',34,'delete_vempipelineintegration'),(132,'Can view vem pipeline integration',34,'view_vempipelineintegration'),(133,'Can add offline computed grade',35,'add_offlinecomputedgrade'),(134,'Can change offline computed grade',35,'change_offlinecomputedgrade'),(135,'Can delete offline computed grade',35,'delete_offlinecomputedgrade'),(136,'Can view offline computed grade',35,'view_offlinecomputedgrade'),(137,'Can add offline computed grade log',36,'add_offlinecomputedgradelog'),(138,'Can change offline computed grade log',36,'change_offlinecomputedgradelog'),(139,'Can delete offline computed grade log',36,'delete_offlinecomputedgradelog'),(140,'Can view offline computed grade log',36,'view_offlinecomputedgradelog'),(141,'Can add student field override',37,'add_studentfieldoverride'),(142,'Can change student field override',37,'change_studentfieldoverride'),(143,'Can delete student field override',37,'delete_studentfieldoverride'),(144,'Can view student field override',37,'view_studentfieldoverride'),(145,'Can add student module',38,'add_studentmodule'),(146,'Can change student module',38,'change_studentmodule'),(147,'Can delete student module',38,'delete_studentmodule'),(148,'Can view student module',38,'view_studentmodule'),(149,'Can add student module history',39,'add_studentmodulehistory'),(150,'Can change student module history',39,'change_studentmodulehistory'),(151,'Can delete student module history',39,'delete_studentmodulehistory'),(152,'Can view student module history',39,'view_studentmodulehistory'),(153,'Can add x module student info field',40,'add_xmodulestudentinfofield'),(154,'Can change x module student info field',40,'change_xmodulestudentinfofield'),(155,'Can delete x module student info field',40,'delete_xmodulestudentinfofield'),(156,'Can view x module student info field',40,'view_xmodulestudentinfofield'),(157,'Can add x module student prefs field',41,'add_xmodulestudentprefsfield'),(158,'Can change x module student prefs field',41,'change_xmodulestudentprefsfield'),(159,'Can delete x module student prefs field',41,'delete_xmodulestudentprefsfield'),(160,'Can view x module student prefs field',41,'view_xmodulestudentprefsfield'),(161,'Can add x module user state summary field',42,'add_xmoduleuserstatesummaryfield'),(162,'Can change x module user state summary field',42,'change_xmoduleuserstatesummaryfield'),(163,'Can delete x module user state summary field',42,'delete_xmoduleuserstatesummaryfield'),(164,'Can view x module user state summary field',42,'view_xmoduleuserstatesummaryfield'),(165,'Can add course dynamic upgrade deadline configuration',43,'add_coursedynamicupgradedeadlineconfiguration'),(166,'Can change course dynamic upgrade deadline configuration',43,'change_coursedynamicupgradedeadlineconfiguration'),(167,'Can delete course dynamic upgrade deadline configuration',43,'delete_coursedynamicupgradedeadlineconfiguration'),(168,'Can view course dynamic upgrade deadline configuration',43,'view_coursedynamicupgradedeadlineconfiguration'),(169,'Can add dynamic upgrade deadline configuration',44,'add_dynamicupgradedeadlineconfiguration'),(170,'Can change dynamic upgrade deadline configuration',44,'change_dynamicupgradedeadlineconfiguration'),(171,'Can delete dynamic upgrade deadline configuration',44,'delete_dynamicupgradedeadlineconfiguration'),(172,'Can view dynamic upgrade deadline configuration',44,'view_dynamicupgradedeadlineconfiguration'),(173,'Can add org dynamic upgrade deadline configuration',45,'add_orgdynamicupgradedeadlineconfiguration'),(174,'Can change org dynamic upgrade deadline configuration',45,'change_orgdynamicupgradedeadlineconfiguration'),(175,'Can delete org dynamic upgrade deadline configuration',45,'delete_orgdynamicupgradedeadlineconfiguration'),(176,'Can view org dynamic upgrade deadline configuration',45,'view_orgdynamicupgradedeadlineconfiguration'),(177,'Can add last seen courseware timezone',46,'add_lastseencoursewaretimezone'),(178,'Can change last seen courseware timezone',46,'change_lastseencoursewaretimezone'),(179,'Can delete last seen courseware timezone',46,'delete_lastseencoursewaretimezone'),(180,'Can view last seen courseware timezone',46,'view_lastseencoursewaretimezone'),(181,'Can add financial assistance configuration',47,'add_financialassistanceconfiguration'),(182,'Can change financial assistance configuration',47,'change_financialassistanceconfiguration'),(183,'Can delete financial assistance configuration',47,'delete_financialassistanceconfiguration'),(184,'Can view financial assistance configuration',47,'view_financialassistanceconfiguration'),(185,'Can add student module history extended',48,'add_studentmodulehistoryextended'),(186,'Can change student module history extended',48,'change_studentmodulehistoryextended'),(187,'Can delete student module history extended',48,'delete_studentmodulehistoryextended'),(188,'Can view student module history extended',48,'view_studentmodulehistoryextended'),(189,'Can add anonymous user id',49,'add_anonymoususerid'),(190,'Can change anonymous user id',49,'change_anonymoususerid'),(191,'Can delete anonymous user id',49,'delete_anonymoususerid'),(192,'Can view anonymous user id',49,'view_anonymoususerid'),(193,'Can add course access role',50,'add_courseaccessrole'),(194,'Can change course access role',50,'change_courseaccessrole'),(195,'Can delete course access role',50,'delete_courseaccessrole'),(196,'Can view course access role',50,'view_courseaccessrole'),(197,'Can add course enrollment',51,'add_courseenrollment'),(198,'Can change course enrollment',51,'change_courseenrollment'),(199,'Can delete course enrollment',51,'delete_courseenrollment'),(200,'Can view course enrollment',51,'view_courseenrollment'),(201,'Can add course enrollment allowed',52,'add_courseenrollmentallowed'),(202,'Can change course enrollment allowed',52,'change_courseenrollmentallowed'),(203,'Can delete course enrollment allowed',52,'delete_courseenrollmentallowed'),(204,'Can view course enrollment allowed',52,'view_courseenrollmentallowed'),(205,'Can add course enrollment attribute',53,'add_courseenrollmentattribute'),(206,'Can change course enrollment attribute',53,'change_courseenrollmentattribute'),(207,'Can delete course enrollment attribute',53,'delete_courseenrollmentattribute'),(208,'Can view course enrollment attribute',53,'view_courseenrollmentattribute'),(209,'Can add dashboard configuration',54,'add_dashboardconfiguration'),(210,'Can change dashboard configuration',54,'change_dashboardconfiguration'),(211,'Can delete dashboard configuration',54,'delete_dashboardconfiguration'),(212,'Can view dashboard configuration',54,'view_dashboardconfiguration'),(213,'Can add enrollment refund configuration',55,'add_enrollmentrefundconfiguration'),(214,'Can change enrollment refund configuration',55,'change_enrollmentrefundconfiguration'),(215,'Can delete enrollment refund configuration',55,'delete_enrollmentrefundconfiguration'),(216,'Can view enrollment refund configuration',55,'view_enrollmentrefundconfiguration'),(217,'Can add entrance exam configuration',56,'add_entranceexamconfiguration'),(218,'Can change entrance exam configuration',56,'change_entranceexamconfiguration'),(219,'Can delete entrance exam configuration',56,'delete_entranceexamconfiguration'),(220,'Can view entrance exam configuration',56,'view_entranceexamconfiguration'),(221,'Can add language proficiency',57,'add_languageproficiency'),(222,'Can change language proficiency',57,'change_languageproficiency'),(223,'Can delete language proficiency',57,'delete_languageproficiency'),(224,'Can view language proficiency',57,'view_languageproficiency'),(225,'Can add linked in add to profile configuration',58,'add_linkedinaddtoprofileconfiguration'),(226,'Can change linked in add to profile configuration',58,'change_linkedinaddtoprofileconfiguration'),(227,'Can delete linked in add to profile configuration',58,'delete_linkedinaddtoprofileconfiguration'),(228,'Can view linked in add to profile configuration',58,'view_linkedinaddtoprofileconfiguration'),(229,'Can add Login Failure',59,'add_loginfailures'),(230,'Can change Login Failure',59,'change_loginfailures'),(231,'Can delete Login Failure',59,'delete_loginfailures'),(232,'Can view Login Failure',59,'view_loginfailures'),(233,'Can add manual enrollment audit',60,'add_manualenrollmentaudit'),(234,'Can change manual enrollment audit',60,'change_manualenrollmentaudit'),(235,'Can delete manual enrollment audit',60,'delete_manualenrollmentaudit'),(236,'Can view manual enrollment audit',60,'view_manualenrollmentaudit'),(237,'Can add pending email change',61,'add_pendingemailchange'),(238,'Can change pending email change',61,'change_pendingemailchange'),(239,'Can delete pending email change',61,'delete_pendingemailchange'),(240,'Can view pending email change',61,'view_pendingemailchange'),(241,'Can add pending name change',62,'add_pendingnamechange'),(242,'Can change pending name change',62,'change_pendingnamechange'),(243,'Can delete pending name change',62,'delete_pendingnamechange'),(244,'Can view pending name change',62,'view_pendingnamechange'),(245,'Can add registration',63,'add_registration'),(246,'Can change registration',63,'change_registration'),(247,'Can delete registration',63,'delete_registration'),(248,'Can view registration',63,'view_registration'),(249,'Can add user profile',64,'add_userprofile'),(250,'Can change user profile',64,'change_userprofile'),(251,'Can delete user profile',64,'delete_userprofile'),(252,'Can view user profile',64,'view_userprofile'),(253,'Can deactivate, but NOT delete users',64,'can_deactivate_users'),(254,'Can add user signup source',65,'add_usersignupsource'),(255,'Can change user signup source',65,'change_usersignupsource'),(256,'Can delete user signup source',65,'delete_usersignupsource'),(257,'Can view user signup source',65,'view_usersignupsource'),(258,'Can add user standing',66,'add_userstanding'),(259,'Can change user standing',66,'change_userstanding'),(260,'Can delete user standing',66,'delete_userstanding'),(261,'Can view user standing',66,'view_userstanding'),(262,'Can add user test group',67,'add_usertestgroup'),(263,'Can change user test group',67,'change_usertestgroup'),(264,'Can delete user test group',67,'delete_usertestgroup'),(265,'Can view user test group',67,'view_usertestgroup'),(266,'Can add user attribute',68,'add_userattribute'),(267,'Can change user attribute',68,'change_userattribute'),(268,'Can delete user attribute',68,'delete_userattribute'),(269,'Can view user attribute',68,'view_userattribute'),(270,'Can add registration cookie configuration',69,'add_registrationcookieconfiguration'),(271,'Can change registration cookie configuration',69,'change_registrationcookieconfiguration'),(272,'Can delete registration cookie configuration',69,'delete_registrationcookieconfiguration'),(273,'Can view registration cookie configuration',69,'view_registrationcookieconfiguration'),(274,'Can add social link',70,'add_sociallink'),(275,'Can change social link',70,'change_sociallink'),(276,'Can delete social link',70,'delete_sociallink'),(277,'Can view social link',70,'view_sociallink'),(278,'Can add account recovery',71,'add_accountrecovery'),(279,'Can change account recovery',71,'change_accountrecovery'),(280,'Can delete account recovery',71,'delete_accountrecovery'),(281,'Can view account recovery',71,'view_accountrecovery'),(282,'Can add pending secondary email change',72,'add_pendingsecondaryemailchange'),(283,'Can change pending secondary email change',72,'change_pendingsecondaryemailchange'),(284,'Can delete pending secondary email change',72,'delete_pendingsecondaryemailchange'),(285,'Can view pending secondary email change',72,'view_pendingsecondaryemailchange'),(286,'Can add historical course enrollment',73,'add_historicalcourseenrollment'),(287,'Can change historical course enrollment',73,'change_historicalcourseenrollment'),(288,'Can delete historical course enrollment',73,'delete_historicalcourseenrollment'),(289,'Can view historical course enrollment',73,'view_historicalcourseenrollment'),(290,'Can add bulk unenroll configuration',74,'add_bulkunenrollconfiguration'),(291,'Can change bulk unenroll configuration',74,'change_bulkunenrollconfiguration'),(292,'Can delete bulk unenroll configuration',74,'delete_bulkunenrollconfiguration'),(293,'Can view bulk unenroll configuration',74,'view_bulkunenrollconfiguration'),(294,'Can add fbe enrollment exclusion',75,'add_fbeenrollmentexclusion'),(295,'Can change fbe enrollment exclusion',75,'change_fbeenrollmentexclusion'),(296,'Can delete fbe enrollment exclusion',75,'delete_fbeenrollmentexclusion'),(297,'Can view fbe enrollment exclusion',75,'view_fbeenrollmentexclusion'),(298,'Can add allowed auth user',76,'add_allowedauthuser'),(299,'Can change allowed auth user',76,'change_allowedauthuser'),(300,'Can delete allowed auth user',76,'delete_allowedauthuser'),(301,'Can view allowed auth user',76,'view_allowedauthuser'),(302,'Can add historical manual enrollment audit',77,'add_historicalmanualenrollmentaudit'),(303,'Can change historical manual enrollment audit',77,'change_historicalmanualenrollmentaudit'),(304,'Can delete historical manual enrollment audit',77,'delete_historicalmanualenrollmentaudit'),(305,'Can view historical manual enrollment audit',77,'view_historicalmanualenrollmentaudit'),(306,'Can add account recovery configuration',78,'add_accountrecoveryconfiguration'),(307,'Can change account recovery configuration',78,'change_accountrecoveryconfiguration'),(308,'Can delete account recovery configuration',78,'delete_accountrecoveryconfiguration'),(309,'Can view account recovery configuration',78,'view_accountrecoveryconfiguration'),(310,'Can add course enrollment celebration',79,'add_courseenrollmentcelebration'),(311,'Can change course enrollment celebration',79,'change_courseenrollmentcelebration'),(312,'Can delete course enrollment celebration',79,'delete_courseenrollmentcelebration'),(313,'Can view course enrollment celebration',79,'view_courseenrollmentcelebration'),(314,'Can add bulk change enrollment configuration',80,'add_bulkchangeenrollmentconfiguration'),(315,'Can change bulk change enrollment configuration',80,'change_bulkchangeenrollmentconfiguration'),(316,'Can delete bulk change enrollment configuration',80,'delete_bulkchangeenrollmentconfiguration'),(317,'Can view bulk change enrollment configuration',80,'view_bulkchangeenrollmentconfiguration'),(318,'Can add user password toggle history',81,'add_userpasswordtogglehistory'),(319,'Can change user password toggle history',81,'change_userpasswordtogglehistory'),(320,'Can delete user password toggle history',81,'delete_userpasswordtogglehistory'),(321,'Can view user password toggle history',81,'view_userpasswordtogglehistory'),(322,'Can add user celebration',82,'add_usercelebration'),(323,'Can change user celebration',82,'change_usercelebration'),(324,'Can delete user celebration',82,'delete_usercelebration'),(325,'Can view user celebration',82,'view_usercelebration'),(326,'Can add split modulestore course index',83,'add_splitmodulestorecourseindex'),(327,'Can change split modulestore course index',83,'change_splitmodulestorecourseindex'),(328,'Can delete split modulestore course index',83,'delete_splitmodulestorecourseindex'),(329,'Can view split modulestore course index',83,'view_splitmodulestorecourseindex'),(330,'Can add historical split modulestore course index',84,'add_historicalsplitmodulestorecourseindex'),(331,'Can change historical split modulestore course index',84,'change_historicalsplitmodulestorecourseindex'),(332,'Can delete historical split modulestore course index',84,'delete_historicalsplitmodulestorecourseindex'),(333,'Can view historical split modulestore course index',84,'view_historicalsplitmodulestorecourseindex'),(334,'Can add rate limit configuration',85,'add_ratelimitconfiguration'),(335,'Can change rate limit configuration',85,'change_ratelimitconfiguration'),(336,'Can delete rate limit configuration',85,'delete_ratelimitconfiguration'),(337,'Can view rate limit configuration',85,'view_ratelimitconfiguration'),(338,'Can add certificate generation configuration',86,'add_certificategenerationconfiguration'),(339,'Can change certificate generation configuration',86,'change_certificategenerationconfiguration'),(340,'Can delete certificate generation configuration',86,'delete_certificategenerationconfiguration'),(341,'Can view certificate generation configuration',86,'view_certificategenerationconfiguration'),(342,'Can add certificate generation course setting',87,'add_certificategenerationcoursesetting'),(343,'Can change certificate generation course setting',87,'change_certificategenerationcoursesetting'),(344,'Can delete certificate generation course setting',87,'delete_certificategenerationcoursesetting'),(345,'Can view certificate generation course setting',87,'view_certificategenerationcoursesetting'),(346,'Can add certificate html view configuration',88,'add_certificatehtmlviewconfiguration'),(347,'Can change certificate html view configuration',88,'change_certificatehtmlviewconfiguration'),(348,'Can delete certificate html view configuration',88,'delete_certificatehtmlviewconfiguration'),(349,'Can view certificate html view configuration',88,'view_certificatehtmlviewconfiguration'),(350,'Can add certificate template',89,'add_certificatetemplate'),(351,'Can change certificate template',89,'change_certificatetemplate'),(352,'Can delete certificate template',89,'delete_certificatetemplate'),(353,'Can view certificate template',89,'view_certificatetemplate'),(354,'Can add certificate template asset',90,'add_certificatetemplateasset'),(355,'Can change certificate template asset',90,'change_certificatetemplateasset'),(356,'Can delete certificate template asset',90,'delete_certificatetemplateasset'),(357,'Can view certificate template asset',90,'view_certificatetemplateasset'),(358,'Can add example certificate',91,'add_examplecertificate'),(359,'Can change example certificate',91,'change_examplecertificate'),(360,'Can delete example certificate',91,'delete_examplecertificate'),(361,'Can view example certificate',91,'view_examplecertificate'),(362,'Can add example certificate set',92,'add_examplecertificateset'),(363,'Can change example certificate set',92,'change_examplecertificateset'),(364,'Can delete example certificate set',92,'delete_examplecertificateset'),(365,'Can view example certificate set',92,'view_examplecertificateset'),(366,'Can add generated certificate',93,'add_generatedcertificate'),(367,'Can change generated certificate',93,'change_generatedcertificate'),(368,'Can delete generated certificate',93,'delete_generatedcertificate'),(369,'Can view generated certificate',93,'view_generatedcertificate'),(370,'Can add certificate generation history',94,'add_certificategenerationhistory'),(371,'Can change certificate generation history',94,'change_certificategenerationhistory'),(372,'Can delete certificate generation history',94,'delete_certificategenerationhistory'),(373,'Can view certificate generation history',94,'view_certificategenerationhistory'),(374,'Can add certificate invalidation',95,'add_certificateinvalidation'),(375,'Can change certificate invalidation',95,'change_certificateinvalidation'),(376,'Can delete certificate invalidation',95,'delete_certificateinvalidation'),(377,'Can view certificate invalidation',95,'view_certificateinvalidation'),(378,'Can add historical generated certificate',96,'add_historicalgeneratedcertificate'),(379,'Can change historical generated certificate',96,'change_historicalgeneratedcertificate'),(380,'Can delete historical generated certificate',96,'delete_historicalgeneratedcertificate'),(381,'Can view historical generated certificate',96,'view_historicalgeneratedcertificate'),(382,'Can add historical certificate invalidation',97,'add_historicalcertificateinvalidation'),(383,'Can change historical certificate invalidation',97,'change_historicalcertificateinvalidation'),(384,'Can delete historical certificate invalidation',97,'delete_historicalcertificateinvalidation'),(385,'Can view historical certificate invalidation',97,'view_historicalcertificateinvalidation'),(386,'Can add cert_generation argument',98,'add_certificategenerationcommandconfiguration'),(387,'Can change cert_generation argument',98,'change_certificategenerationcommandconfiguration'),(388,'Can delete cert_generation argument',98,'delete_certificategenerationcommandconfiguration'),(389,'Can view cert_generation argument',98,'view_certificategenerationcommandconfiguration'),(390,'Can add certificate allowlist',99,'add_certificateallowlist'),(391,'Can change certificate allowlist',99,'change_certificateallowlist'),(392,'Can delete certificate allowlist',99,'delete_certificateallowlist'),(393,'Can view certificate allowlist',99,'view_certificateallowlist'),(394,'Can add historical certificate allowlist',100,'add_historicalcertificateallowlist'),(395,'Can change historical certificate allowlist',100,'change_historicalcertificateallowlist'),(396,'Can delete historical certificate allowlist',100,'delete_historicalcertificateallowlist'),(397,'Can view historical certificate allowlist',100,'view_historicalcertificateallowlist'),(398,'Can add historical certificate date override',101,'add_historicalcertificatedateoverride'),(399,'Can change historical certificate date override',101,'change_historicalcertificatedateoverride'),(400,'Can delete historical certificate date override',101,'delete_historicalcertificatedateoverride'),(401,'Can view historical certificate date override',101,'view_historicalcertificatedateoverride'),(402,'Can add certificate date override',102,'add_certificatedateoverride'),(403,'Can change certificate date override',102,'change_certificatedateoverride'),(404,'Can delete certificate date override',102,'delete_certificatedateoverride'),(405,'Can view certificate date override',102,'view_certificatedateoverride'),(406,'Can add instructor task',103,'add_instructortask'),(407,'Can change instructor task',103,'change_instructortask'),(408,'Can delete instructor task',103,'delete_instructortask'),(409,'Can view instructor task',103,'view_instructortask'),(410,'Can add grade report setting',104,'add_gradereportsetting'),(411,'Can change grade report setting',104,'change_gradereportsetting'),(412,'Can delete grade report setting',104,'delete_gradereportsetting'),(413,'Can view grade report setting',104,'view_gradereportsetting'),(414,'Can add instructor task schedule',105,'add_instructortaskschedule'),(415,'Can change instructor task schedule',105,'change_instructortaskschedule'),(416,'Can delete instructor task schedule',105,'delete_instructortaskschedule'),(417,'Can view instructor task schedule',105,'view_instructortaskschedule'),(418,'Can add historical instructor task schedule',106,'add_historicalinstructortaskschedule'),(419,'Can change historical instructor task schedule',106,'change_historicalinstructortaskschedule'),(420,'Can delete historical instructor task schedule',106,'delete_historicalinstructortaskschedule'),(421,'Can view historical instructor task schedule',106,'view_historicalinstructortaskschedule'),(422,'Can add cohort membership',107,'add_cohortmembership'),(423,'Can change cohort membership',107,'change_cohortmembership'),(424,'Can delete cohort membership',107,'delete_cohortmembership'),(425,'Can view cohort membership',107,'view_cohortmembership'),(426,'Can add course cohort',108,'add_coursecohort'),(427,'Can change course cohort',108,'change_coursecohort'),(428,'Can delete course cohort',108,'delete_coursecohort'),(429,'Can view course cohort',108,'view_coursecohort'),(430,'Can add course cohorts settings',109,'add_coursecohortssettings'),(431,'Can change course cohorts settings',109,'change_coursecohortssettings'),(432,'Can delete course cohorts settings',109,'delete_coursecohortssettings'),(433,'Can view course cohorts settings',109,'view_coursecohortssettings'),(434,'Can add course user group',110,'add_courseusergroup'),(435,'Can change course user group',110,'change_courseusergroup'),(436,'Can delete course user group',110,'delete_courseusergroup'),(437,'Can view course user group',110,'view_courseusergroup'),(438,'Can add course user group partition group',111,'add_courseusergrouppartitiongroup'),(439,'Can change course user group partition group',111,'change_courseusergrouppartitiongroup'),(440,'Can delete course user group partition group',111,'delete_courseusergrouppartitiongroup'),(441,'Can view course user group partition group',111,'view_courseusergrouppartitiongroup'),(442,'Can add unregistered learner cohort assignments',112,'add_unregisteredlearnercohortassignments'),(443,'Can change unregistered learner cohort assignments',112,'change_unregisteredlearnercohortassignments'),(444,'Can delete unregistered learner cohort assignments',112,'delete_unregisteredlearnercohortassignments'),(445,'Can view unregistered learner cohort assignments',112,'view_unregisteredlearnercohortassignments'),(446,'Can add course authorization',113,'add_courseauthorization'),(447,'Can change course authorization',113,'change_courseauthorization'),(448,'Can delete course authorization',113,'delete_courseauthorization'),(449,'Can view course authorization',113,'view_courseauthorization'),(450,'Can add course email',114,'add_courseemail'),(451,'Can change course email',114,'change_courseemail'),(452,'Can delete course email',114,'delete_courseemail'),(453,'Can view course email',114,'view_courseemail'),(454,'Can add course email template',115,'add_courseemailtemplate'),(455,'Can change course email template',115,'change_courseemailtemplate'),(456,'Can delete course email template',115,'delete_courseemailtemplate'),(457,'Can view course email template',115,'view_courseemailtemplate'),(458,'Can add optout',116,'add_optout'),(459,'Can change optout',116,'change_optout'),(460,'Can delete optout',116,'delete_optout'),(461,'Can view optout',116,'view_optout'),(462,'Can add bulk email flag',117,'add_bulkemailflag'),(463,'Can change bulk email flag',117,'change_bulkemailflag'),(464,'Can delete bulk email flag',117,'delete_bulkemailflag'),(465,'Can view bulk email flag',117,'view_bulkemailflag'),(466,'Can add target',118,'add_target'),(467,'Can change target',118,'change_target'),(468,'Can delete target',118,'delete_target'),(469,'Can view target',118,'view_target'),(470,'Can add cohort target',119,'add_cohorttarget'),(471,'Can change cohort target',119,'change_cohorttarget'),(472,'Can delete cohort target',119,'delete_cohorttarget'),(473,'Can view cohort target',119,'view_cohorttarget'),(474,'Can add course mode target',120,'add_coursemodetarget'),(475,'Can change course mode target',120,'change_coursemodetarget'),(476,'Can delete course mode target',120,'delete_coursemodetarget'),(477,'Can view course mode target',120,'view_coursemodetarget'),(478,'Can add disabled course',121,'add_disabledcourse'),(479,'Can change disabled course',121,'change_disabledcourse'),(480,'Can delete disabled course',121,'delete_disabledcourse'),(481,'Can view disabled course',121,'view_disabledcourse'),(482,'Can add branding api config',122,'add_brandingapiconfig'),(483,'Can change branding api config',122,'change_brandingapiconfig'),(484,'Can delete branding api config',122,'delete_brandingapiconfig'),(485,'Can view branding api config',122,'view_brandingapiconfig'),(486,'Can add branding info config',123,'add_brandinginfoconfig'),(487,'Can change branding info config',123,'change_brandinginfoconfig'),(488,'Can delete branding info config',123,'delete_brandinginfoconfig'),(489,'Can view branding info config',123,'view_brandinginfoconfig'),(490,'Can add disable progress page stacked config',124,'add_disableprogresspagestackedconfig'),(491,'Can change disable progress page stacked config',124,'change_disableprogresspagestackedconfig'),(492,'Can delete disable progress page stacked config',124,'delete_disableprogresspagestackedconfig'),(493,'Can view disable progress page stacked config',124,'view_disableprogresspagestackedconfig'),(494,'Can add user tour',125,'add_usertour'),(495,'Can change user tour',125,'change_usertour'),(496,'Can delete user tour',125,'delete_usertour'),(497,'Can view user tour',125,'view_usertour'),(498,'Can add user discussions tours',126,'add_userdiscussionstours'),(499,'Can change user discussions tours',126,'change_userdiscussionstours'),(500,'Can delete user discussions tours',126,'delete_userdiscussionstours'),(501,'Can view user discussions tours',126,'view_userdiscussionstours'),(502,'Can add historical user social auth',127,'add_historicalusersocialauth'),(503,'Can change historical user social auth',127,'change_historicalusersocialauth'),(504,'Can delete historical user social auth',127,'delete_historicalusersocialauth'),(505,'Can view historical user social auth',127,'view_historicalusersocialauth'),(506,'Can add application',128,'add_application'),(507,'Can change application',128,'change_application'),(508,'Can delete application',128,'delete_application'),(509,'Can view application',128,'view_application'),(510,'Can add access token',129,'add_accesstoken'),(511,'Can change access token',129,'change_accesstoken'),(512,'Can delete access token',129,'delete_accesstoken'),(513,'Can view access token',129,'view_accesstoken'),(514,'Can add grant',130,'add_grant'),(515,'Can change grant',130,'change_grant'),(516,'Can delete grant',130,'delete_grant'),(517,'Can view grant',130,'view_grant'),(518,'Can add refresh token',131,'add_refreshtoken'),(519,'Can change refresh token',131,'change_refreshtoken'),(520,'Can delete refresh token',131,'delete_refreshtoken'),(521,'Can view refresh token',131,'view_refreshtoken'),(522,'Can add restricted application',132,'add_restrictedapplication'),(523,'Can change restricted application',132,'change_restrictedapplication'),(524,'Can delete restricted application',132,'delete_restrictedapplication'),(525,'Can view restricted application',132,'view_restrictedapplication'),(526,'Can add application access',133,'add_applicationaccess'),(527,'Can change application access',133,'change_applicationaccess'),(528,'Can delete application access',133,'delete_applicationaccess'),(529,'Can view application access',133,'view_applicationaccess'),(530,'Can add application organization',134,'add_applicationorganization'),(531,'Can change application organization',134,'change_applicationorganization'),(532,'Can delete application organization',134,'delete_applicationorganization'),(533,'Can view application organization',134,'view_applicationorganization'),(534,'Can add SAML Provider Data',135,'add_samlproviderdata'),(535,'Can change SAML Provider Data',135,'change_samlproviderdata'),(536,'Can delete SAML Provider Data',135,'delete_samlproviderdata'),(537,'Can view SAML Provider Data',135,'view_samlproviderdata'),(538,'Can add SAML Configuration',136,'add_samlconfiguration'),(539,'Can change SAML Configuration',136,'change_samlconfiguration'),(540,'Can delete SAML Configuration',136,'delete_samlconfiguration'),(541,'Can view SAML Configuration',136,'view_samlconfiguration'),(542,'Can add Provider Configuration (OAuth)',137,'add_oauth2providerconfig'),(543,'Can change Provider Configuration (OAuth)',137,'change_oauth2providerconfig'),(544,'Can delete Provider Configuration (OAuth)',137,'delete_oauth2providerconfig'),(545,'Can view Provider Configuration (OAuth)',137,'view_oauth2providerconfig'),(546,'Can add Provider Configuration (LTI)',138,'add_ltiproviderconfig'),(547,'Can change Provider Configuration (LTI)',138,'change_ltiproviderconfig'),(548,'Can delete Provider Configuration (LTI)',138,'delete_ltiproviderconfig'),(549,'Can view Provider Configuration (LTI)',138,'view_ltiproviderconfig'),(550,'Can add Provider Configuration (SAML IdP)',139,'add_samlproviderconfig'),(551,'Can change Provider Configuration (SAML IdP)',139,'change_samlproviderconfig'),(552,'Can delete Provider Configuration (SAML IdP)',139,'delete_samlproviderconfig'),(553,'Can view Provider Configuration (SAML IdP)',139,'view_samlproviderconfig'),(554,'Can add system wide role',140,'add_systemwiderole'),(555,'Can change system wide role',140,'change_systemwiderole'),(556,'Can delete system wide role',140,'delete_systemwiderole'),(557,'Can view system wide role',140,'view_systemwiderole'),(558,'Can add system wide role assignment',141,'add_systemwideroleassignment'),(559,'Can change system wide role assignment',141,'change_systemwideroleassignment'),(560,'Can delete system wide role assignment',141,'delete_systemwideroleassignment'),(561,'Can view system wide role assignment',141,'view_systemwideroleassignment'),(562,'Can add article',142,'add_article'),(563,'Can change article',142,'change_article'),(564,'Can delete article',142,'delete_article'),(565,'Can view article',142,'view_article'),(566,'Can edit all articles and lock/unlock/restore',142,'moderate'),(567,'Can change ownership of any article',142,'assign'),(568,'Can assign permissions to other users',142,'grant'),(569,'Can add Article for object',143,'add_articleforobject'),(570,'Can change Article for object',143,'change_articleforobject'),(571,'Can delete Article for object',143,'delete_articleforobject'),(572,'Can view Article for object',143,'view_articleforobject'),(573,'Can add article plugin',144,'add_articleplugin'),(574,'Can change article plugin',144,'change_articleplugin'),(575,'Can delete article plugin',144,'delete_articleplugin'),(576,'Can view article plugin',144,'view_articleplugin'),(577,'Can add article revision',145,'add_articlerevision'),(578,'Can change article revision',145,'change_articlerevision'),(579,'Can delete article revision',145,'delete_articlerevision'),(580,'Can view article revision',145,'view_articlerevision'),(581,'Can add reusable plugin',146,'add_reusableplugin'),(582,'Can change reusable plugin',146,'change_reusableplugin'),(583,'Can delete reusable plugin',146,'delete_reusableplugin'),(584,'Can view reusable plugin',146,'view_reusableplugin'),(585,'Can add revision plugin',147,'add_revisionplugin'),(586,'Can change revision plugin',147,'change_revisionplugin'),(587,'Can delete revision plugin',147,'delete_revisionplugin'),(588,'Can view revision plugin',147,'view_revisionplugin'),(589,'Can add revision plugin revision',148,'add_revisionpluginrevision'),(590,'Can change revision plugin revision',148,'change_revisionpluginrevision'),(591,'Can delete revision plugin revision',148,'delete_revisionpluginrevision'),(592,'Can view revision plugin revision',148,'view_revisionpluginrevision'),(593,'Can add simple plugin',149,'add_simpleplugin'),(594,'Can change simple plugin',149,'change_simpleplugin'),(595,'Can delete simple plugin',149,'delete_simpleplugin'),(596,'Can view simple plugin',149,'view_simpleplugin'),(597,'Can add URL path',150,'add_urlpath'),(598,'Can change URL path',150,'change_urlpath'),(599,'Can delete URL path',150,'delete_urlpath'),(600,'Can view URL path',150,'view_urlpath'),(601,'Can add notification',151,'add_notification'),(602,'Can change notification',151,'change_notification'),(603,'Can delete notification',151,'delete_notification'),(604,'Can view notification',151,'view_notification'),(605,'Can add type',152,'add_notificationtype'),(606,'Can change type',152,'change_notificationtype'),(607,'Can delete type',152,'delete_notificationtype'),(608,'Can view type',152,'view_notificationtype'),(609,'Can add settings',153,'add_settings'),(610,'Can change settings',153,'change_settings'),(611,'Can delete settings',153,'delete_settings'),(612,'Can view settings',153,'view_settings'),(613,'Can add subscription',154,'add_subscription'),(614,'Can change subscription',154,'change_subscription'),(615,'Can delete subscription',154,'delete_subscription'),(616,'Can view subscription',154,'view_subscription'),(617,'Can add log entry',155,'add_logentry'),(618,'Can change log entry',155,'change_logentry'),(619,'Can delete log entry',155,'delete_logentry'),(620,'Can view log entry',155,'view_logentry'),(621,'Can add permission',156,'add_permission'),(622,'Can change permission',156,'change_permission'),(623,'Can delete permission',156,'delete_permission'),(624,'Can view permission',156,'view_permission'),(625,'Can add role',157,'add_role'),(626,'Can change role',157,'change_role'),(627,'Can delete role',157,'delete_role'),(628,'Can view role',157,'view_role'),(629,'Can add forums config',158,'add_forumsconfig'),(630,'Can change forums config',158,'change_forumsconfig'),(631,'Can delete forums config',158,'delete_forumsconfig'),(632,'Can view forums config',158,'view_forumsconfig'),(633,'Can add course discussion settings',159,'add_coursediscussionsettings'),(634,'Can change course discussion settings',159,'change_coursediscussionsettings'),(635,'Can delete course discussion settings',159,'delete_coursediscussionsettings'),(636,'Can view course discussion settings',159,'view_coursediscussionsettings'),(637,'Can add discussions id mapping',160,'add_discussionsidmapping'),(638,'Can change discussions id mapping',160,'change_discussionsidmapping'),(639,'Can delete discussions id mapping',160,'delete_discussionsidmapping'),(640,'Can view discussions id mapping',160,'view_discussionsidmapping'),(641,'Can add splash config',161,'add_splashconfig'),(642,'Can change splash config',161,'change_splashconfig'),(643,'Can delete splash config',161,'delete_splashconfig'),(644,'Can view splash config',161,'view_splashconfig'),(645,'Can add user course tag',162,'add_usercoursetag'),(646,'Can change user course tag',162,'change_usercoursetag'),(647,'Can delete user course tag',162,'delete_usercoursetag'),(648,'Can view user course tag',162,'view_usercoursetag'),(649,'Can add user org tag',163,'add_userorgtag'),(650,'Can change user org tag',163,'change_userorgtag'),(651,'Can delete user org tag',163,'delete_userorgtag'),(652,'Can view user org tag',163,'view_userorgtag'),(653,'Can add user preference',164,'add_userpreference'),(654,'Can change user preference',164,'change_userpreference'),(655,'Can delete user preference',164,'delete_userpreference'),(656,'Can view user preference',164,'view_userpreference'),(657,'Can add retirement state',165,'add_retirementstate'),(658,'Can change retirement state',165,'change_retirementstate'),(659,'Can delete retirement state',165,'delete_retirementstate'),(660,'Can view retirement state',165,'view_retirementstate'),(661,'Can add User Retirement Status',166,'add_userretirementstatus'),(662,'Can change User Retirement Status',166,'change_userretirementstatus'),(663,'Can delete User Retirement Status',166,'delete_userretirementstatus'),(664,'Can view User Retirement Status',166,'view_userretirementstatus'),(665,'Can add User Retirement Request',167,'add_userretirementrequest'),(666,'Can change User Retirement Request',167,'change_userretirementrequest'),(667,'Can delete User Retirement Request',167,'delete_userretirementrequest'),(668,'Can view User Retirement Request',167,'view_userretirementrequest'),(669,'Can add User Retirement Reporting Status',168,'add_userretirementpartnerreportingstatus'),(670,'Can change User Retirement Reporting Status',168,'change_userretirementpartnerreportingstatus'),(671,'Can delete User Retirement Reporting Status',168,'delete_userretirementpartnerreportingstatus'),(672,'Can view User Retirement Reporting Status',168,'view_userretirementpartnerreportingstatus'),(673,'Can add course mode',169,'add_coursemode'),(674,'Can change course mode',169,'change_coursemode'),(675,'Can delete course mode',169,'delete_coursemode'),(676,'Can view course mode',169,'view_coursemode'),(677,'Can add course modes archive',170,'add_coursemodesarchive'),(678,'Can change course modes archive',170,'change_coursemodesarchive'),(679,'Can delete course modes archive',170,'delete_coursemodesarchive'),(680,'Can view course modes archive',170,'view_coursemodesarchive'),(681,'Can add course mode expiration config',171,'add_coursemodeexpirationconfig'),(682,'Can change course mode expiration config',171,'change_coursemodeexpirationconfig'),(683,'Can delete course mode expiration config',171,'delete_coursemodeexpirationconfig'),(684,'Can view course mode expiration config',171,'view_coursemodeexpirationconfig'),(685,'Can add historical course mode',172,'add_historicalcoursemode'),(686,'Can change historical course mode',172,'change_historicalcoursemode'),(687,'Can delete historical course mode',172,'delete_historicalcoursemode'),(688,'Can view historical course mode',172,'view_historicalcoursemode'),(689,'Can add course entitlement',173,'add_courseentitlement'),(690,'Can change course entitlement',173,'change_courseentitlement'),(691,'Can delete course entitlement',173,'delete_courseentitlement'),(692,'Can view course entitlement',173,'view_courseentitlement'),(693,'Can add course entitlement policy',174,'add_courseentitlementpolicy'),(694,'Can change course entitlement policy',174,'change_courseentitlementpolicy'),(695,'Can delete course entitlement policy',174,'delete_courseentitlementpolicy'),(696,'Can view course entitlement policy',174,'view_courseentitlementpolicy'),(697,'Can add course entitlement support detail',175,'add_courseentitlementsupportdetail'),(698,'Can change course entitlement support detail',175,'change_courseentitlementsupportdetail'),(699,'Can delete course entitlement support detail',175,'delete_courseentitlementsupportdetail'),(700,'Can view course entitlement support detail',175,'view_courseentitlementsupportdetail'),(701,'Can add historical course entitlement',176,'add_historicalcourseentitlement'),(702,'Can change historical course entitlement',176,'change_historicalcourseentitlement'),(703,'Can delete historical course entitlement',176,'delete_historicalcourseentitlement'),(704,'Can view historical course entitlement',176,'view_historicalcourseentitlement'),(705,'Can add historical course entitlement support detail',177,'add_historicalcourseentitlementsupportdetail'),(706,'Can change historical course entitlement support detail',177,'change_historicalcourseentitlementsupportdetail'),(707,'Can delete historical course entitlement support detail',177,'delete_historicalcourseentitlementsupportdetail'),(708,'Can view historical course entitlement support detail',177,'view_historicalcourseentitlementsupportdetail'),(709,'Can add software secure photo verification',178,'add_softwaresecurephotoverification'),(710,'Can change software secure photo verification',178,'change_softwaresecurephotoverification'),(711,'Can delete software secure photo verification',178,'delete_softwaresecurephotoverification'),(712,'Can view software secure photo verification',178,'view_softwaresecurephotoverification'),(713,'Can add verification deadline',179,'add_verificationdeadline'),(714,'Can change verification deadline',179,'change_verificationdeadline'),(715,'Can delete verification deadline',179,'delete_verificationdeadline'),(716,'Can view verification deadline',179,'view_verificationdeadline'),(717,'Can add sso verification',180,'add_ssoverification'),(718,'Can change sso verification',180,'change_ssoverification'),(719,'Can delete sso verification',180,'delete_ssoverification'),(720,'Can view sso verification',180,'view_ssoverification'),(721,'Can add manual verification',181,'add_manualverification'),(722,'Can change manual verification',181,'change_manualverification'),(723,'Can delete manual verification',181,'delete_manualverification'),(724,'Can view manual verification',181,'view_manualverification'),(725,'Can add sspv retry student argument',182,'add_sspverificationretryconfig'),(726,'Can change sspv retry student argument',182,'change_sspverificationretryconfig'),(727,'Can delete sspv retry student argument',182,'delete_sspverificationretryconfig'),(728,'Can view sspv retry student argument',182,'view_sspverificationretryconfig'),(729,'Can add dark lang config',183,'add_darklangconfig'),(730,'Can change dark lang config',183,'change_darklangconfig'),(731,'Can delete dark lang config',183,'delete_darklangconfig'),(732,'Can view dark lang config',183,'view_darklangconfig'),(733,'Can add whitelisted rss url',184,'add_whitelistedrssurl'),(734,'Can change whitelisted rss url',184,'change_whitelistedrssurl'),(735,'Can delete whitelisted rss url',184,'delete_whitelistedrssurl'),(736,'Can view whitelisted rss url',184,'view_whitelistedrssurl'),(737,'Can add country',185,'add_country'),(738,'Can change country',185,'change_country'),(739,'Can delete country',185,'delete_country'),(740,'Can view country',185,'view_country'),(741,'Can add country access rule',186,'add_countryaccessrule'),(742,'Can change country access rule',186,'change_countryaccessrule'),(743,'Can delete country access rule',186,'delete_countryaccessrule'),(744,'Can view country access rule',186,'view_countryaccessrule'),(745,'Can add course access rule history',187,'add_courseaccessrulehistory'),(746,'Can change course access rule history',187,'change_courseaccessrulehistory'),(747,'Can delete course access rule history',187,'delete_courseaccessrulehistory'),(748,'Can view course access rule history',187,'view_courseaccessrulehistory'),(749,'Can add embargoed course',188,'add_embargoedcourse'),(750,'Can change embargoed course',188,'change_embargoedcourse'),(751,'Can delete embargoed course',188,'delete_embargoedcourse'),(752,'Can view embargoed course',188,'view_embargoedcourse'),(753,'Can add embargoed state',189,'add_embargoedstate'),(754,'Can change embargoed state',189,'change_embargoedstate'),(755,'Can delete embargoed state',189,'delete_embargoedstate'),(756,'Can view embargoed state',189,'view_embargoedstate'),(757,'Can add ip filter',190,'add_ipfilter'),(758,'Can change ip filter',190,'change_ipfilter'),(759,'Can delete ip filter',190,'delete_ipfilter'),(760,'Can view ip filter',190,'view_ipfilter'),(761,'Can add restricted course',191,'add_restrictedcourse'),(762,'Can change restricted course',191,'change_restrictedcourse'),(763,'Can delete restricted course',191,'delete_restrictedcourse'),(764,'Can view restricted course',191,'view_restrictedcourse'),(765,'Can add course rerun state',192,'add_coursererunstate'),(766,'Can change course rerun state',192,'change_coursererunstate'),(767,'Can delete course rerun state',192,'delete_coursererunstate'),(768,'Can view course rerun state',192,'view_coursererunstate'),(769,'Can add mobile api config',193,'add_mobileapiconfig'),(770,'Can change mobile api config',193,'change_mobileapiconfig'),(771,'Can delete mobile api config',193,'delete_mobileapiconfig'),(772,'Can view mobile api config',193,'view_mobileapiconfig'),(773,'Can add app version config',194,'add_appversionconfig'),(774,'Can change app version config',194,'change_appversionconfig'),(775,'Can delete app version config',194,'delete_appversionconfig'),(776,'Can view app version config',194,'view_appversionconfig'),(777,'Can add ignore mobile available flag config',195,'add_ignoremobileavailableflagconfig'),(778,'Can change ignore mobile available flag config',195,'change_ignoremobileavailableflagconfig'),(779,'Can delete ignore mobile available flag config',195,'delete_ignoremobileavailableflagconfig'),(780,'Can view ignore mobile available flag config',195,'view_ignoremobileavailableflagconfig'),(781,'Can add mobile config',196,'add_mobileconfig'),(782,'Can change mobile config',196,'change_mobileconfig'),(783,'Can delete mobile config',196,'delete_mobileconfig'),(784,'Can view mobile config',196,'view_mobileconfig'),(785,'Can add association',197,'add_association'),(786,'Can change association',197,'change_association'),(787,'Can delete association',197,'delete_association'),(788,'Can view association',197,'view_association'),(789,'Can add code',198,'add_code'),(790,'Can change code',198,'change_code'),(791,'Can delete code',198,'delete_code'),(792,'Can view code',198,'view_code'),(793,'Can add nonce',199,'add_nonce'),(794,'Can change nonce',199,'change_nonce'),(795,'Can delete nonce',199,'delete_nonce'),(796,'Can view nonce',199,'view_nonce'),(797,'Can add user social auth',200,'add_usersocialauth'),(798,'Can change user social auth',200,'change_usersocialauth'),(799,'Can delete user social auth',200,'delete_usersocialauth'),(800,'Can view user social auth',200,'view_usersocialauth'),(801,'Can add partial',201,'add_partial'),(802,'Can change partial',201,'change_partial'),(803,'Can delete partial',201,'delete_partial'),(804,'Can view partial',201,'view_partial'),(805,'Can add survey answer',202,'add_surveyanswer'),(806,'Can change survey answer',202,'change_surveyanswer'),(807,'Can delete survey answer',202,'delete_surveyanswer'),(808,'Can view survey answer',202,'view_surveyanswer'),(809,'Can add survey form',203,'add_surveyform'),(810,'Can change survey form',203,'change_surveyform'),(811,'Can delete survey form',203,'delete_surveyform'),(812,'Can view survey form',203,'view_surveyform'),(813,'Can add x block asides config',204,'add_xblockasidesconfig'),(814,'Can change x block asides config',204,'change_xblockasidesconfig'),(815,'Can delete x block asides config',204,'delete_xblockasidesconfig'),(816,'Can view x block asides config',204,'view_xblockasidesconfig'),(817,'Can add score',205,'add_score'),(818,'Can change score',205,'change_score'),(819,'Can delete score',205,'delete_score'),(820,'Can view score',205,'view_score'),(821,'Can add student item',206,'add_studentitem'),(822,'Can change student item',206,'change_studentitem'),(823,'Can delete student item',206,'delete_studentitem'),(824,'Can view student item',206,'view_studentitem'),(825,'Can add submission',207,'add_submission'),(826,'Can change submission',207,'change_submission'),(827,'Can delete submission',207,'delete_submission'),(828,'Can view submission',207,'view_submission'),(829,'Can add score summary',208,'add_scoresummary'),(830,'Can change score summary',208,'change_scoresummary'),(831,'Can delete score summary',208,'delete_scoresummary'),(832,'Can view score summary',208,'view_scoresummary'),(833,'Can add score annotation',209,'add_scoreannotation'),(834,'Can change score annotation',209,'change_scoreannotation'),(835,'Can delete score annotation',209,'delete_scoreannotation'),(836,'Can view score annotation',209,'view_scoreannotation'),(837,'Can add team submission',210,'add_teamsubmission'),(838,'Can change team submission',210,'change_teamsubmission'),(839,'Can delete team submission',210,'delete_teamsubmission'),(840,'Can view team submission',210,'view_teamsubmission'),(841,'Can add assessment',211,'add_assessment'),(842,'Can change assessment',211,'change_assessment'),(843,'Can delete assessment',211,'delete_assessment'),(844,'Can view assessment',211,'view_assessment'),(845,'Can add assessment feedback',212,'add_assessmentfeedback'),(846,'Can change assessment feedback',212,'change_assessmentfeedback'),(847,'Can delete assessment feedback',212,'delete_assessmentfeedback'),(848,'Can view assessment feedback',212,'view_assessmentfeedback'),(849,'Can add assessment feedback option',213,'add_assessmentfeedbackoption'),(850,'Can change assessment feedback option',213,'change_assessmentfeedbackoption'),(851,'Can delete assessment feedback option',213,'delete_assessmentfeedbackoption'),(852,'Can view assessment feedback option',213,'view_assessmentfeedbackoption'),(853,'Can add assessment part',214,'add_assessmentpart'),(854,'Can change assessment part',214,'change_assessmentpart'),(855,'Can delete assessment part',214,'delete_assessmentpart'),(856,'Can view assessment part',214,'view_assessmentpart'),(857,'Can add criterion',215,'add_criterion'),(858,'Can change criterion',215,'change_criterion'),(859,'Can delete criterion',215,'delete_criterion'),(860,'Can view criterion',215,'view_criterion'),(861,'Can add criterion option',216,'add_criterionoption'),(862,'Can change criterion option',216,'change_criterionoption'),(863,'Can delete criterion option',216,'delete_criterionoption'),(864,'Can view criterion option',216,'view_criterionoption'),(865,'Can add peer workflow',217,'add_peerworkflow'),(866,'Can change peer workflow',217,'change_peerworkflow'),(867,'Can delete peer workflow',217,'delete_peerworkflow'),(868,'Can view peer workflow',217,'view_peerworkflow'),(869,'Can add peer workflow item',218,'add_peerworkflowitem'),(870,'Can change peer workflow item',218,'change_peerworkflowitem'),(871,'Can delete peer workflow item',218,'delete_peerworkflowitem'),(872,'Can view peer workflow item',218,'view_peerworkflowitem'),(873,'Can add rubric',219,'add_rubric'),(874,'Can change rubric',219,'change_rubric'),(875,'Can delete rubric',219,'delete_rubric'),(876,'Can view rubric',219,'view_rubric'),(877,'Can add student training workflow',220,'add_studenttrainingworkflow'),(878,'Can change student training workflow',220,'change_studenttrainingworkflow'),(879,'Can delete student training workflow',220,'delete_studenttrainingworkflow'),(880,'Can view student training workflow',220,'view_studenttrainingworkflow'),(881,'Can add student training workflow item',221,'add_studenttrainingworkflowitem'),(882,'Can change student training workflow item',221,'change_studenttrainingworkflowitem'),(883,'Can delete student training workflow item',221,'delete_studenttrainingworkflowitem'),(884,'Can view student training workflow item',221,'view_studenttrainingworkflowitem'),(885,'Can add training example',222,'add_trainingexample'),(886,'Can change training example',222,'change_trainingexample'),(887,'Can delete training example',222,'delete_trainingexample'),(888,'Can view training example',222,'view_trainingexample'),(889,'Can add staff workflow',223,'add_staffworkflow'),(890,'Can change staff workflow',223,'change_staffworkflow'),(891,'Can delete staff workflow',223,'delete_staffworkflow'),(892,'Can view staff workflow',223,'view_staffworkflow'),(893,'Can add historical shared file upload',224,'add_historicalsharedfileupload'),(894,'Can change historical shared file upload',224,'change_historicalsharedfileupload'),(895,'Can delete historical shared file upload',224,'delete_historicalsharedfileupload'),(896,'Can view historical shared file upload',224,'view_historicalsharedfileupload'),(897,'Can add shared file upload',225,'add_sharedfileupload'),(898,'Can change shared file upload',225,'change_sharedfileupload'),(899,'Can delete shared file upload',225,'delete_sharedfileupload'),(900,'Can view shared file upload',225,'view_sharedfileupload'),(901,'Can add team staff workflow',226,'add_teamstaffworkflow'),(902,'Can change team staff workflow',226,'change_teamstaffworkflow'),(903,'Can delete team staff workflow',226,'delete_teamstaffworkflow'),(904,'Can view team staff workflow',226,'view_teamstaffworkflow'),(905,'Can add submission grading lock',227,'add_submissiongradinglock'),(906,'Can change submission grading lock',227,'change_submissiongradinglock'),(907,'Can delete submission grading lock',227,'delete_submissiongradinglock'),(908,'Can view submission grading lock',227,'view_submissiongradinglock'),(909,'Can add assessment workflow',228,'add_assessmentworkflow'),(910,'Can change assessment workflow',228,'change_assessmentworkflow'),(911,'Can delete assessment workflow',228,'delete_assessmentworkflow'),(912,'Can view assessment workflow',228,'view_assessmentworkflow'),(913,'Can add assessment workflow cancellation',229,'add_assessmentworkflowcancellation'),(914,'Can change assessment workflow cancellation',229,'change_assessmentworkflowcancellation'),(915,'Can delete assessment workflow cancellation',229,'delete_assessmentworkflowcancellation'),(916,'Can view assessment workflow cancellation',229,'view_assessmentworkflowcancellation'),(917,'Can add assessment workflow step',230,'add_assessmentworkflowstep'),(918,'Can change assessment workflow step',230,'change_assessmentworkflowstep'),(919,'Can delete assessment workflow step',230,'delete_assessmentworkflowstep'),(920,'Can view assessment workflow step',230,'view_assessmentworkflowstep'),(921,'Can add team assessment workflow',231,'add_teamassessmentworkflow'),(922,'Can change team assessment workflow',231,'change_teamassessmentworkflow'),(923,'Can delete team assessment workflow',231,'delete_teamassessmentworkflow'),(924,'Can view team assessment workflow',231,'view_teamassessmentworkflow'),(925,'Can add profile',232,'add_profile'),(926,'Can change profile',232,'change_profile'),(927,'Can delete profile',232,'delete_profile'),(928,'Can view profile',232,'view_profile'),(929,'Can add video',233,'add_video'),(930,'Can change video',233,'change_video'),(931,'Can delete video',233,'delete_video'),(932,'Can view video',233,'view_video'),(933,'Can add encoded video',234,'add_encodedvideo'),(934,'Can change encoded video',234,'change_encodedvideo'),(935,'Can delete encoded video',234,'delete_encodedvideo'),(936,'Can view encoded video',234,'view_encodedvideo'),(937,'Can add course video',235,'add_coursevideo'),(938,'Can change course video',235,'change_coursevideo'),(939,'Can delete course video',235,'delete_coursevideo'),(940,'Can view course video',235,'view_coursevideo'),(941,'Can add video image',236,'add_videoimage'),(942,'Can change video image',236,'change_videoimage'),(943,'Can delete video image',236,'delete_videoimage'),(944,'Can view video image',236,'view_videoimage'),(945,'Can add transcript preference',237,'add_transcriptpreference'),(946,'Can change transcript preference',237,'change_transcriptpreference'),(947,'Can delete transcript preference',237,'delete_transcriptpreference'),(948,'Can view transcript preference',237,'view_transcriptpreference'),(949,'Can add video transcript',238,'add_videotranscript'),(950,'Can change video transcript',238,'change_videotranscript'),(951,'Can delete video transcript',238,'delete_videotranscript'),(952,'Can view video transcript',238,'view_videotranscript'),(953,'Can add third party transcript credentials state',239,'add_thirdpartytranscriptcredentialsstate'),(954,'Can change third party transcript credentials state',239,'change_thirdpartytranscriptcredentialsstate'),(955,'Can delete third party transcript credentials state',239,'delete_thirdpartytranscriptcredentialsstate'),(956,'Can view third party transcript credentials state',239,'view_thirdpartytranscriptcredentialsstate'),(957,'Can add course overview',240,'add_courseoverview'),(958,'Can change course overview',240,'change_courseoverview'),(959,'Can delete course overview',240,'delete_courseoverview'),(960,'Can view course overview',240,'view_courseoverview'),(961,'Can add course overview tab',241,'add_courseoverviewtab'),(962,'Can change course overview tab',241,'change_courseoverviewtab'),(963,'Can delete course overview tab',241,'delete_courseoverviewtab'),(964,'Can view course overview tab',241,'view_courseoverviewtab'),(965,'Can add course overview image set',242,'add_courseoverviewimageset'),(966,'Can change course overview image set',242,'change_courseoverviewimageset'),(967,'Can delete course overview image set',242,'delete_courseoverviewimageset'),(968,'Can view course overview image set',242,'view_courseoverviewimageset'),(969,'Can add course overview image config',243,'add_courseoverviewimageconfig'),(970,'Can change course overview image config',243,'change_courseoverviewimageconfig'),(971,'Can delete course overview image config',243,'delete_courseoverviewimageconfig'),(972,'Can view course overview image config',243,'view_courseoverviewimageconfig'),(973,'Can add historical course overview',244,'add_historicalcourseoverview'),(974,'Can change historical course overview',244,'change_historicalcourseoverview'),(975,'Can delete historical course overview',244,'delete_historicalcourseoverview'),(976,'Can view historical course overview',244,'view_historicalcourseoverview'),(977,'Can add simulate_publish argument',245,'add_simulatecoursepublishconfig'),(978,'Can change simulate_publish argument',245,'change_simulatecoursepublishconfig'),(979,'Can delete simulate_publish argument',245,'delete_simulatecoursepublishconfig'),(980,'Can view simulate_publish argument',245,'view_simulatecoursepublishconfig'),(981,'Can add block structure configuration',246,'add_blockstructureconfiguration'),(982,'Can change block structure configuration',246,'change_blockstructureconfiguration'),(983,'Can delete block structure configuration',246,'delete_blockstructureconfiguration'),(984,'Can view block structure configuration',246,'view_blockstructureconfiguration'),(985,'Can add block structure model',247,'add_blockstructuremodel'),(986,'Can change block structure model',247,'change_blockstructuremodel'),(987,'Can delete block structure model',247,'delete_blockstructuremodel'),(988,'Can view block structure model',247,'view_blockstructuremodel'),(989,'Can add x domain proxy configuration',248,'add_xdomainproxyconfiguration'),(990,'Can change x domain proxy configuration',248,'change_xdomainproxyconfiguration'),(991,'Can delete x domain proxy configuration',248,'delete_xdomainproxyconfiguration'),(992,'Can view x domain proxy configuration',248,'view_xdomainproxyconfiguration'),(993,'Can add commerce configuration',249,'add_commerceconfiguration'),(994,'Can change commerce configuration',249,'change_commerceconfiguration'),(995,'Can delete commerce configuration',249,'delete_commerceconfiguration'),(996,'Can view commerce configuration',249,'view_commerceconfiguration'),(997,'Can add credit course',250,'add_creditcourse'),(998,'Can change credit course',250,'change_creditcourse'),(999,'Can delete credit course',250,'delete_creditcourse'),(1000,'Can view credit course',250,'view_creditcourse'),(1001,'Can add credit eligibility',251,'add_crediteligibility'),(1002,'Can change credit eligibility',251,'change_crediteligibility'),(1003,'Can delete credit eligibility',251,'delete_crediteligibility'),(1004,'Can view credit eligibility',251,'view_crediteligibility'),(1005,'Can add credit provider',252,'add_creditprovider'),(1006,'Can change credit provider',252,'change_creditprovider'),(1007,'Can delete credit provider',252,'delete_creditprovider'),(1008,'Can view credit provider',252,'view_creditprovider'),(1009,'Can add credit request',253,'add_creditrequest'),(1010,'Can change credit request',253,'change_creditrequest'),(1011,'Can delete credit request',253,'delete_creditrequest'),(1012,'Can view credit request',253,'view_creditrequest'),(1013,'Can add credit requirement',254,'add_creditrequirement'),(1014,'Can change credit requirement',254,'change_creditrequirement'),(1015,'Can delete credit requirement',254,'delete_creditrequirement'),(1016,'Can view credit requirement',254,'view_creditrequirement'),(1017,'Can add credit requirement status',255,'add_creditrequirementstatus'),(1018,'Can change credit requirement status',255,'change_creditrequirementstatus'),(1019,'Can delete credit requirement status',255,'delete_creditrequirementstatus'),(1020,'Can view credit requirement status',255,'view_creditrequirementstatus'),(1021,'Can add credit config',256,'add_creditconfig'),(1022,'Can change credit config',256,'change_creditconfig'),(1023,'Can delete credit config',256,'delete_creditconfig'),(1024,'Can view credit config',256,'view_creditconfig'),(1025,'Can add course team',257,'add_courseteam'),(1026,'Can change course team',257,'change_courseteam'),(1027,'Can delete course team',257,'delete_courseteam'),(1028,'Can view course team',257,'view_courseteam'),(1029,'Can add course team membership',258,'add_courseteammembership'),(1030,'Can change course team membership',258,'change_courseteammembership'),(1031,'Can delete course team membership',258,'delete_courseteammembership'),(1032,'Can view course team membership',258,'view_courseteammembership'),(1033,'Can add x block configuration',259,'add_xblockconfiguration'),(1034,'Can change x block configuration',259,'change_xblockconfiguration'),(1035,'Can delete x block configuration',259,'delete_xblockconfiguration'),(1036,'Can view x block configuration',259,'view_xblockconfiguration'),(1037,'Can add x block studio configuration',260,'add_xblockstudioconfiguration'),(1038,'Can change x block studio configuration',260,'change_xblockstudioconfiguration'),(1039,'Can delete x block studio configuration',260,'delete_xblockstudioconfiguration'),(1040,'Can view x block studio configuration',260,'view_xblockstudioconfiguration'),(1041,'Can add x block studio configuration flag',261,'add_xblockstudioconfigurationflag'),(1042,'Can change x block studio configuration flag',261,'change_xblockstudioconfigurationflag'),(1043,'Can delete x block studio configuration flag',261,'delete_xblockstudioconfigurationflag'),(1044,'Can view x block studio configuration flag',261,'view_xblockstudioconfigurationflag'),(1045,'Can add programs api config',262,'add_programsapiconfig'),(1046,'Can change programs api config',262,'change_programsapiconfig'),(1047,'Can delete programs api config',262,'delete_programsapiconfig'),(1048,'Can view programs api config',262,'view_programsapiconfig'),(1049,'Can add program live configuration',263,'add_programliveconfiguration'),(1050,'Can change program live configuration',263,'change_programliveconfiguration'),(1051,'Can delete program live configuration',263,'delete_programliveconfiguration'),(1052,'Can view program live configuration',263,'view_programliveconfiguration'),(1053,'Can add program discussions configuration',264,'add_programdiscussionsconfiguration'),(1054,'Can change program discussions configuration',264,'change_programdiscussionsconfiguration'),(1055,'Can delete program discussions configuration',264,'delete_programdiscussionsconfiguration'),(1056,'Can view program discussions configuration',264,'view_programdiscussionsconfiguration'),(1057,'Can add historical program live configuration',265,'add_historicalprogramliveconfiguration'),(1058,'Can change historical program live configuration',265,'change_historicalprogramliveconfiguration'),(1059,'Can delete historical program live configuration',265,'delete_historicalprogramliveconfiguration'),(1060,'Can view historical program live configuration',265,'view_historicalprogramliveconfiguration'),(1061,'Can add historical program discussions configuration',266,'add_historicalprogramdiscussionsconfiguration'),(1062,'Can change historical program discussions configuration',266,'change_historicalprogramdiscussionsconfiguration'),(1063,'Can delete historical program discussions configuration',266,'delete_historicalprogramdiscussionsconfiguration'),(1064,'Can view historical program discussions configuration',266,'view_historicalprogramdiscussionsconfiguration'),(1065,'Can add catalog integration',267,'add_catalogintegration'),(1066,'Can change catalog integration',267,'change_catalogintegration'),(1067,'Can delete catalog integration',267,'delete_catalogintegration'),(1068,'Can view catalog integration',267,'view_catalogintegration'),(1069,'Can add kv store',268,'add_kvstore'),(1070,'Can change kv store',268,'change_kvstore'),(1071,'Can delete kv store',268,'delete_kvstore'),(1072,'Can view kv store',268,'view_kvstore'),(1073,'Can add course content milestone',269,'add_coursecontentmilestone'),(1074,'Can change course content milestone',269,'change_coursecontentmilestone'),(1075,'Can delete course content milestone',269,'delete_coursecontentmilestone'),(1076,'Can view course content milestone',269,'view_coursecontentmilestone'),(1077,'Can add course milestone',270,'add_coursemilestone'),(1078,'Can change course milestone',270,'change_coursemilestone'),(1079,'Can delete course milestone',270,'delete_coursemilestone'),(1080,'Can view course milestone',270,'view_coursemilestone'),(1081,'Can add milestone',271,'add_milestone'),(1082,'Can change milestone',271,'change_milestone'),(1083,'Can delete milestone',271,'delete_milestone'),(1084,'Can view milestone',271,'view_milestone'),(1085,'Can add milestone relationship type',272,'add_milestonerelationshiptype'),(1086,'Can change milestone relationship type',272,'change_milestonerelationshiptype'),(1087,'Can delete milestone relationship type',272,'delete_milestonerelationshiptype'),(1088,'Can view milestone relationship type',272,'view_milestonerelationshiptype'),(1089,'Can add user milestone',273,'add_usermilestone'),(1090,'Can change user milestone',273,'change_usermilestone'),(1091,'Can delete user milestone',273,'delete_usermilestone'),(1092,'Can view user milestone',273,'view_usermilestone'),(1093,'Can add api access request',1,'add_apiaccessrequest'),(1094,'Can change api access request',1,'change_apiaccessrequest'),(1095,'Can delete api access request',1,'delete_apiaccessrequest'),(1096,'Can view api access request',1,'view_apiaccessrequest'),(1097,'Can add api access config',274,'add_apiaccessconfig'),(1098,'Can change api access config',274,'change_apiaccessconfig'),(1099,'Can delete api access config',274,'delete_apiaccessconfig'),(1100,'Can view api access config',274,'view_apiaccessconfig'),(1101,'Can add catalog',275,'add_catalog'),(1102,'Can change catalog',275,'change_catalog'),(1103,'Can delete catalog',275,'delete_catalog'),(1104,'Can view catalog',275,'view_catalog'),(1105,'Can add badge assertion',276,'add_badgeassertion'),(1106,'Can change badge assertion',276,'change_badgeassertion'),(1107,'Can delete badge assertion',276,'delete_badgeassertion'),(1108,'Can view badge assertion',276,'view_badgeassertion'),(1109,'Can add badge class',277,'add_badgeclass'),(1110,'Can change badge class',277,'change_badgeclass'),(1111,'Can delete badge class',277,'delete_badgeclass'),(1112,'Can view badge class',277,'view_badgeclass'),(1113,'Can add course complete image configuration',278,'add_coursecompleteimageconfiguration'),(1114,'Can change course complete image configuration',278,'change_coursecompleteimageconfiguration'),(1115,'Can delete course complete image configuration',278,'delete_coursecompleteimageconfiguration'),(1116,'Can view course complete image configuration',278,'view_coursecompleteimageconfiguration'),(1117,'Can add course event badges configuration',279,'add_courseeventbadgesconfiguration'),(1118,'Can change course event badges configuration',279,'change_courseeventbadgesconfiguration'),(1119,'Can delete course event badges configuration',279,'delete_courseeventbadgesconfiguration'),(1120,'Can view course event badges configuration',279,'view_courseeventbadgesconfiguration'),(1121,'Can add failed task',280,'add_failedtask'),(1122,'Can change failed task',280,'change_failedtask'),(1123,'Can delete failed task',280,'delete_failedtask'),(1124,'Can view failed task',280,'view_failedtask'),(1125,'Can add crawlers config',281,'add_crawlersconfig'),(1126,'Can change crawlers config',281,'change_crawlersconfig'),(1127,'Can delete crawlers config',281,'delete_crawlersconfig'),(1128,'Can view crawlers config',281,'view_crawlersconfig'),(1129,'Can add Waffle flag course override',282,'add_waffleflagcourseoverridemodel'),(1130,'Can change Waffle flag course override',282,'change_waffleflagcourseoverridemodel'),(1131,'Can delete Waffle flag course override',282,'delete_waffleflagcourseoverridemodel'),(1132,'Can view Waffle flag course override',282,'view_waffleflagcourseoverridemodel'),(1133,'Can add Waffle flag org override',283,'add_waffleflagorgoverridemodel'),(1134,'Can change Waffle flag org override',283,'change_waffleflagorgoverridemodel'),(1135,'Can delete Waffle flag org override',283,'delete_waffleflagorgoverridemodel'),(1136,'Can view Waffle flag org override',283,'view_waffleflagorgoverridemodel'),(1137,'Can add course goal',284,'add_coursegoal'),(1138,'Can change course goal',284,'change_coursegoal'),(1139,'Can delete course goal',284,'delete_coursegoal'),(1140,'Can view course goal',284,'view_coursegoal'),(1141,'Can add historical course goal',285,'add_historicalcoursegoal'),(1142,'Can change historical course goal',285,'change_historicalcoursegoal'),(1143,'Can delete historical course goal',285,'delete_historicalcoursegoal'),(1144,'Can view historical course goal',285,'view_historicalcoursegoal'),(1145,'Can add user activity',286,'add_useractivity'),(1146,'Can change user activity',286,'change_useractivity'),(1147,'Can delete user activity',286,'delete_useractivity'),(1148,'Can view user activity',286,'view_useractivity'),(1149,'Can add course goal reminder status',287,'add_coursegoalreminderstatus'),(1150,'Can change course goal reminder status',287,'change_coursegoalreminderstatus'),(1151,'Can delete course goal reminder status',287,'delete_coursegoalreminderstatus'),(1152,'Can view course goal reminder status',287,'view_coursegoalreminderstatus'),(1153,'Can add historical user calendar sync config',288,'add_historicalusercalendarsyncconfig'),(1154,'Can change historical user calendar sync config',288,'change_historicalusercalendarsyncconfig'),(1155,'Can delete historical user calendar sync config',288,'delete_historicalusercalendarsyncconfig'),(1156,'Can view historical user calendar sync config',288,'view_historicalusercalendarsyncconfig'),(1157,'Can add user calendar sync config',289,'add_usercalendarsyncconfig'),(1158,'Can change user calendar sync config',289,'change_usercalendarsyncconfig'),(1159,'Can delete user calendar sync config',289,'delete_usercalendarsyncconfig'),(1160,'Can view user calendar sync config',289,'view_usercalendarsyncconfig'),(1161,'Can add course duration limit config',290,'add_coursedurationlimitconfig'),(1162,'Can change course duration limit config',290,'change_coursedurationlimitconfig'),(1163,'Can delete course duration limit config',290,'delete_coursedurationlimitconfig'),(1164,'Can view course duration limit config',290,'view_coursedurationlimitconfig'),(1165,'Can add content type gating config',291,'add_contenttypegatingconfig'),(1166,'Can change content type gating config',291,'change_contenttypegatingconfig'),(1167,'Can delete content type gating config',291,'delete_contenttypegatingconfig'),(1168,'Can view content type gating config',291,'view_contenttypegatingconfig'),(1169,'Can add discount restriction config',292,'add_discountrestrictionconfig'),(1170,'Can change discount restriction config',292,'change_discountrestrictionconfig'),(1171,'Can delete discount restriction config',292,'delete_discountrestrictionconfig'),(1172,'Can view discount restriction config',292,'view_discountrestrictionconfig'),(1173,'Can add discount percentage config',293,'add_discountpercentageconfig'),(1174,'Can change discount percentage config',293,'change_discountpercentageconfig'),(1175,'Can delete discount percentage config',293,'delete_discountpercentageconfig'),(1176,'Can view discount percentage config',293,'view_discountpercentageconfig'),(1177,'Can add Experiment Data',294,'add_experimentdata'),(1178,'Can change Experiment Data',294,'change_experimentdata'),(1179,'Can delete Experiment Data',294,'delete_experimentdata'),(1180,'Can view Experiment Data',294,'view_experimentdata'),(1181,'Can add Experiment Key-Value Pair',295,'add_experimentkeyvalue'),(1182,'Can change Experiment Key-Value Pair',295,'change_experimentkeyvalue'),(1183,'Can delete Experiment Key-Value Pair',295,'delete_experimentkeyvalue'),(1184,'Can view Experiment Key-Value Pair',295,'view_experimentkeyvalue'),(1185,'Can add historical Experiment Key-Value Pair',296,'add_historicalexperimentkeyvalue'),(1186,'Can change historical Experiment Key-Value Pair',296,'change_historicalexperimentkeyvalue'),(1187,'Can delete historical Experiment Key-Value Pair',296,'delete_historicalexperimentkeyvalue'),(1188,'Can view historical Experiment Key-Value Pair',296,'view_historicalexperimentkeyvalue'),(1189,'Can add self paced relative dates config',297,'add_selfpacedrelativedatesconfig'),(1190,'Can change self paced relative dates config',297,'change_selfpacedrelativedatesconfig'),(1191,'Can delete self paced relative dates config',297,'delete_selfpacedrelativedatesconfig'),(1192,'Can view self paced relative dates config',297,'view_selfpacedrelativedatesconfig'),(1193,'Can add external id',298,'add_externalid'),(1194,'Can change external id',298,'change_externalid'),(1195,'Can delete external id',298,'delete_externalid'),(1196,'Can view external id',298,'view_externalid'),(1197,'Can add external id type',299,'add_externalidtype'),(1198,'Can change external id type',299,'change_externalidtype'),(1199,'Can delete external id type',299,'delete_externalidtype'),(1200,'Can view external id type',299,'view_externalidtype'),(1201,'Can add historical external id',300,'add_historicalexternalid'),(1202,'Can change historical external id',300,'change_historicalexternalid'),(1203,'Can delete historical external id',300,'delete_historicalexternalid'),(1204,'Can view historical external id',300,'view_historicalexternalid'),(1205,'Can add historical external id type',301,'add_historicalexternalidtype'),(1206,'Can change historical external id type',301,'change_historicalexternalidtype'),(1207,'Can delete historical external id type',301,'delete_historicalexternalidtype'),(1208,'Can view historical external id type',301,'view_historicalexternalidtype'),(1209,'Can add user demographic',302,'add_userdemographics'),(1210,'Can change user demographic',302,'change_userdemographics'),(1211,'Can delete user demographic',302,'delete_userdemographics'),(1212,'Can view user demographic',302,'view_userdemographics'),(1213,'Can add historical user demographic',303,'add_historicaluserdemographics'),(1214,'Can change historical user demographic',303,'change_historicaluserdemographics'),(1215,'Can delete historical user demographic',303,'delete_historicaluserdemographics'),(1216,'Can view historical user demographic',303,'view_historicaluserdemographics'),(1217,'Can add Schedule',304,'add_schedule'),(1218,'Can change Schedule',304,'change_schedule'),(1219,'Can delete Schedule',304,'delete_schedule'),(1220,'Can view Schedule',304,'view_schedule'),(1221,'Can add schedule config',305,'add_scheduleconfig'),(1222,'Can change schedule config',305,'change_scheduleconfig'),(1223,'Can delete schedule config',305,'delete_scheduleconfig'),(1224,'Can view schedule config',305,'view_scheduleconfig'),(1225,'Can add schedule experience',306,'add_scheduleexperience'),(1226,'Can change schedule experience',306,'change_scheduleexperience'),(1227,'Can delete schedule experience',306,'delete_scheduleexperience'),(1228,'Can view schedule experience',306,'view_scheduleexperience'),(1229,'Can add historical Schedule',307,'add_historicalschedule'),(1230,'Can change historical Schedule',307,'change_historicalschedule'),(1231,'Can delete historical Schedule',307,'delete_historicalschedule'),(1232,'Can view historical Schedule',307,'view_historicalschedule'),(1233,'Can add course section',308,'add_coursesection'),(1234,'Can change course section',308,'change_coursesection'),(1235,'Can delete course section',308,'delete_coursesection'),(1236,'Can view course section',308,'view_coursesection'),(1237,'Can add Course Sequence',309,'add_coursesectionsequence'),(1238,'Can change Course Sequence',309,'change_coursesectionsequence'),(1239,'Can delete Course Sequence',309,'delete_coursesectionsequence'),(1240,'Can view Course Sequence',309,'view_coursesectionsequence'),(1241,'Can add learning context',310,'add_learningcontext'),(1242,'Can change learning context',310,'change_learningcontext'),(1243,'Can delete learning context',310,'delete_learningcontext'),(1244,'Can view learning context',310,'view_learningcontext'),(1245,'Can add learning sequence',311,'add_learningsequence'),(1246,'Can change learning sequence',311,'change_learningsequence'),(1247,'Can delete learning sequence',311,'delete_learningsequence'),(1248,'Can view learning sequence',311,'view_learningsequence'),(1249,'Can add Course',312,'add_coursecontext'),(1250,'Can change Course',312,'change_coursecontext'),(1251,'Can delete Course',312,'delete_coursecontext'),(1252,'Can view Course',312,'view_coursecontext'),(1253,'Can add course sequence exam',313,'add_coursesequenceexam'),(1254,'Can change course sequence exam',313,'change_coursesequenceexam'),(1255,'Can delete course sequence exam',313,'delete_coursesequenceexam'),(1256,'Can view course sequence exam',313,'view_coursesequenceexam'),(1257,'Can add publish report',314,'add_publishreport'),(1258,'Can change publish report',314,'change_publishreport'),(1259,'Can delete publish report',314,'delete_publishreport'),(1260,'Can view publish report',314,'view_publishreport'),(1261,'Can add content error',315,'add_contenterror'),(1262,'Can change content error',315,'change_contenterror'),(1263,'Can delete content error',315,'delete_contenterror'),(1264,'Can view content error',315,'view_contenterror'),(1265,'Can add user partition group',316,'add_userpartitiongroup'),(1266,'Can change user partition group',316,'change_userpartitiongroup'),(1267,'Can delete user partition group',316,'delete_userpartitiongroup'),(1268,'Can view user partition group',316,'view_userpartitiongroup'),(1269,'Can add section sequence partition group',317,'add_sectionsequencepartitiongroup'),(1270,'Can change section sequence partition group',317,'change_sectionsequencepartitiongroup'),(1271,'Can delete section sequence partition group',317,'delete_sectionsequencepartitiongroup'),(1272,'Can view section sequence partition group',317,'view_sectionsequencepartitiongroup'),(1273,'Can add section partition group',318,'add_sectionpartitiongroup'),(1274,'Can change section partition group',318,'change_sectionpartitiongroup'),(1275,'Can delete section partition group',318,'delete_sectionpartitiongroup'),(1276,'Can view section partition group',318,'view_sectionpartitiongroup'),(1277,'Can add organization',319,'add_organization'),(1278,'Can change organization',319,'change_organization'),(1279,'Can delete organization',319,'delete_organization'),(1280,'Can view organization',319,'view_organization'),(1281,'Can add Link Course',320,'add_organizationcourse'),(1282,'Can change Link Course',320,'change_organizationcourse'),(1283,'Can delete Link Course',320,'delete_organizationcourse'),(1284,'Can view Link Course',320,'view_organizationcourse'),(1285,'Can add historical organization',321,'add_historicalorganization'),(1286,'Can change historical organization',321,'change_historicalorganization'),(1287,'Can delete historical organization',321,'delete_historicalorganization'),(1288,'Can view historical organization',321,'view_historicalorganization'),(1289,'Can add historical Link Course',322,'add_historicalorganizationcourse'),(1290,'Can change historical Link Course',322,'change_historicalorganizationcourse'),(1291,'Can delete historical Link Course',322,'delete_historicalorganizationcourse'),(1292,'Can view historical Link Course',322,'view_historicalorganizationcourse'),(1293,'Can add integrity signature',323,'add_integritysignature'),(1294,'Can change integrity signature',323,'change_integritysignature'),(1295,'Can delete integrity signature',323,'delete_integritysignature'),(1296,'Can view integrity signature',323,'view_integritysignature'),(1297,'Can add survey report',324,'add_surveyreport'),(1298,'Can change survey report',324,'change_surveyreport'),(1299,'Can delete survey report',324,'delete_surveyreport'),(1300,'Can view survey report',324,'view_surveyreport'),(1301,'Can add lti 1.3 tool key',325,'add_ltitoolkey'),(1302,'Can change lti 1.3 tool key',325,'change_ltitoolkey'),(1303,'Can delete lti 1.3 tool key',325,'delete_ltitoolkey'),(1304,'Can view lti 1.3 tool key',325,'view_ltitoolkey'),(1305,'Can add lti 1.3 tool',326,'add_ltitool'),(1306,'Can change lti 1.3 tool',326,'change_ltitool'),(1307,'Can delete lti 1.3 tool',326,'delete_ltitool'),(1308,'Can view lti 1.3 tool',326,'view_ltitool'),(1309,'Can add saved program',327,'add_savedprogram'),(1310,'Can change saved program',327,'change_savedprogram'),(1311,'Can delete saved program',327,'delete_savedprogram'),(1312,'Can view saved program',327,'view_savedprogram'),(1313,'Can add saved course',328,'add_savedcourse'),(1314,'Can change saved course',328,'change_savedcourse'),(1315,'Can delete saved course',328,'delete_savedcourse'),(1316,'Can view saved course',328,'view_savedcourse'),(1317,'Can add bundle',329,'add_bundle'),(1318,'Can change bundle',329,'change_bundle'),(1319,'Can delete bundle',329,'delete_bundle'),(1320,'Can view bundle',329,'view_bundle'),(1321,'Can add bundle link',330,'add_bundlelink'),(1322,'Can change bundle link',330,'change_bundlelink'),(1323,'Can delete bundle link',330,'delete_bundlelink'),(1324,'Can view bundle link',330,'view_bundlelink'),(1325,'Can add bundle version',331,'add_bundleversion'),(1326,'Can change bundle version',331,'change_bundleversion'),(1327,'Can delete bundle version',331,'delete_bundleversion'),(1328,'Can view bundle version',331,'view_bundleversion'),(1329,'Can add collection',332,'add_collection'),(1330,'Can change collection',332,'change_collection'),(1331,'Can delete collection',332,'delete_collection'),(1332,'Can view collection',332,'view_collection'),(1333,'Can add draft',333,'add_draft'),(1334,'Can change draft',333,'change_draft'),(1335,'Can delete draft',333,'delete_draft'),(1336,'Can view draft',333,'view_draft'),(1337,'Can add enrollment notification email template',334,'add_enrollmentnotificationemailtemplate'),(1338,'Can change enrollment notification email template',334,'change_enrollmentnotificationemailtemplate'),(1339,'Can delete enrollment notification email template',334,'delete_enrollmentnotificationemailtemplate'),(1340,'Can view enrollment notification email template',334,'view_enrollmentnotificationemailtemplate'),(1341,'Can add Enterprise Catalog Query',335,'add_enterprisecatalogquery'),(1342,'Can change Enterprise Catalog Query',335,'change_enterprisecatalogquery'),(1343,'Can delete Enterprise Catalog Query',335,'delete_enterprisecatalogquery'),(1344,'Can view Enterprise Catalog Query',335,'view_enterprisecatalogquery'),(1345,'Can add Enterprise Customer',336,'add_enterprisecustomer'),(1346,'Can change Enterprise Customer',336,'change_enterprisecustomer'),(1347,'Can delete Enterprise Customer',336,'delete_enterprisecustomer'),(1348,'Can view Enterprise Customer',336,'view_enterprisecustomer'),(1349,'Can add Branding Configuration',337,'add_enterprisecustomerbrandingconfiguration'),(1350,'Can change Branding Configuration',337,'change_enterprisecustomerbrandingconfiguration'),(1351,'Can delete Branding Configuration',337,'delete_enterprisecustomerbrandingconfiguration'),(1352,'Can view Branding Configuration',337,'view_enterprisecustomerbrandingconfiguration'),(1353,'Can add Enterprise Customer Catalog',338,'add_enterprisecustomercatalog'),(1354,'Can change Enterprise Customer Catalog',338,'change_enterprisecustomercatalog'),(1355,'Can delete Enterprise Customer Catalog',338,'delete_enterprisecustomercatalog'),(1356,'Can view Enterprise Customer Catalog',338,'view_enterprisecustomercatalog'),(1357,'Can add enterprise customer identity provider',339,'add_enterprisecustomeridentityprovider'),(1358,'Can change enterprise customer identity provider',339,'change_enterprisecustomeridentityprovider'),(1359,'Can delete enterprise customer identity provider',339,'delete_enterprisecustomeridentityprovider'),(1360,'Can view enterprise customer identity provider',339,'view_enterprisecustomeridentityprovider'),(1361,'Can add enterprise customer reporting configuration',340,'add_enterprisecustomerreportingconfiguration'),(1362,'Can change enterprise customer reporting configuration',340,'change_enterprisecustomerreportingconfiguration'),(1363,'Can delete enterprise customer reporting configuration',340,'delete_enterprisecustomerreportingconfiguration'),(1364,'Can view enterprise customer reporting configuration',340,'view_enterprisecustomerreportingconfiguration'),(1365,'Can add Enterprise Customer Type',341,'add_enterprisecustomertype'),(1366,'Can change Enterprise Customer Type',341,'change_enterprisecustomertype'),(1367,'Can delete Enterprise Customer Type',341,'delete_enterprisecustomertype'),(1368,'Can view Enterprise Customer Type',341,'view_enterprisecustomertype'),(1369,'Can add Enterprise Customer Learner',342,'add_enterprisecustomeruser'),(1370,'Can change Enterprise Customer Learner',342,'change_enterprisecustomeruser'),(1371,'Can delete Enterprise Customer Learner',342,'delete_enterprisecustomeruser'),(1372,'Can view Enterprise Customer Learner',342,'view_enterprisecustomeruser'),(1373,'Can add enterprise course enrollment',343,'add_enterprisecourseenrollment'),(1374,'Can change enterprise course enrollment',343,'change_enterprisecourseenrollment'),(1375,'Can delete enterprise course enrollment',343,'delete_enterprisecourseenrollment'),(1376,'Can view enterprise course enrollment',343,'view_enterprisecourseenrollment'),(1377,'Can add enterprise enrollment source',344,'add_enterpriseenrollmentsource'),(1378,'Can change enterprise enrollment source',344,'change_enterpriseenrollmentsource'),(1379,'Can delete enterprise enrollment source',344,'delete_enterpriseenrollmentsource'),(1380,'Can view enterprise enrollment source',344,'view_enterpriseenrollmentsource'),(1381,'Can add enterprise feature role',345,'add_enterprisefeaturerole'),(1382,'Can change enterprise feature role',345,'change_enterprisefeaturerole'),(1383,'Can delete enterprise feature role',345,'delete_enterprisefeaturerole'),(1384,'Can view enterprise feature role',345,'view_enterprisefeaturerole'),(1385,'Can add enterprise feature user role assignment',346,'add_enterprisefeatureuserroleassignment'),(1386,'Can change enterprise feature user role assignment',346,'change_enterprisefeatureuserroleassignment'),(1387,'Can delete enterprise feature user role assignment',346,'delete_enterprisefeatureuserroleassignment'),(1388,'Can view enterprise feature user role assignment',346,'view_enterprisefeatureuserroleassignment'),(1389,'Can add historical enrollment notification email template',347,'add_historicalenrollmentnotificationemailtemplate'),(1390,'Can change historical enrollment notification email template',347,'change_historicalenrollmentnotificationemailtemplate'),(1391,'Can delete historical enrollment notification email template',347,'delete_historicalenrollmentnotificationemailtemplate'),(1392,'Can view historical enrollment notification email template',347,'view_historicalenrollmentnotificationemailtemplate'),(1393,'Can add historical enterprise course enrollment',348,'add_historicalenterprisecourseenrollment'),(1394,'Can change historical enterprise course enrollment',348,'change_historicalenterprisecourseenrollment'),(1395,'Can delete historical enterprise course enrollment',348,'delete_historicalenterprisecourseenrollment'),(1396,'Can view historical enterprise course enrollment',348,'view_historicalenterprisecourseenrollment'),(1397,'Can add historical Enterprise Customer',349,'add_historicalenterprisecustomer'),(1398,'Can change historical Enterprise Customer',349,'change_historicalenterprisecustomer'),(1399,'Can delete historical Enterprise Customer',349,'delete_historicalenterprisecustomer'),(1400,'Can view historical Enterprise Customer',349,'view_historicalenterprisecustomer'),(1401,'Can add historical Enterprise Customer Catalog',350,'add_historicalenterprisecustomercatalog'),(1402,'Can change historical Enterprise Customer Catalog',350,'change_historicalenterprisecustomercatalog'),(1403,'Can delete historical Enterprise Customer Catalog',350,'delete_historicalenterprisecustomercatalog'),(1404,'Can view historical Enterprise Customer Catalog',350,'view_historicalenterprisecustomercatalog'),(1405,'Can add historical pending enrollment',351,'add_historicalpendingenrollment'),(1406,'Can change historical pending enrollment',351,'change_historicalpendingenrollment'),(1407,'Can delete historical pending enrollment',351,'delete_historicalpendingenrollment'),(1408,'Can view historical pending enrollment',351,'view_historicalpendingenrollment'),(1409,'Can add historical pending enterprise customer user',352,'add_historicalpendingenterprisecustomeruser'),(1410,'Can change historical pending enterprise customer user',352,'change_historicalpendingenterprisecustomeruser'),(1411,'Can delete historical pending enterprise customer user',352,'delete_historicalpendingenterprisecustomeruser'),(1412,'Can view historical pending enterprise customer user',352,'view_historicalpendingenterprisecustomeruser'),(1413,'Can add pending enrollment',353,'add_pendingenrollment'),(1414,'Can change pending enrollment',353,'change_pendingenrollment'),(1415,'Can delete pending enrollment',353,'delete_pendingenrollment'),(1416,'Can view pending enrollment',353,'view_pendingenrollment'),(1417,'Can add pending enterprise customer user',354,'add_pendingenterprisecustomeruser'),(1418,'Can change pending enterprise customer user',354,'change_pendingenterprisecustomeruser'),(1419,'Can delete pending enterprise customer user',354,'delete_pendingenterprisecustomeruser'),(1420,'Can view pending enterprise customer user',354,'view_pendingenterprisecustomeruser'),(1421,'Can add system wide enterprise role',355,'add_systemwideenterpriserole'),(1422,'Can change system wide enterprise role',355,'change_systemwideenterpriserole'),(1423,'Can delete system wide enterprise role',355,'delete_systemwideenterpriserole'),(1424,'Can view system wide enterprise role',355,'view_systemwideenterpriserole'),(1425,'Can add system wide enterprise user role assignment',356,'add_systemwideenterpriseuserroleassignment'),(1426,'Can change system wide enterprise user role assignment',356,'change_systemwideenterpriseuserroleassignment'),(1427,'Can delete system wide enterprise user role assignment',356,'delete_systemwideenterpriseuserroleassignment'),(1428,'Can view system wide enterprise user role assignment',356,'view_systemwideenterpriseuserroleassignment'),(1429,'Can add licensed enterprise course enrollment',357,'add_licensedenterprisecourseenrollment'),(1430,'Can change licensed enterprise course enrollment',357,'change_licensedenterprisecourseenrollment'),(1431,'Can delete licensed enterprise course enrollment',357,'delete_licensedenterprisecourseenrollment'),(1432,'Can view licensed enterprise course enrollment',357,'view_licensedenterprisecourseenrollment'),(1433,'Can add historical licensed enterprise course enrollment',358,'add_historicallicensedenterprisecourseenrollment'),(1434,'Can change historical licensed enterprise course enrollment',358,'change_historicallicensedenterprisecourseenrollment'),(1435,'Can delete historical licensed enterprise course enrollment',358,'delete_historicallicensedenterprisecourseenrollment'),(1436,'Can view historical licensed enterprise course enrollment',358,'view_historicallicensedenterprisecourseenrollment'),(1437,'Can add historical pending enterprise customer admin user',359,'add_historicalpendingenterprisecustomeradminuser'),(1438,'Can change historical pending enterprise customer admin user',359,'change_historicalpendingenterprisecustomeradminuser'),(1439,'Can delete historical pending enterprise customer admin user',359,'delete_historicalpendingenterprisecustomeradminuser'),(1440,'Can view historical pending enterprise customer admin user',359,'view_historicalpendingenterprisecustomeradminuser'),(1441,'Can add pending enterprise customer admin user',360,'add_pendingenterprisecustomeradminuser'),(1442,'Can change pending enterprise customer admin user',360,'change_pendingenterprisecustomeradminuser'),(1443,'Can delete pending enterprise customer admin user',360,'delete_pendingenterprisecustomeradminuser'),(1444,'Can view pending enterprise customer admin user',360,'view_pendingenterprisecustomeradminuser'),(1445,'Can add update role assignments with customers config',361,'add_updateroleassignmentswithcustomersconfig'),(1446,'Can change update role assignments with customers config',361,'change_updateroleassignmentswithcustomersconfig'),(1447,'Can delete update role assignments with customers config',361,'delete_updateroleassignmentswithcustomersconfig'),(1448,'Can view update role assignments with customers config',361,'view_updateroleassignmentswithcustomersconfig'),(1449,'Can add Admin Notification Filter',362,'add_adminnotificationfilter'),(1450,'Can change Admin Notification Filter',362,'change_adminnotificationfilter'),(1451,'Can delete Admin Notification Filter',362,'delete_adminnotificationfilter'),(1452,'Can view Admin Notification Filter',362,'view_adminnotificationfilter'),(1453,'Can add Admin Notification',363,'add_adminnotification'),(1454,'Can change Admin Notification',363,'change_adminnotification'),(1455,'Can delete Admin Notification',363,'delete_adminnotification'),(1456,'Can view Admin Notification',363,'view_adminnotification'),(1457,'Can add Admin Notification Read',364,'add_adminnotificationread'),(1458,'Can change Admin Notification Read',364,'change_adminnotificationread'),(1459,'Can delete Admin Notification Read',364,'delete_adminnotificationread'),(1460,'Can view Admin Notification Read',364,'view_adminnotificationread'),(1461,'Can add historical system wide enterprise user role assignment',365,'add_historicalsystemwideenterpriseuserroleassignment'),(1462,'Can change historical system wide enterprise user role assignment',365,'change_historicalsystemwideenterpriseuserroleassignment'),(1463,'Can delete historical system wide enterprise user role assignment',365,'delete_historicalsystemwideenterpriseuserroleassignment'),(1464,'Can view historical system wide enterprise user role assignment',365,'view_historicalsystemwideenterpriseuserroleassignment'),(1465,'Can add historical Enterprise Customer Learner',366,'add_historicalenterprisecustomeruser'),(1466,'Can change historical Enterprise Customer Learner',366,'change_historicalenterprisecustomeruser'),(1467,'Can delete historical Enterprise Customer Learner',366,'delete_historicalenterprisecustomeruser'),(1468,'Can view historical Enterprise Customer Learner',366,'view_historicalenterprisecustomeruser'),(1469,'Can add bulk_update_catalog_query_id argument',367,'add_bulkcatalogqueryupdatecommandconfiguration'),(1470,'Can change bulk_update_catalog_query_id argument',367,'change_bulkcatalogqueryupdatecommandconfiguration'),(1471,'Can delete bulk_update_catalog_query_id argument',367,'delete_bulkcatalogqueryupdatecommandconfiguration'),(1472,'Can view bulk_update_catalog_query_id argument',367,'view_bulkcatalogqueryupdatecommandconfiguration'),(1473,'Can add historical enterprise customer invite key',368,'add_historicalenterprisecustomerinvitekey'),(1474,'Can change historical enterprise customer invite key',368,'change_historicalenterprisecustomerinvitekey'),(1475,'Can delete historical enterprise customer invite key',368,'delete_historicalenterprisecustomerinvitekey'),(1476,'Can view historical enterprise customer invite key',368,'view_historicalenterprisecustomerinvitekey'),(1477,'Can add enterprise customer invite key',369,'add_enterprisecustomerinvitekey'),(1478,'Can change enterprise customer invite key',369,'change_enterprisecustomerinvitekey'),(1479,'Can delete enterprise customer invite key',369,'delete_enterprisecustomerinvitekey'),(1480,'Can view enterprise customer invite key',369,'view_enterprisecustomerinvitekey'),(1481,'Can add Data Sharing Consent Record',370,'add_datasharingconsent'),(1482,'Can change Data Sharing Consent Record',370,'change_datasharingconsent'),(1483,'Can delete Data Sharing Consent Record',370,'delete_datasharingconsent'),(1484,'Can view Data Sharing Consent Record',370,'view_datasharingconsent'),(1485,'Can add historical Data Sharing Consent Record',371,'add_historicaldatasharingconsent'),(1486,'Can change historical Data Sharing Consent Record',371,'change_historicaldatasharingconsent'),(1487,'Can delete historical Data Sharing Consent Record',371,'delete_historicaldatasharingconsent'),(1488,'Can view historical Data Sharing Consent Record',371,'view_historicaldatasharingconsent'),(1489,'Can add data sharing consent text overrides',372,'add_datasharingconsenttextoverrides'),(1490,'Can change data sharing consent text overrides',372,'change_datasharingconsenttextoverrides'),(1491,'Can delete data sharing consent text overrides',372,'delete_datasharingconsenttextoverrides'),(1492,'Can view data sharing consent text overrides',372,'view_datasharingconsenttextoverrides'),(1493,'Can add content metadata item transmission',373,'add_contentmetadataitemtransmission'),(1494,'Can change content metadata item transmission',373,'change_contentmetadataitemtransmission'),(1495,'Can delete content metadata item transmission',373,'delete_contentmetadataitemtransmission'),(1496,'Can view content metadata item transmission',373,'view_contentmetadataitemtransmission'),(1497,'Can add generic learner data transmission audit',374,'add_genericlearnerdatatransmissionaudit'),(1498,'Can change generic learner data transmission audit',374,'change_genericlearnerdatatransmissionaudit'),(1499,'Can delete generic learner data transmission audit',374,'delete_genericlearnerdatatransmissionaudit'),(1500,'Can view generic learner data transmission audit',374,'view_genericlearnerdatatransmissionaudit'),(1501,'Can add generic enterprise customer plugin configuration',375,'add_genericenterprisecustomerpluginconfiguration'),(1502,'Can change generic enterprise customer plugin configuration',375,'change_genericenterprisecustomerpluginconfiguration'),(1503,'Can delete generic enterprise customer plugin configuration',375,'delete_genericenterprisecustomerpluginconfiguration'),(1504,'Can view generic enterprise customer plugin configuration',375,'view_genericenterprisecustomerpluginconfiguration'),(1505,'Can add api response record',376,'add_apiresponserecord'),(1506,'Can change api response record',376,'change_apiresponserecord'),(1507,'Can delete api response record',376,'delete_apiresponserecord'),(1508,'Can view api response record',376,'view_apiresponserecord'),(1509,'Can add degreed enterprise customer configuration',377,'add_degreedenterprisecustomerconfiguration'),(1510,'Can change degreed enterprise customer configuration',377,'change_degreedenterprisecustomerconfiguration'),(1511,'Can delete degreed enterprise customer configuration',377,'delete_degreedenterprisecustomerconfiguration'),(1512,'Can view degreed enterprise customer configuration',377,'view_degreedenterprisecustomerconfiguration'),(1513,'Can add degreed global configuration',378,'add_degreedglobalconfiguration'),(1514,'Can change degreed global configuration',378,'change_degreedglobalconfiguration'),(1515,'Can delete degreed global configuration',378,'delete_degreedglobalconfiguration'),(1516,'Can view degreed global configuration',378,'view_degreedglobalconfiguration'),(1517,'Can add degreed learner data transmission audit',379,'add_degreedlearnerdatatransmissionaudit'),(1518,'Can change degreed learner data transmission audit',379,'change_degreedlearnerdatatransmissionaudit'),(1519,'Can delete degreed learner data transmission audit',379,'delete_degreedlearnerdatatransmissionaudit'),(1520,'Can view degreed learner data transmission audit',379,'view_degreedlearnerdatatransmissionaudit'),(1521,'Can add historical degreed enterprise customer configuration',380,'add_historicaldegreedenterprisecustomerconfiguration'),(1522,'Can change historical degreed enterprise customer configuration',380,'change_historicaldegreedenterprisecustomerconfiguration'),(1523,'Can delete historical degreed enterprise customer configuration',380,'delete_historicaldegreedenterprisecustomerconfiguration'),(1524,'Can view historical degreed enterprise customer configuration',380,'view_historicaldegreedenterprisecustomerconfiguration'),(1525,'Can add degreed2 learner data transmission audit',381,'add_degreed2learnerdatatransmissionaudit'),(1526,'Can change degreed2 learner data transmission audit',381,'change_degreed2learnerdatatransmissionaudit'),(1527,'Can delete degreed2 learner data transmission audit',381,'delete_degreed2learnerdatatransmissionaudit'),(1528,'Can view degreed2 learner data transmission audit',381,'view_degreed2learnerdatatransmissionaudit'),(1529,'Can add historical degreed2 enterprise customer configuration',382,'add_historicaldegreed2enterprisecustomerconfiguration'),(1530,'Can change historical degreed2 enterprise customer configuration',382,'change_historicaldegreed2enterprisecustomerconfiguration'),(1531,'Can delete historical degreed2 enterprise customer configuration',382,'delete_historicaldegreed2enterprisecustomerconfiguration'),(1532,'Can view historical degreed2 enterprise customer configuration',382,'view_historicaldegreed2enterprisecustomerconfiguration'),(1533,'Can add degreed2 enterprise customer configuration',383,'add_degreed2enterprisecustomerconfiguration'),(1534,'Can change degreed2 enterprise customer configuration',383,'change_degreed2enterprisecustomerconfiguration'),(1535,'Can delete degreed2 enterprise customer configuration',383,'delete_degreed2enterprisecustomerconfiguration'),(1536,'Can view degreed2 enterprise customer configuration',383,'view_degreed2enterprisecustomerconfiguration'),(1537,'Can add sap success factors global configuration',384,'add_sapsuccessfactorsglobalconfiguration'),(1538,'Can change sap success factors global configuration',384,'change_sapsuccessfactorsglobalconfiguration'),(1539,'Can delete sap success factors global configuration',384,'delete_sapsuccessfactorsglobalconfiguration'),(1540,'Can view sap success factors global configuration',384,'view_sapsuccessfactorsglobalconfiguration'),(1541,'Can add sap success factors enterprise customer configuration',385,'add_sapsuccessfactorsenterprisecustomerconfiguration'),(1542,'Can change sap success factors enterprise customer configuration',385,'change_sapsuccessfactorsenterprisecustomerconfiguration'),(1543,'Can delete sap success factors enterprise customer configuration',385,'delete_sapsuccessfactorsenterprisecustomerconfiguration'),(1544,'Can view sap success factors enterprise customer configuration',385,'view_sapsuccessfactorsenterprisecustomerconfiguration'),(1545,'Can add sap success factors learner data transmission audit',386,'add_sapsuccessfactorslearnerdatatransmissionaudit'),(1546,'Can change sap success factors learner data transmission audit',386,'change_sapsuccessfactorslearnerdatatransmissionaudit'),(1547,'Can delete sap success factors learner data transmission audit',386,'delete_sapsuccessfactorslearnerdatatransmissionaudit'),(1548,'Can view sap success factors learner data transmission audit',386,'view_sapsuccessfactorslearnerdatatransmissionaudit'),(1549,'Can add cornerstone enterprise customer configuration',387,'add_cornerstoneenterprisecustomerconfiguration'),(1550,'Can change cornerstone enterprise customer configuration',387,'change_cornerstoneenterprisecustomerconfiguration'),(1551,'Can delete cornerstone enterprise customer configuration',387,'delete_cornerstoneenterprisecustomerconfiguration'),(1552,'Can view cornerstone enterprise customer configuration',387,'view_cornerstoneenterprisecustomerconfiguration'),(1553,'Can add cornerstone global configuration',388,'add_cornerstoneglobalconfiguration'),(1554,'Can change cornerstone global configuration',388,'change_cornerstoneglobalconfiguration'),(1555,'Can delete cornerstone global configuration',388,'delete_cornerstoneglobalconfiguration'),(1556,'Can view cornerstone global configuration',388,'view_cornerstoneglobalconfiguration'),(1557,'Can add cornerstone learner data transmission audit',389,'add_cornerstonelearnerdatatransmissionaudit'),(1558,'Can change cornerstone learner data transmission audit',389,'change_cornerstonelearnerdatatransmissionaudit'),(1559,'Can delete cornerstone learner data transmission audit',389,'delete_cornerstonelearnerdatatransmissionaudit'),(1560,'Can view cornerstone learner data transmission audit',389,'view_cornerstonelearnerdatatransmissionaudit'),(1561,'Can add historical cornerstone enterprise customer configuration',390,'add_historicalcornerstoneenterprisecustomerconfiguration'),(1562,'Can change historical cornerstone enterprise customer configuration',390,'change_historicalcornerstoneenterprisecustomerconfiguration'),(1563,'Can delete historical cornerstone enterprise customer configuration',390,'delete_historicalcornerstoneenterprisecustomerconfiguration'),(1564,'Can view historical cornerstone enterprise customer configuration',390,'view_historicalcornerstoneenterprisecustomerconfiguration'),(1565,'Can add cornerstone course key',391,'add_cornerstonecoursekey'),(1566,'Can change cornerstone course key',391,'change_cornerstonecoursekey'),(1567,'Can delete cornerstone course key',391,'delete_cornerstonecoursekey'),(1568,'Can view cornerstone course key',391,'view_cornerstonecoursekey'),(1569,'Can add xapilrs configuration',392,'add_xapilrsconfiguration'),(1570,'Can change xapilrs configuration',392,'change_xapilrsconfiguration'),(1571,'Can delete xapilrs configuration',392,'delete_xapilrsconfiguration'),(1572,'Can view xapilrs configuration',392,'view_xapilrsconfiguration'),(1573,'Can add xapi learner data transmission audit',393,'add_xapilearnerdatatransmissionaudit'),(1574,'Can change xapi learner data transmission audit',393,'change_xapilearnerdatatransmissionaudit'),(1575,'Can delete xapi learner data transmission audit',393,'delete_xapilearnerdatatransmissionaudit'),(1576,'Can view xapi learner data transmission audit',393,'view_xapilearnerdatatransmissionaudit'),(1577,'Can add blackboard learner data transmission audit',394,'add_blackboardlearnerdatatransmissionaudit'),(1578,'Can change blackboard learner data transmission audit',394,'change_blackboardlearnerdatatransmissionaudit'),(1579,'Can delete blackboard learner data transmission audit',394,'delete_blackboardlearnerdatatransmissionaudit'),(1580,'Can view blackboard learner data transmission audit',394,'view_blackboardlearnerdatatransmissionaudit'),(1581,'Can add blackboard learner assessment data transmission audit',395,'add_blackboardlearnerassessmentdatatransmissionaudit'),(1582,'Can change blackboard learner assessment data transmission audit',395,'change_blackboardlearnerassessmentdatatransmissionaudit'),(1583,'Can delete blackboard learner assessment data transmission audit',395,'delete_blackboardlearnerassessmentdatatransmissionaudit'),(1584,'Can view blackboard learner assessment data transmission audit',395,'view_blackboardlearnerassessmentdatatransmissionaudit'),(1585,'Can add blackboard enterprise customer configuration',396,'add_blackboardenterprisecustomerconfiguration'),(1586,'Can change blackboard enterprise customer configuration',396,'change_blackboardenterprisecustomerconfiguration'),(1587,'Can delete blackboard enterprise customer configuration',396,'delete_blackboardenterprisecustomerconfiguration'),(1588,'Can view blackboard enterprise customer configuration',396,'view_blackboardenterprisecustomerconfiguration'),(1589,'Can add historical blackboard enterprise customer configuration',397,'add_historicalblackboardenterprisecustomerconfiguration'),(1590,'Can change historical blackboard enterprise customer configuration',397,'change_historicalblackboardenterprisecustomerconfiguration'),(1591,'Can delete historical blackboard enterprise customer configuration',397,'delete_historicalblackboardenterprisecustomerconfiguration'),(1592,'Can view historical blackboard enterprise customer configuration',397,'view_historicalblackboardenterprisecustomerconfiguration'),(1593,'Can add blackboard global configuration',398,'add_blackboardglobalconfiguration'),(1594,'Can change blackboard global configuration',398,'change_blackboardglobalconfiguration'),(1595,'Can delete blackboard global configuration',398,'delete_blackboardglobalconfiguration'),(1596,'Can view blackboard global configuration',398,'view_blackboardglobalconfiguration'),(1597,'Can add historical canvas enterprise customer configuration',399,'add_historicalcanvasenterprisecustomerconfiguration'),(1598,'Can change historical canvas enterprise customer configuration',399,'change_historicalcanvasenterprisecustomerconfiguration'),(1599,'Can delete historical canvas enterprise customer configuration',399,'delete_historicalcanvasenterprisecustomerconfiguration'),(1600,'Can view historical canvas enterprise customer configuration',399,'view_historicalcanvasenterprisecustomerconfiguration'),(1601,'Can add canvas enterprise customer configuration',400,'add_canvasenterprisecustomerconfiguration'),(1602,'Can change canvas enterprise customer configuration',400,'change_canvasenterprisecustomerconfiguration'),(1603,'Can delete canvas enterprise customer configuration',400,'delete_canvasenterprisecustomerconfiguration'),(1604,'Can view canvas enterprise customer configuration',400,'view_canvasenterprisecustomerconfiguration'),(1605,'Can add canvas learner data transmission audit',401,'add_canvaslearnerdatatransmissionaudit'),(1606,'Can change canvas learner data transmission audit',401,'change_canvaslearnerdatatransmissionaudit'),(1607,'Can delete canvas learner data transmission audit',401,'delete_canvaslearnerdatatransmissionaudit'),(1608,'Can view canvas learner data transmission audit',401,'view_canvaslearnerdatatransmissionaudit'),(1609,'Can add canvas learner assessment data transmission audit',402,'add_canvaslearnerassessmentdatatransmissionaudit'),(1610,'Can change canvas learner assessment data transmission audit',402,'change_canvaslearnerassessmentdatatransmissionaudit'),(1611,'Can delete canvas learner assessment data transmission audit',402,'delete_canvaslearnerassessmentdatatransmissionaudit'),(1612,'Can view canvas learner assessment data transmission audit',402,'view_canvaslearnerassessmentdatatransmissionaudit'),(1613,'Can add moodle enterprise customer configuration',403,'add_moodleenterprisecustomerconfiguration'),(1614,'Can change moodle enterprise customer configuration',403,'change_moodleenterprisecustomerconfiguration'),(1615,'Can delete moodle enterprise customer configuration',403,'delete_moodleenterprisecustomerconfiguration'),(1616,'Can view moodle enterprise customer configuration',403,'view_moodleenterprisecustomerconfiguration'),(1617,'Can add historical moodle enterprise customer configuration',404,'add_historicalmoodleenterprisecustomerconfiguration'),(1618,'Can change historical moodle enterprise customer configuration',404,'change_historicalmoodleenterprisecustomerconfiguration'),(1619,'Can delete historical moodle enterprise customer configuration',404,'delete_historicalmoodleenterprisecustomerconfiguration'),(1620,'Can view historical moodle enterprise customer configuration',404,'view_historicalmoodleenterprisecustomerconfiguration'),(1621,'Can add moodle learner data transmission audit',405,'add_moodlelearnerdatatransmissionaudit'),(1622,'Can change moodle learner data transmission audit',405,'change_moodlelearnerdatatransmissionaudit'),(1623,'Can delete moodle learner data transmission audit',405,'delete_moodlelearnerdatatransmissionaudit'),(1624,'Can view moodle learner data transmission audit',405,'view_moodlelearnerdatatransmissionaudit'),(1625,'Can add announcement',406,'add_announcement'),(1626,'Can change announcement',406,'change_announcement'),(1627,'Can delete announcement',406,'delete_announcement'),(1628,'Can view announcement',406,'view_announcement'),(1629,'Can add bookmark',407,'add_bookmark'),(1630,'Can change bookmark',407,'change_bookmark'),(1631,'Can delete bookmark',407,'delete_bookmark'),(1632,'Can view bookmark',407,'view_bookmark'),(1633,'Can add x block cache',408,'add_xblockcache'),(1634,'Can change x block cache',408,'change_xblockcache'),(1635,'Can delete x block cache',408,'delete_xblockcache'),(1636,'Can view x block cache',408,'view_xblockcache'),(1637,'Can add content library',409,'add_contentlibrary'),(1638,'Can change content library',409,'change_contentlibrary'),(1639,'Can delete content library',409,'delete_contentlibrary'),(1640,'Can view content library',409,'view_contentlibrary'),(1641,'Can add content library permission',410,'add_contentlibrarypermission'),(1642,'Can change content library permission',410,'change_contentlibrarypermission'),(1643,'Can delete content library permission',410,'delete_contentlibrarypermission'),(1644,'Can view content library permission',410,'view_contentlibrarypermission'),(1645,'Can add lti profile',411,'add_ltiprofile'),(1646,'Can change lti profile',411,'change_ltiprofile'),(1647,'Can delete lti profile',411,'delete_ltiprofile'),(1648,'Can view lti profile',411,'view_ltiprofile'),(1649,'Can add lti graded resource',412,'add_ltigradedresource'),(1650,'Can change lti graded resource',412,'change_ltigradedresource'),(1651,'Can delete lti graded resource',412,'delete_ltigradedresource'),(1652,'Can view lti graded resource',412,'view_ltigradedresource'),(1653,'Can add content library block import task',413,'add_contentlibraryblockimporttask'),(1654,'Can change content library block import task',413,'change_contentlibraryblockimporttask'),(1655,'Can delete content library block import task',413,'delete_contentlibraryblockimporttask'),(1656,'Can view content library block import task',413,'view_contentlibraryblockimporttask'),(1657,'Can add course app status',414,'add_courseappstatus'),(1658,'Can change course app status',414,'change_courseappstatus'),(1659,'Can delete course app status',414,'delete_courseappstatus'),(1660,'Can view course app status',414,'view_courseappstatus'),(1661,'Can add historical course app status',415,'add_historicalcourseappstatus'),(1662,'Can change historical course app status',415,'change_historicalcourseappstatus'),(1663,'Can delete historical course app status',415,'delete_historicalcourseappstatus'),(1664,'Can view historical course app status',415,'view_historicalcourseappstatus'),(1665,'Can add historical course live configuration',416,'add_historicalcourseliveconfiguration'),(1666,'Can change historical course live configuration',416,'change_historicalcourseliveconfiguration'),(1667,'Can delete historical course live configuration',416,'delete_historicalcourseliveconfiguration'),(1668,'Can view historical course live configuration',416,'view_historicalcourseliveconfiguration'),(1669,'Can add course live configuration',417,'add_courseliveconfiguration'),(1670,'Can change course live configuration',417,'change_courseliveconfiguration'),(1671,'Can delete course live configuration',417,'delete_courseliveconfiguration'),(1672,'Can view course live configuration',417,'view_courseliveconfiguration'),(1673,'Can add credentials api config',418,'add_credentialsapiconfig'),(1674,'Can change credentials api config',418,'change_credentialsapiconfig'),(1675,'Can delete credentials api config',418,'delete_credentialsapiconfig'),(1676,'Can view credentials api config',418,'view_credentialsapiconfig'),(1677,'Can add notify_credentials argument',419,'add_notifycredentialsconfig'),(1678,'Can change notify_credentials argument',419,'change_notifycredentialsconfig'),(1679,'Can delete notify_credentials argument',419,'delete_notifycredentialsconfig'),(1680,'Can view notify_credentials argument',419,'view_notifycredentialsconfig'),(1681,'Can add historical discussions configuration',420,'add_historicaldiscussionsconfiguration'),(1682,'Can change historical discussions configuration',420,'change_historicaldiscussionsconfiguration'),(1683,'Can delete historical discussions configuration',420,'delete_historicaldiscussionsconfiguration'),(1684,'Can view historical discussions configuration',420,'view_historicaldiscussionsconfiguration'),(1685,'Can add discussions configuration',421,'add_discussionsconfiguration'),(1686,'Can change discussions configuration',421,'change_discussionsconfiguration'),(1687,'Can delete discussions configuration',421,'delete_discussionsconfiguration'),(1688,'Can view discussions configuration',421,'view_discussionsconfiguration'),(1689,'Can add provider filter',422,'add_providerfilter'),(1690,'Can change provider filter',422,'change_providerfilter'),(1691,'Can delete provider filter',422,'delete_providerfilter'),(1692,'Can view provider filter',422,'view_providerfilter'),(1693,'Can add discussion topic link',423,'add_discussiontopiclink'),(1694,'Can change discussion topic link',423,'change_discussiontopiclink'),(1695,'Can delete discussion topic link',423,'delete_discussiontopiclink'),(1696,'Can view discussion topic link',423,'view_discussiontopiclink'),(1697,'Can add persistent subsection grade',424,'add_persistentsubsectiongrade'),(1698,'Can change persistent subsection grade',424,'change_persistentsubsectiongrade'),(1699,'Can delete persistent subsection grade',424,'delete_persistentsubsectiongrade'),(1700,'Can view persistent subsection grade',424,'view_persistentsubsectiongrade'),(1701,'Can add visible blocks',425,'add_visibleblocks'),(1702,'Can change visible blocks',425,'change_visibleblocks'),(1703,'Can delete visible blocks',425,'delete_visibleblocks'),(1704,'Can view visible blocks',425,'view_visibleblocks'),(1705,'Can add persistent course grade',426,'add_persistentcoursegrade'),(1706,'Can change persistent course grade',426,'change_persistentcoursegrade'),(1707,'Can delete persistent course grade',426,'delete_persistentcoursegrade'),(1708,'Can view persistent course grade',426,'view_persistentcoursegrade'),(1709,'Can add compute grades setting',427,'add_computegradessetting'),(1710,'Can change compute grades setting',427,'change_computegradessetting'),(1711,'Can delete compute grades setting',427,'delete_computegradessetting'),(1712,'Can view compute grades setting',427,'view_computegradessetting'),(1713,'Can add persistent subsection grade override',428,'add_persistentsubsectiongradeoverride'),(1714,'Can change persistent subsection grade override',428,'change_persistentsubsectiongradeoverride'),(1715,'Can delete persistent subsection grade override',428,'delete_persistentsubsectiongradeoverride'),(1716,'Can view persistent subsection grade override',428,'view_persistentsubsectiongradeoverride'),(1717,'Can add historical persistent subsection grade override',429,'add_historicalpersistentsubsectiongradeoverride'),(1718,'Can change historical persistent subsection grade override',429,'change_historicalpersistentsubsectiongradeoverride'),(1719,'Can delete historical persistent subsection grade override',429,'delete_historicalpersistentsubsectiongradeoverride'),(1720,'Can view historical persistent subsection grade override',429,'view_historicalpersistentsubsectiongradeoverride'),(1721,'Can add historical program enrollment',430,'add_historicalprogramenrollment'),(1722,'Can change historical program enrollment',430,'change_historicalprogramenrollment'),(1723,'Can delete historical program enrollment',430,'delete_historicalprogramenrollment'),(1724,'Can view historical program enrollment',430,'view_historicalprogramenrollment'),(1725,'Can add program enrollment',431,'add_programenrollment'),(1726,'Can change program enrollment',431,'change_programenrollment'),(1727,'Can delete program enrollment',431,'delete_programenrollment'),(1728,'Can view program enrollment',431,'view_programenrollment'),(1729,'Can add historical program course enrollment',432,'add_historicalprogramcourseenrollment'),(1730,'Can change historical program course enrollment',432,'change_historicalprogramcourseenrollment'),(1731,'Can delete historical program course enrollment',432,'delete_historicalprogramcourseenrollment'),(1732,'Can view historical program course enrollment',432,'view_historicalprogramcourseenrollment'),(1733,'Can add program course enrollment',433,'add_programcourseenrollment'),(1734,'Can change program course enrollment',433,'change_programcourseenrollment'),(1735,'Can delete program course enrollment',433,'delete_programcourseenrollment'),(1736,'Can view program course enrollment',433,'view_programcourseenrollment'),(1737,'Can add course access role assignment',434,'add_courseaccessroleassignment'),(1738,'Can change course access role assignment',434,'change_courseaccessroleassignment'),(1739,'Can delete course access role assignment',434,'delete_courseaccessroleassignment'),(1740,'Can view course access role assignment',434,'view_courseaccessroleassignment'),(1741,'Can add site theme',435,'add_sitetheme'),(1742,'Can change site theme',435,'change_sitetheme'),(1743,'Can delete site theme',435,'delete_sitetheme'),(1744,'Can view site theme',435,'view_sitetheme'),(1745,'Can add historical learner pathway progress',436,'add_historicallearnerpathwayprogress'),(1746,'Can change historical learner pathway progress',436,'change_historicallearnerpathwayprogress'),(1747,'Can delete historical learner pathway progress',436,'delete_historicallearnerpathwayprogress'),(1748,'Can view historical learner pathway progress',436,'view_historicallearnerpathwayprogress'),(1749,'Can add learner pathway progress',437,'add_learnerpathwayprogress'),(1750,'Can change learner pathway progress',437,'change_learnerpathwayprogress'),(1751,'Can delete learner pathway progress',437,'delete_learnerpathwayprogress'),(1752,'Can view learner pathway progress',437,'view_learnerpathwayprogress'),(1753,'Can add learner enterprise pathway membership',438,'add_learnerenterprisepathwaymembership'),(1754,'Can change learner enterprise pathway membership',438,'change_learnerenterprisepathwaymembership'),(1755,'Can delete learner enterprise pathway membership',438,'delete_learnerenterprisepathwaymembership'),(1756,'Can view learner enterprise pathway membership',438,'view_learnerenterprisepathwaymembership'),(1757,'Can add score overrider',439,'add_scoreoverrider'),(1758,'Can change score overrider',439,'change_scoreoverrider'),(1759,'Can delete score overrider',439,'delete_scoreoverrider'),(1760,'Can view score overrider',439,'view_scoreoverrider'),(1761,'Can add proctored exam',440,'add_proctoredexam'),(1762,'Can change proctored exam',440,'change_proctoredexam'),(1763,'Can delete proctored exam',440,'delete_proctoredexam'),(1764,'Can view proctored exam',440,'view_proctoredexam'),(1765,'Can add Proctored exam review policy',441,'add_proctoredexamreviewpolicy'),(1766,'Can change Proctored exam review policy',441,'change_proctoredexamreviewpolicy'),(1767,'Can delete Proctored exam review policy',441,'delete_proctoredexamreviewpolicy'),(1768,'Can view Proctored exam review policy',441,'view_proctoredexamreviewpolicy'),(1769,'Can add proctored exam review policy history',442,'add_proctoredexamreviewpolicyhistory'),(1770,'Can change proctored exam review policy history',442,'change_proctoredexamreviewpolicyhistory'),(1771,'Can delete proctored exam review policy history',442,'delete_proctoredexamreviewpolicyhistory'),(1772,'Can view proctored exam review policy history',442,'view_proctoredexamreviewpolicyhistory'),(1773,'Can add proctored exam software secure comment',443,'add_proctoredexamsoftwaresecurecomment'),(1774,'Can change proctored exam software secure comment',443,'change_proctoredexamsoftwaresecurecomment'),(1775,'Can delete proctored exam software secure comment',443,'delete_proctoredexamsoftwaresecurecomment'),(1776,'Can view proctored exam software secure comment',443,'view_proctoredexamsoftwaresecurecomment'),(1777,'Can add Proctored exam software secure review',444,'add_proctoredexamsoftwaresecurereview'),(1778,'Can change Proctored exam software secure review',444,'change_proctoredexamsoftwaresecurereview'),(1779,'Can delete Proctored exam software secure review',444,'delete_proctoredexamsoftwaresecurereview'),(1780,'Can view Proctored exam software secure review',444,'view_proctoredexamsoftwaresecurereview'),(1781,'Can add Proctored exam review archive',445,'add_proctoredexamsoftwaresecurereviewhistory'),(1782,'Can change Proctored exam review archive',445,'change_proctoredexamsoftwaresecurereviewhistory'),(1783,'Can delete Proctored exam review archive',445,'delete_proctoredexamsoftwaresecurereviewhistory'),(1784,'Can view Proctored exam review archive',445,'view_proctoredexamsoftwaresecurereviewhistory'),(1785,'Can add proctored allowance',446,'add_proctoredexamstudentallowance'),(1786,'Can change proctored allowance',446,'change_proctoredexamstudentallowance'),(1787,'Can delete proctored allowance',446,'delete_proctoredexamstudentallowance'),(1788,'Can view proctored allowance',446,'view_proctoredexamstudentallowance'),(1789,'Can add proctored allowance history',447,'add_proctoredexamstudentallowancehistory'),(1790,'Can change proctored allowance history',447,'change_proctoredexamstudentallowancehistory'),(1791,'Can delete proctored allowance history',447,'delete_proctoredexamstudentallowancehistory'),(1792,'Can view proctored allowance history',447,'view_proctoredexamstudentallowancehistory'),(1793,'Can add proctored exam attempt',448,'add_proctoredexamstudentattempt'),(1794,'Can change proctored exam attempt',448,'change_proctoredexamstudentattempt'),(1795,'Can delete proctored exam attempt',448,'delete_proctoredexamstudentattempt'),(1796,'Can view proctored exam attempt',448,'view_proctoredexamstudentattempt'),(1797,'Can add historical proctored exam attempt',449,'add_historicalproctoredexamstudentattempt'),(1798,'Can change historical proctored exam attempt',449,'change_historicalproctoredexamstudentattempt'),(1799,'Can delete historical proctored exam attempt',449,'delete_historicalproctoredexamstudentattempt'),(1800,'Can view historical proctored exam attempt',449,'view_historicalproctoredexamstudentattempt'),(1801,'Can add historical proctored exam',450,'add_historicalproctoredexam'),(1802,'Can change historical proctored exam',450,'change_historicalproctoredexam'),(1803,'Can delete historical proctored exam',450,'delete_historicalproctoredexam'),(1804,'Can view historical proctored exam',450,'view_historicalproctoredexam'),(1805,'Can add lti configuration',451,'add_lticonfiguration'),(1806,'Can change lti configuration',451,'change_lticonfiguration'),(1807,'Can delete lti configuration',451,'delete_lticonfiguration'),(1808,'Can view lti configuration',451,'view_lticonfiguration'),(1809,'Can add lti ags line item',452,'add_ltiagslineitem'),(1810,'Can change lti ags line item',452,'change_ltiagslineitem'),(1811,'Can delete lti ags line item',452,'delete_ltiagslineitem'),(1812,'Can view lti ags line item',452,'view_ltiagslineitem'),(1813,'Can add lti ags score',453,'add_ltiagsscore'),(1814,'Can change lti ags score',453,'change_ltiagsscore'),(1815,'Can delete lti ags score',453,'delete_ltiagsscore'),(1816,'Can view lti ags score',453,'view_ltiagsscore'),(1817,'Can add lti dl content item',454,'add_ltidlcontentitem'),(1818,'Can change lti dl content item',454,'change_ltidlcontentitem'),(1819,'Can delete lti dl content item',454,'delete_ltidlcontentitem'),(1820,'Can view lti dl content item',454,'view_ltidlcontentitem'),(1821,'Can add course allow pii sharing in lti flag',455,'add_courseallowpiisharinginltiflag'),(1822,'Can change course allow pii sharing in lti flag',455,'change_courseallowpiisharinginltiflag'),(1823,'Can delete course allow pii sharing in lti flag',455,'delete_courseallowpiisharinginltiflag'),(1824,'Can view course allow pii sharing in lti flag',455,'view_courseallowpiisharinginltiflag'),(1825,'Can add block completion',456,'add_blockcompletion'),(1826,'Can change block completion',456,'change_blockcompletion'),(1827,'Can delete block completion',456,'delete_blockcompletion'),(1828,'Can view block completion',456,'view_blockcompletion'),(1829,'Can add csv operation',457,'add_csvoperation'),(1830,'Can change csv operation',457,'change_csvoperation'),(1831,'Can delete csv operation',457,'delete_csvoperation'),(1832,'Can view csv operation',457,'view_csvoperation'),(1833,'Can add verified name',458,'add_verifiedname'),(1834,'Can change verified name',458,'change_verifiedname'),(1835,'Can delete verified name',458,'delete_verifiedname'),(1836,'Can view verified name',458,'view_verifiedname'),(1837,'Can add verified name config',459,'add_verifiednameconfig'),(1838,'Can change verified name config',459,'change_verifiednameconfig'),(1839,'Can delete verified name config',459,'delete_verifiednameconfig'),(1840,'Can view verified name config',459,'view_verifiednameconfig'),(1841,'Can add historical verified name',460,'add_historicalverifiedname'),(1842,'Can change historical verified name',460,'change_historicalverifiedname'),(1843,'Can delete historical verified name',460,'delete_historicalverifiedname'),(1844,'Can view historical verified name',460,'view_historicalverifiedname'),(1845,'Can add learner course event',461,'add_learnercourseevent'),(1846,'Can change learner course event',461,'change_learnercourseevent'),(1847,'Can delete learner course event',461,'delete_learnercourseevent'),(1848,'Can view learner course event',461,'view_learnercourseevent'),(1849,'Can add multi choice response',462,'add_multichoiceresponse'),(1850,'Can change multi choice response',462,'change_multichoiceresponse'),(1851,'Can delete multi choice response',462,'delete_multichoiceresponse'),(1852,'Can view multi choice response',462,'view_multichoiceresponse'),(1853,'Can add survey export',463,'add_surveyexport'),(1854,'Can change survey export',463,'change_surveyexport'),(1855,'Can delete survey export',463,'delete_surveyexport'),(1856,'Can view survey export',463,'view_surveyexport'),(1857,'Can add course reflection',464,'add_coursereflection'),(1858,'Can change course reflection',464,'change_coursereflection'),(1859,'Can delete course reflection',464,'delete_coursereflection'),(1860,'Can view course reflection',464,'view_coursereflection'),(1861,'Can add course goal',465,'add_coursegoal'),(1862,'Can change course goal',465,'change_coursegoal'),(1863,'Can delete course goal',465,'delete_coursegoal'),(1864,'Can view course goal',465,'view_coursegoal'),(1865,'Can add content date',466,'add_contentdate'),(1866,'Can change content date',466,'change_contentdate'),(1867,'Can delete content date',466,'delete_contentdate'),(1868,'Can view content date',466,'view_contentdate'),(1869,'Can add date policy',467,'add_datepolicy'),(1870,'Can change date policy',467,'change_datepolicy'),(1871,'Can delete date policy',467,'delete_datepolicy'),(1872,'Can view date policy',467,'view_datepolicy'),(1873,'Can add user date',468,'add_userdate'),(1874,'Can change user date',468,'change_userdate'),(1875,'Can delete user date',468,'delete_userdate'),(1876,'Can view user date',468,'view_userdate'),(1877,'Can add video upload config',469,'add_videouploadconfig'),(1878,'Can change video upload config',469,'change_videouploadconfig'),(1879,'Can delete video upload config',469,'delete_videouploadconfig'),(1880,'Can view video upload config',469,'view_videouploadconfig'),(1881,'Can add course outline regenerate',470,'add_courseoutlineregenerate'),(1882,'Can change course outline regenerate',470,'change_courseoutlineregenerate'),(1883,'Can delete course outline regenerate',470,'delete_courseoutlineregenerate'),(1884,'Can view course outline regenerate',470,'view_courseoutlineregenerate'),(1885,'Can add Arguments for backfill_course_tabs',471,'add_backfillcoursetabsconfig'),(1886,'Can change Arguments for backfill_course_tabs',471,'change_backfillcoursetabsconfig'),(1887,'Can delete Arguments for backfill_course_tabs',471,'delete_backfillcoursetabsconfig'),(1888,'Can view Arguments for backfill_course_tabs',471,'view_backfillcoursetabsconfig'),(1889,'Can add Arguments for \'clean_stale_certificate_availability_dates\'',472,'add_cleanstalecertificateavailabilitydatesconfig'),(1890,'Can change Arguments for \'clean_stale_certificate_availability_dates\'',472,'change_cleanstalecertificateavailabilitydatesconfig'),(1891,'Can delete Arguments for \'clean_stale_certificate_availability_dates\'',472,'delete_cleanstalecertificateavailabilitydatesconfig'),(1892,'Can view Arguments for \'clean_stale_certificate_availability_dates\'',472,'view_cleanstalecertificateavailabilitydatesconfig'),(1893,'Can add course creator',473,'add_coursecreator'),(1894,'Can change course creator',473,'change_coursecreator'),(1895,'Can delete course creator',473,'delete_coursecreator'),(1896,'Can view course creator',473,'view_coursecreator'),(1897,'Can add studio config',474,'add_studioconfig'),(1898,'Can change studio config',474,'change_studioconfig'),(1899,'Can delete studio config',474,'delete_studioconfig'),(1900,'Can view studio config',474,'view_studioconfig'),(1901,'Can add course graph course dump',475,'add_coursegraphcoursedump'),(1902,'Can change course graph course dump',475,'change_coursegraphcoursedump'),(1903,'Can delete course graph course dump',475,'delete_coursegraphcoursedump'),(1904,'Can view course graph course dump',475,'view_coursegraphcoursedump'),(1905,'Can add available tag value',476,'add_tagavailablevalues'),(1906,'Can change available tag value',476,'change_tagavailablevalues'),(1907,'Can delete available tag value',476,'delete_tagavailablevalues'),(1908,'Can view available tag value',476,'view_tagavailablevalues'),(1909,'Can add tag category',477,'add_tagcategories'),(1910,'Can change tag category',477,'change_tagcategories'),(1911,'Can delete tag category',477,'delete_tagcategories'),(1912,'Can view tag category',477,'view_tagcategories'),(1913,'Can add user task artifact',478,'add_usertaskartifact'),(1914,'Can change user task artifact',478,'change_usertaskartifact'),(1915,'Can delete user task artifact',478,'delete_usertaskartifact'),(1916,'Can view user task artifact',478,'view_usertaskartifact'),(1917,'Can add user task status',479,'add_usertaskstatus'),(1918,'Can change user task status',479,'change_usertaskstatus'),(1919,'Can delete user task status',479,'delete_usertaskstatus'),(1920,'Can view user task status',479,'view_usertaskstatus'); /*!40000 ALTER TABLE `auth_permission` ENABLE KEYS */; UNLOCK TABLES; @@ -820,10 +827,11 @@ CREATE TABLE `auth_registration` ( `id` int(11) NOT NULL AUTO_INCREMENT, `activation_key` varchar(32) NOT NULL, `user_id` int(11) NOT NULL, + `activation_timestamp` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `activation_key` (`activation_key`), UNIQUE KEY `user_id` (`user_id`), - CONSTRAINT `auth_registration_user_id_734af68780d0cf34_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + CONSTRAINT `auth_registration_user_id_f99bc297_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -847,9 +855,9 @@ CREATE TABLE `auth_user` ( `password` varchar(128) NOT NULL, `last_login` datetime(6) DEFAULT NULL, `is_superuser` tinyint(1) NOT NULL, - `username` varchar(30) NOT NULL, - `first_name` varchar(30) NOT NULL, - `last_name` varchar(30) NOT NULL, + `username` varchar(150) NOT NULL, + `first_name` varchar(150) NOT NULL, + `last_name` varchar(150) NOT NULL, `email` varchar(254) NOT NULL, `is_staff` tinyint(1) NOT NULL, `is_active` tinyint(1) NOT NULL, @@ -857,7 +865,7 @@ CREATE TABLE `auth_user` ( PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`), UNIQUE KEY `email` (`email`) -) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -866,7 +874,7 @@ CREATE TABLE `auth_user` ( LOCK TABLES `auth_user` WRITE; /*!40000 ALTER TABLE `auth_user` DISABLE KEYS */; -INSERT INTO `auth_user` VALUES (1,'!M9I2WXRegdpSxWvfvOY61ceUPEMEhCNrhMM2huV8',NULL,1,'ecommerce_worker','','','ecommerce_worker@example.com',1,1,'2016-12-17 01:36:43.677170'),(2,'pbkdf2_sha256$20000$u8I8y2VuUvqV$735GMkStWaNyOaD6mB81isaTJjgr7AGl1RAZ6Nci4w0=','2016-12-18 05:11:31.932674',1,'edx','','','edx@example.com',1,1,'2016-12-17 01:53:34.104225'),(3,'pbkdf2_sha256$20000$7LkYbekAHaMd$2InidT7nklBXmbU7LBjV/KrV+xZhLENf6CqU6u/FwM4=',NULL,1,'credentials_worker','','','credentials_worker@example.com',1,1,'2016-12-17 01:53:56.965130'),(4,'pbkdf2_sha256$20000$cteCw0RJ3uVK$rkfQUabaBl2XTR4XHI7CSQMVuaznmAV7o/CsJI3utjg=',NULL,1,'discovery_worker','','','discovery_worker@example.com',1,1,'2016-12-17 01:55:18.267378'),(5,'pbkdf2_sha256$20000$gsjW1GgOxZZM$slHH+xxXLN0bl49irkkMIoyvmvBdL/PxOhU7rddgMQY=',NULL,0,'programs_worker','','','programs_worker@example.com',1,1,'2016-12-17 01:59:43.985839'),(6,'pbkdf2_sha256$20000$TjE34FJjc3vv$0B7GUmH8RwrOc/BvMoxjb5j8EgnWTt3sxorDANeF7Qw=',NULL,0,'honor','','','honor@example.com',0,1,'2017-06-07 00:44:10.768269'),(7,'pbkdf2_sha256$20000$TjE34FJjc3vv$0B7GUmH8RwrOc/BvMoxjb5j8EgnWTt3sxorDANeF7Qw=',NULL,0,'audit','','','audit@example.com',0,1,'2017-06-07 00:44:15.095537'),(8,'pbkdf2_sha256$20000$TjE34FJjc3vv$0B7GUmH8RwrOc/BvMoxjb5j8EgnWTt3sxorDANeF7Qw=',NULL,0,'verified','','','verified@example.com',0,1,'2017-06-07 00:44:19.391633'),(9,'pbkdf2_sha256$20000$TjE34FJjc3vv$0B7GUmH8RwrOc/BvMoxjb5j8EgnWTt3sxorDANeF7Qw=',NULL,0,'staff','','','staff@example.com',1,1,'2017-06-07 00:44:23.760465'),(10,'pbkdf2_sha256$20000$ayR9ljKsRuTn$O/xC1JEi+5hoiwVmOLywLz4YWiwfITXhGgFTSyEyxb8=',NULL,0,'enterprise_worker','','','enterprise_worker@example.com',0,1,'2018-01-31 21:13:18.474889'); +INSERT INTO `auth_user` VALUES (2,'!uZe7veOu1UhOq1Wo3r4KZvGm6LP9uheJsSN8i5Gw',NULL,0,'login_service_user','','','login_service_user@fake.email',0,1,'2023-02-21 14:10:50.949700'),(3,'pbkdf2_sha256$260000$mXsh1ZGHTrThJgsu4ZYJUx$JKXXutNGi3F4wQC+oj8FiWqYaLxoe0GBLm6PtxsKzxw=',NULL,1,'edx','','','edx@example.com',1,1,'2023-02-21 14:19:07.911310'),(4,'pbkdf2_sha256$260000$c8VjJNRGVFYzXikMFKkiGz$llv8kyjpRux+b2A4V4bfOToUzS69XmWygVJGTOtq8zA=',NULL,0,'enterprise_worker','','','enterprise_worker@example.com',1,1,'2023-02-21 14:19:26.427539'),(5,'pbkdf2_sha256$20000$TjE34FJjc3vv$0B7GUmH8RwrOc/BvMoxjb5j8EgnWTt3sxorDANeF7Qw=',NULL,0,'honor','','','honor@example.com',0,1,'2023-02-21 14:20:05.276063'),(6,'pbkdf2_sha256$20000$TjE34FJjc3vv$0B7GUmH8RwrOc/BvMoxjb5j8EgnWTt3sxorDANeF7Qw=',NULL,0,'audit','','','audit@example.com',0,1,'2023-02-21 14:20:15.876544'),(7,'pbkdf2_sha256$20000$TjE34FJjc3vv$0B7GUmH8RwrOc/BvMoxjb5j8EgnWTt3sxorDANeF7Qw=',NULL,0,'verified','','','verified@example.com',0,1,'2023-02-21 14:20:25.877637'),(8,'pbkdf2_sha256$20000$TjE34FJjc3vv$0B7GUmH8RwrOc/BvMoxjb5j8EgnWTt3sxorDANeF7Qw=',NULL,0,'staff','','','staff@example.com',1,1,'2023-02-21 14:20:36.511198'),(9,'pbkdf2_sha256$260000$XgJe7l0CuAcVbHGa2Lxq3y$1zU/EGibXC/qNAcJkXgxnBdMW2gwJOdV3JlRB7wB7/U=',NULL,1,'studio_worker','','','studio_worker@example.com',1,1,'2023-02-21 14:29:20.592741'),(10,'pbkdf2_sha256$260000$9rs2VbJvRiXX7OsYLRx6iX$TboW23cyjqxguPFDRajW0SQtE1QwreV+80I4hxUNwDA=',NULL,1,'retirement_service_worker','','','retirement_service_worker@example.com',1,1,'2023-02-21 14:29:52.624097'),(11,'pbkdf2_sha256$260000$riAoCVaz1hahRnyfL43FyJ$U3xXuH2homS286nMWnBQiUHmBDgMMv8dkQ3hNbUaTCE=',NULL,1,'ecommerce_worker','','','ecommerce_worker@example.com',1,1,'2023-02-21 14:38:44.158127'); /*!40000 ALTER TABLE `auth_user` ENABLE KEYS */; UNLOCK TABLES; @@ -881,10 +889,10 @@ CREATE TABLE `auth_user_groups` ( `user_id` int(11) NOT NULL, `group_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `user_id` (`user_id`,`group_id`), - KEY `auth_user_groups_group_id_33ac548dcf5f8e37_fk_auth_group_id` (`group_id`), - CONSTRAINT `auth_user_groups_group_id_33ac548dcf5f8e37_fk_auth_group_id` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`), - CONSTRAINT `auth_user_groups_user_id_4b5ed4ffdb8fd9b0_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `auth_user_groups_user_id_group_id_94350c0c_uniq` (`user_id`,`group_id`), + KEY `auth_user_groups_group_id_97559544_fk_auth_group_id` (`group_id`), + CONSTRAINT `auth_user_groups_group_id_97559544_fk_auth_group_id` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`), + CONSTRAINT `auth_user_groups_user_id_6a12ed8b_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -908,11 +916,11 @@ CREATE TABLE `auth_user_user_permissions` ( `user_id` int(11) NOT NULL, `permission_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `user_id` (`user_id`,`permission_id`), - KEY `auth_user_u_permission_id_384b62483d7071f0_fk_auth_permission_id` (`permission_id`), - CONSTRAINT `auth_user_u_permission_id_384b62483d7071f0_fk_auth_permission_id` FOREIGN KEY (`permission_id`) REFERENCES `auth_permission` (`id`), - CONSTRAINT `auth_user_user_permissi_user_id_7f0938558328534a_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + UNIQUE KEY `auth_user_user_permissions_user_id_permission_id_14a6b632_uniq` (`user_id`,`permission_id`), + KEY `auth_user_user_permi_permission_id_1fbb5f2c_fk_auth_perm` (`permission_id`), + CONSTRAINT `auth_user_user_permi_permission_id_1fbb5f2c_fk_auth_perm` FOREIGN KEY (`permission_id`) REFERENCES `auth_permission` (`id`), + CONSTRAINT `auth_user_user_permissions_user_id_a95ead1b_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=145 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -921,6 +929,7 @@ CREATE TABLE `auth_user_user_permissions` ( LOCK TABLES `auth_user_user_permissions` WRITE; /*!40000 ALTER TABLE `auth_user_user_permissions` DISABLE KEYS */; +INSERT INTO `auth_user_user_permissions` VALUES (1,4,1337),(2,4,1338),(3,4,1339),(4,4,1340),(5,4,1341),(6,4,1342),(7,4,1343),(8,4,1344),(9,4,1345),(10,4,1346),(11,4,1347),(12,4,1348),(13,4,1349),(14,4,1350),(15,4,1351),(16,4,1352),(17,4,1353),(18,4,1354),(19,4,1355),(20,4,1356),(21,4,1357),(22,4,1358),(23,4,1359),(24,4,1360),(25,4,1361),(26,4,1362),(27,4,1363),(28,4,1364),(29,4,1365),(30,4,1366),(31,4,1367),(32,4,1368),(33,4,1369),(34,4,1370),(35,4,1371),(36,4,1372),(37,4,1373),(38,4,1374),(39,4,1375),(40,4,1376),(41,4,1377),(42,4,1378),(43,4,1379),(44,4,1380),(45,4,1381),(46,4,1382),(47,4,1383),(48,4,1384),(49,4,1385),(50,4,1386),(51,4,1387),(52,4,1388),(53,4,1389),(54,4,1390),(55,4,1391),(56,4,1392),(57,4,1393),(58,4,1394),(59,4,1395),(60,4,1396),(61,4,1397),(62,4,1398),(63,4,1399),(64,4,1400),(65,4,1401),(66,4,1402),(67,4,1403),(68,4,1404),(69,4,1405),(70,4,1406),(71,4,1407),(72,4,1408),(73,4,1409),(74,4,1410),(75,4,1411),(76,4,1412),(77,4,1413),(78,4,1414),(79,4,1415),(80,4,1416),(81,4,1417),(82,4,1418),(83,4,1419),(84,4,1420),(85,4,1421),(86,4,1422),(87,4,1423),(88,4,1424),(89,4,1425),(90,4,1426),(91,4,1427),(92,4,1428),(93,4,1429),(94,4,1430),(95,4,1431),(96,4,1432),(97,4,1433),(98,4,1434),(99,4,1435),(100,4,1436),(101,4,1437),(102,4,1438),(103,4,1439),(104,4,1440),(105,4,1441),(106,4,1442),(107,4,1443),(108,4,1444),(109,4,1445),(110,4,1446),(111,4,1447),(112,4,1448),(113,4,1449),(114,4,1450),(115,4,1451),(116,4,1452),(117,4,1453),(118,4,1454),(119,4,1455),(120,4,1456),(121,4,1457),(122,4,1458),(123,4,1459),(124,4,1460),(125,4,1461),(126,4,1462),(127,4,1463),(128,4,1464),(129,4,1465),(130,4,1466),(131,4,1467),(132,4,1468),(133,4,1469),(134,4,1470),(135,4,1471),(136,4,1472),(137,4,1473),(138,4,1474),(139,4,1475),(140,4,1476),(141,4,1477),(142,4,1478),(143,4,1479),(144,4,1480); /*!40000 ALTER TABLE `auth_user_user_permissions` ENABLE KEYS */; UNLOCK TABLES; @@ -944,20 +953,21 @@ CREATE TABLE `auth_userprofile` ( `city` longtext, `country` varchar(2) DEFAULT NULL, `goals` longtext, - `allow_certificate` tinyint(1) NOT NULL, `bio` varchar(3000) DEFAULT NULL, `profile_image_uploaded_at` datetime(6) DEFAULT NULL, `user_id` int(11) NOT NULL, + `phone_number` varchar(50) DEFAULT NULL, + `state` varchar(2) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `user_id` (`user_id`), - KEY `auth_userprofile_b068931c` (`name`), - KEY `auth_userprofile_8512ae7d` (`language`), - KEY `auth_userprofile_d5189de0` (`location`), - KEY `auth_userprofile_8939d49d` (`year_of_birth`), - KEY `auth_userprofile_cc90f191` (`gender`), - KEY `auth_userprofile_a895faa8` (`level_of_education`), - CONSTRAINT `auth_userprofile_user_id_4c194f9b5650ad70_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; + KEY `auth_userprofile_name_50909f10` (`name`), + KEY `auth_userprofile_language_8948d814` (`language`), + KEY `auth_userprofile_location_ca92e4f6` (`location`), + KEY `auth_userprofile_year_of_birth_6559b9a5` (`year_of_birth`), + KEY `auth_userprofile_gender_44a122fb` (`gender`), + KEY `auth_userprofile_level_of_education_93927e04` (`level_of_education`), + CONSTRAINT `auth_userprofile_user_id_62634b27_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -966,7 +976,7 @@ CREATE TABLE `auth_userprofile` ( LOCK TABLES `auth_userprofile` WRITE; /*!40000 ALTER TABLE `auth_userprofile` DISABLE KEYS */; -INSERT INTO `auth_userprofile` VALUES (1,'','','course.xml','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,2),(2,'','','course.xml','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,3),(3,'','','course.xml','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,4),(4,'','','course.xml','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,5),(5,'','','course.xml','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,6),(6,'','','course.xml','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,7),(7,'','','course.xml','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,8),(8,'','','course.xml','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,9),(9,'','','course.xml','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,1),(10,'','','course.xml','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,10); +INSERT INTO `auth_userprofile` VALUES (1,'','','course.xml','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,NULL),(2,'','','course.xml','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL),(3,'','','course.xml','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,NULL),(4,'','','course.xml','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,6,NULL,NULL),(5,'','','course.xml','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,7,NULL,NULL),(6,'','','course.xml','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,8,NULL,NULL),(7,'','','course.xml','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,9,NULL,NULL),(8,'','','course.xml','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,10,NULL,NULL),(9,'','','course.xml','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,11,NULL,NULL); /*!40000 ALTER TABLE `auth_userprofile` ENABLE KEYS */; UNLOCK TABLES; @@ -987,11 +997,11 @@ CREATE TABLE `badges_badgeassertion` ( `badge_class_id` int(11) NOT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `badges_badgeassertion_e2fa5388` (`created`), - KEY `badges_badgeassertion_c389e456` (`badge_class_id`), - KEY `badges_badgeassertion_e8701ad4` (`user_id`), - CONSTRAINT `badges_b_badge_class_id_3a4a16cb833201e8_fk_badges_badgeclass_id` FOREIGN KEY (`badge_class_id`) REFERENCES `badges_badgeclass` (`id`), - CONSTRAINT `badges_badgeassertion_user_id_14233cdefee1055a_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + KEY `badges_badgeassertio_badge_class_id_902ac30e_fk_badges_ba` (`badge_class_id`), + KEY `badges_badgeassertion_user_id_13665630_fk_auth_user_id` (`user_id`), + KEY `badges_badgeassertion_created_d098832e` (`created`), + CONSTRAINT `badges_badgeassertio_badge_class_id_902ac30e_fk_badges_ba` FOREIGN KEY (`badge_class_id`) REFERENCES `badges_badgeclass` (`id`), + CONSTRAINT `badges_badgeassertion_user_id_13665630_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1020,10 +1030,12 @@ CREATE TABLE `badges_badgeclass` ( `criteria` longtext NOT NULL, `mode` varchar(100) NOT NULL, `image` varchar(100) NOT NULL, + `badgr_server_slug` varchar(255) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `badges_badgeclass_slug_7fe9eac3bca91f16_uniq` (`slug`,`issuing_component`,`course_id`), - KEY `badges_badgeclass_2dbcba41` (`slug`), - KEY `badges_badgeclass_a57403f2` (`issuing_component`) + UNIQUE KEY `badges_badgeclass_slug_issuing_component_course_id_92cd3912_uniq` (`slug`,`issuing_component`,`course_id`), + KEY `badges_badgeclass_slug_5f420f6f` (`slug`), + KEY `badges_badgeclass_issuing_component_85b6d93d` (`issuing_component`), + KEY `badges_badgeclass_badgr_server_slug_701a8bf1` (`badgr_server_slug`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1058,7 +1070,7 @@ CREATE TABLE `badges_coursecompleteimageconfiguration` ( LOCK TABLES `badges_coursecompleteimageconfiguration` WRITE; /*!40000 ALTER TABLE `badges_coursecompleteimageconfiguration` DISABLE KEYS */; -INSERT INTO `badges_coursecompleteimageconfiguration` VALUES (1,'honor','badges/honor.png',0),(2,'verified','badges/verified.png',0),(3,'professional','badges/professional.png',0); +INSERT INTO `badges_coursecompleteimageconfiguration` VALUES (1,'honor','badges/badges/honor.png',0),(2,'verified','badges/badges/verified.png',0),(3,'professional','badges/badges/professional.png',0); /*!40000 ALTER TABLE `badges_coursecompleteimageconfiguration` ENABLE KEYS */; UNLOCK TABLES; @@ -1077,8 +1089,8 @@ CREATE TABLE `badges_courseeventbadgesconfiguration` ( `course_groups` longtext NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `badges_courseeven_changed_by_id_50986a94d73238b9_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `badges_courseeven_changed_by_id_50986a94d73238b9_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `badges_courseeventba_changed_by_id_db04ed01_fk_auth_user` (`changed_by_id`), + CONSTRAINT `badges_courseeventba_changed_by_id_db04ed01_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1092,124 +1104,350 @@ LOCK TABLES `badges_courseeventbadgesconfiguration` WRITE; UNLOCK TABLES; -- --- Table structure for table `block_structure` +-- Table structure for table `blackboard_blackboardenterprisecustomerconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `block_structure` ( +CREATE TABLE `blackboard_blackboardenterprisecustomerconfiguration` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `data_usage_key` varchar(255) NOT NULL, - `data_version` varchar(255) DEFAULT NULL, - `data_edit_timestamp` datetime(6) DEFAULT NULL, - `transformers_schema_version` varchar(255) NOT NULL, - `block_structure_schema_version` varchar(255) NOT NULL, - `data` varchar(500) NOT NULL, + `active` tinyint(1) NOT NULL, + `transmission_chunk_size` int(11) NOT NULL, + `channel_worker_username` varchar(255) NOT NULL, + `catalogs_to_transmit` longtext NOT NULL, + `client_id` varchar(255) NOT NULL, + `client_secret` varchar(255) NOT NULL, + `blackboard_base_url` varchar(255) NOT NULL, + `refresh_token` varchar(255) NOT NULL, + `enterprise_customer_id` char(32) NOT NULL, + `idp_id` varchar(255) NOT NULL, + `disable_learner_data_transmissions` tinyint(1) NOT NULL, + `uuid` char(32) NOT NULL, + `display_name` varchar(255) NOT NULL, + `dry_run_mode_enabled` tinyint(1) NOT NULL, + `deleted_at` datetime(6) DEFAULT NULL, + `last_content_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_content_sync_errored_at` datetime(6) DEFAULT NULL, + `last_learner_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_learner_sync_errored_at` datetime(6) DEFAULT NULL, + `last_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_sync_errored_at` datetime(6) DEFAULT NULL, + `last_modified_at` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `data_usage_key` (`data_usage_key`) + UNIQUE KEY `blackboard_blackboardent_uuid_ff12f26c_uniq` (`uuid`), + KEY `blackboard_blackboar_enterprise_customer__39f883b0_fk_enterpris` (`enterprise_customer_id`), + CONSTRAINT `blackboard_blackboar_enterprise_customer__39f883b0_fk_enterpris` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `block_structure` +-- Dumping data for table `blackboard_blackboardenterprisecustomerconfiguration` -- -LOCK TABLES `block_structure` WRITE; -/*!40000 ALTER TABLE `block_structure` DISABLE KEYS */; -/*!40000 ALTER TABLE `block_structure` ENABLE KEYS */; +LOCK TABLES `blackboard_blackboardenterprisecustomerconfiguration` WRITE; +/*!40000 ALTER TABLE `blackboard_blackboardenterprisecustomerconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `blackboard_blackboardenterprisecustomerconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `block_structure_config` +-- Table structure for table `blackboard_blackboardglobalconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `block_structure_config` ( +CREATE TABLE `blackboard_blackboardglobalconfiguration` ( `id` int(11) NOT NULL AUTO_INCREMENT, `change_date` datetime(6) NOT NULL, `enabled` tinyint(1) NOT NULL, - `num_versions_to_keep` int(11) DEFAULT NULL, - `cache_timeout_in_seconds` int(11) DEFAULT NULL, + `app_key` varchar(255) NOT NULL, + `app_secret` varchar(255) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `block_structure_c_changed_by_id_1b1edef3e5767b34_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `block_structure_c_changed_by_id_1b1edef3e5767b34_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `blackboard_blackboar_changed_by_id_20c18fd5_fk_auth_user` (`changed_by_id`), + CONSTRAINT `blackboard_blackboar_changed_by_id_20c18fd5_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `block_structure_config` +-- Dumping data for table `blackboard_blackboardglobalconfiguration` -- -LOCK TABLES `block_structure_config` WRITE; -/*!40000 ALTER TABLE `block_structure_config` DISABLE KEYS */; -/*!40000 ALTER TABLE `block_structure_config` ENABLE KEYS */; +LOCK TABLES `blackboard_blackboardglobalconfiguration` WRITE; +/*!40000 ALTER TABLE `blackboard_blackboardglobalconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `blackboard_blackboardglobalconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `bookmarks_bookmark` +-- Table structure for table `blackboard_blackboardlearnerassessmentdatatransmissionaudit` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `bookmarks_bookmark` ( +CREATE TABLE `blackboard_blackboardlearnerassessmentdatatransmissionaudit` ( `id` int(11) NOT NULL AUTO_INCREMENT, + `blackboard_user_email` varchar(255) NOT NULL, + `enterprise_course_enrollment_id` int(11) DEFAULT NULL, + `course_id` varchar(255) NOT NULL, + `subsection_id` varchar(255) DEFAULT NULL, + `grade_point_score` double NOT NULL, + `grade_points_possible` double NOT NULL, + `grade` double DEFAULT NULL, + `subsection_name` varchar(255) DEFAULT NULL, + `status` varchar(100) DEFAULT NULL, + `error_message` longtext, `created` datetime(6) NOT NULL, + `completed_timestamp` datetime(6) DEFAULT NULL, + `course_completed` tinyint(1) NOT NULL, + `enterprise_customer_uuid` char(32) DEFAULT NULL, + `instructor_name` varchar(255) NOT NULL, `modified` datetime(6) NOT NULL, - `course_key` varchar(255) NOT NULL, - `usage_key` varchar(255) NOT NULL, - `path` longtext NOT NULL, - `user_id` int(11) NOT NULL, - `xblock_cache_id` int(11) NOT NULL, + `plugin_configuration_id` int(11) DEFAULT NULL, + `total_hours` double DEFAULT NULL, + `friendly_status_message` varchar(255) DEFAULT NULL, + `api_record_id` int(11) DEFAULT NULL, + `content_title` varchar(255) DEFAULT NULL, + `progress_status` varchar(255) NOT NULL, + `user_email` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `bookmarks_bookmark_user_id_7059f67cddd52c9a_uniq` (`user_id`,`usage_key`), - KEY `bookmarks_bookmark_c8235886` (`course_key`), - KEY `bookmarks_bookmark_4a93f0de` (`usage_key`), - KEY `bookmarks_bookmark_d452fbf6` (`xblock_cache_id`), - CONSTRAINT `boo_xblock_cache_id_22d48842487ba2d2_fk_bookmarks_xblockcache_id` FOREIGN KEY (`xblock_cache_id`) REFERENCES `bookmarks_xblockcache` (`id`), - CONSTRAINT `bookmarks_bookmark_user_id_33914fa9accf01cb_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `api_record_id` (`api_record_id`), + KEY `blackboard_blackboardlearne_enterprise_course_enrollmen_4d99c86b` (`enterprise_course_enrollment_id`), + KEY `blackboard_blackboardlearne_subsection_id_6ddb999b` (`subsection_id`), + CONSTRAINT `blackboard_blackboar_api_record_id_3a698fd1_fk_integrate` FOREIGN KEY (`api_record_id`) REFERENCES `integrated_channel_apiresponserecord` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `bookmarks_bookmark` +-- Dumping data for table `blackboard_blackboardlearnerassessmentdatatransmissionaudit` -- -LOCK TABLES `bookmarks_bookmark` WRITE; -/*!40000 ALTER TABLE `bookmarks_bookmark` DISABLE KEYS */; -/*!40000 ALTER TABLE `bookmarks_bookmark` ENABLE KEYS */; +LOCK TABLES `blackboard_blackboardlearnerassessmentdatatransmissionaudit` WRITE; +/*!40000 ALTER TABLE `blackboard_blackboardlearnerassessmentdatatransmissionaudit` DISABLE KEYS */; +/*!40000 ALTER TABLE `blackboard_blackboardlearnerassessmentdatatransmissionaudit` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `bookmarks_xblockcache` +-- Table structure for table `blackboard_blackboardlearnerdatatransmissionaudit` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `bookmarks_xblockcache` ( +CREATE TABLE `blackboard_blackboardlearnerdatatransmissionaudit` ( `id` int(11) NOT NULL AUTO_INCREMENT, + `blackboard_user_email` varchar(255) NOT NULL, + `blackboard_completed_timestamp` varchar(10) DEFAULT NULL, + `course_id` varchar(255) NOT NULL, + `course_completed` tinyint(1) NOT NULL, + `enterprise_course_enrollment_id` int(11) DEFAULT NULL, + `grade` double DEFAULT NULL, + `total_hours` double DEFAULT NULL, `created` datetime(6) NOT NULL, + `error_message` longtext, + `status` varchar(100) DEFAULT NULL, + `enterprise_customer_uuid` char(32) DEFAULT NULL, + `instructor_name` varchar(255) NOT NULL, `modified` datetime(6) NOT NULL, - `course_key` varchar(255) NOT NULL, - `usage_key` varchar(255) NOT NULL, - `display_name` varchar(255) NOT NULL, - `paths` longtext NOT NULL, + `plugin_configuration_id` int(11) DEFAULT NULL, + `subsection_id` varchar(255) DEFAULT NULL, + `subsection_name` varchar(255) DEFAULT NULL, + `friendly_status_message` varchar(255) DEFAULT NULL, + `api_record_id` int(11) DEFAULT NULL, + `content_title` varchar(255) DEFAULT NULL, + `progress_status` varchar(255) NOT NULL, + `user_email` varchar(255) DEFAULT NULL, + `completed_timestamp` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `usage_key` (`usage_key`), - KEY `bookmarks_xblockcache_c8235886` (`course_key`) -) ENGINE=InnoDB AUTO_INCREMENT=163 DEFAULT CHARSET=utf8; + UNIQUE KEY `api_record_id` (`api_record_id`), + KEY `blackboard_blackboardlearne_enterprise_course_enrollmen_941ea543` (`enterprise_course_enrollment_id`), + KEY `blackboard_blackboardlearne_subsection_id_1d6d8dd3` (`subsection_id`), + KEY `blackboard_bldta_85936b55_idx` (`enterprise_customer_uuid`,`plugin_configuration_id`), + CONSTRAINT `blackboard_blackboar_api_record_id_def01b3a_fk_integrate` FOREIGN KEY (`api_record_id`) REFERENCES `integrated_channel_apiresponserecord` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `bookmarks_xblockcache` +-- Dumping data for table `blackboard_blackboardlearnerdatatransmissionaudit` +-- + +LOCK TABLES `blackboard_blackboardlearnerdatatransmissionaudit` WRITE; +/*!40000 ALTER TABLE `blackboard_blackboardlearnerdatatransmissionaudit` DISABLE KEYS */; +/*!40000 ALTER TABLE `blackboard_blackboardlearnerdatatransmissionaudit` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `blackboard_historicalblackboardenterprisecustomerconfiguration` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `blackboard_historicalblackboardenterprisecustomerconfiguration` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `active` tinyint(1) NOT NULL, + `transmission_chunk_size` int(11) NOT NULL, + `channel_worker_username` varchar(255) NOT NULL, + `catalogs_to_transmit` longtext NOT NULL, + `client_id` varchar(255) NOT NULL, + `client_secret` varchar(255) NOT NULL, + `blackboard_base_url` varchar(255) NOT NULL, + `refresh_token` varchar(255) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `enterprise_customer_id` char(32) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `idp_id` varchar(255) NOT NULL, + `disable_learner_data_transmissions` tinyint(1) NOT NULL, + `uuid` char(32) NOT NULL, + `display_name` varchar(255) NOT NULL, + `dry_run_mode_enabled` tinyint(1) NOT NULL, + `deleted_at` datetime(6) DEFAULT NULL, + `last_content_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_content_sync_errored_at` datetime(6) DEFAULT NULL, + `last_learner_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_learner_sync_errored_at` datetime(6) DEFAULT NULL, + `last_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_sync_errored_at` datetime(6) DEFAULT NULL, + `last_modified_at` datetime(6) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `blackboard_historica_history_user_id_099f295b_fk_auth_user` (`history_user_id`), + KEY `blackboard_historicalblackb_id_7675c06f` (`id`), + KEY `blackboard_historicalblackb_enterprise_customer_id_b9053e9a` (`enterprise_customer_id`), + KEY `blackboard_historicalblackb_uuid_8670688b` (`uuid`), + CONSTRAINT `blackboard_historica_history_user_id_099f295b_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `blackboard_historicalblackboardenterprisecustomerconfiguration` +-- + +LOCK TABLES `blackboard_historicalblackboardenterprisecustomerconfiguration` WRITE; +/*!40000 ALTER TABLE `blackboard_historicalblackboardenterprisecustomerconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `blackboard_historicalblackboardenterprisecustomerconfiguration` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `block_structure` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `block_structure` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `data_usage_key` varchar(255) NOT NULL, + `data_version` varchar(255) DEFAULT NULL, + `data_edit_timestamp` datetime(6) DEFAULT NULL, + `transformers_schema_version` varchar(255) NOT NULL, + `block_structure_schema_version` varchar(255) NOT NULL, + `data` varchar(500) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `data_usage_key` (`data_usage_key`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `block_structure` +-- + +LOCK TABLES `block_structure` WRITE; +/*!40000 ALTER TABLE `block_structure` DISABLE KEYS */; +/*!40000 ALTER TABLE `block_structure` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `block_structure_config` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `block_structure_config` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `num_versions_to_keep` int(11) DEFAULT NULL, + `cache_timeout_in_seconds` int(11) DEFAULT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `block_structure_config_changed_by_id_45af0b10_fk_auth_user_id` (`changed_by_id`), + CONSTRAINT `block_structure_config_changed_by_id_45af0b10_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `block_structure_config` +-- + +LOCK TABLES `block_structure_config` WRITE; +/*!40000 ALTER TABLE `block_structure_config` DISABLE KEYS */; +/*!40000 ALTER TABLE `block_structure_config` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `bookmarks_bookmark` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `bookmarks_bookmark` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `course_key` varchar(255) NOT NULL, + `usage_key` varchar(255) NOT NULL, + `path` longtext NOT NULL, + `user_id` int(11) NOT NULL, + `xblock_cache_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `bookmarks_bookmark_user_id_usage_key_61eac24b_uniq` (`user_id`,`usage_key`), + KEY `bookmarks_bookmark_xblock_cache_id_808a7639_fk_bookmarks` (`xblock_cache_id`), + KEY `bookmarks_bookmark_course_key_46609583` (`course_key`), + KEY `bookmarks_bookmark_usage_key_d07927c9` (`usage_key`), + CONSTRAINT `bookmarks_bookmark_user_id_a26bf17c_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `bookmarks_bookmark_xblock_cache_id_808a7639_fk_bookmarks` FOREIGN KEY (`xblock_cache_id`) REFERENCES `bookmarks_xblockcache` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `bookmarks_bookmark` +-- + +LOCK TABLES `bookmarks_bookmark` WRITE; +/*!40000 ALTER TABLE `bookmarks_bookmark` DISABLE KEYS */; +/*!40000 ALTER TABLE `bookmarks_bookmark` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `bookmarks_xblockcache` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `bookmarks_xblockcache` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `course_key` varchar(255) NOT NULL, + `usage_key` varchar(255) NOT NULL, + `display_name` varchar(255) NOT NULL, + `paths` longtext NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `usage_key` (`usage_key`), + KEY `bookmarks_xblockcache_course_key_5297fa77` (`course_key`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `bookmarks_xblockcache` -- LOCK TABLES `bookmarks_xblockcache` WRITE; /*!40000 ALTER TABLE `bookmarks_xblockcache` DISABLE KEYS */; -INSERT INTO `bookmarks_xblockcache` VALUES (1,'2017-06-07 00:43:57.110637','2018-01-31 21:14:08.351648','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@course+block@course','edX Demonstration Course','[]'),(2,'2017-06-07 00:44:03.930577','2018-01-31 21:14:10.348510','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@5ab88e67d46049b9aa694cb240c39cef','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@47dbd5f836544e61877a483c0b75606c\",\"Drag and Drop\"]]]'),(3,'2017-06-07 00:44:03.934127','2018-01-31 21:14:10.350808','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@0aa7a3bdbe18427795b0c1a1d7c3cb9a','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations\",\"Homework - Labs and Demos\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_0fab6aa52165\",\"Molecule Editor\"]]]'),(4,'2017-06-07 00:44:03.937842','2018-01-31 21:14:10.352312','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions','Homework - Question Styles','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"]]]'),(5,'2017-06-07 00:44:03.940968','2018-01-31 21:14:10.353876','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@2152d4a4aadc4cb0af5256394a3d1fc7','Pointing on a Picture','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"]]]'),(6,'2017-06-07 00:44:03.943920','2018-01-31 21:14:10.355396','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@discussion_5deb6081620d','Discussion Forums','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@social_integration\",\"Example Week 3: Be Social\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@48ecb924d7fe4b66a230137626bfa93e\",\"Lesson 3 - Be Social\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_3888db0bc286\",\"Discussion Forums\"]]]'),(7,'2017-06-07 00:44:03.948536','2018-01-31 21:14:10.356758','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@d6cee45205a449369d7ef8f159b22bdf','Labs and Demos','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations\",\"Homework - Labs and Demos\"]]]'),(8,'2017-06-07 00:44:03.951584','2018-01-31 21:14:10.358172','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@2574c523e97b477a9d72fbb37bfb995f','Text','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@134df56c516a4a0dbb24dd5facef746e\",\"Reading Assignments\"]]]'),(9,'2017-06-07 00:44:03.954880','2017-06-07 00:44:03.955070','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@chapter+block@social_integration','Example Week 3: Be Social','[]'),(10,'2017-06-07 00:44:03.958603','2018-01-31 21:14:10.359597','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@ed5dccf14ae94353961f46fa07217491','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@4a1bba2a403f40bca5ec245e945b0d76\",\"Video Demonstrations\"]]]'),(11,'2017-06-07 00:44:03.961972','2018-01-31 21:14:10.361042','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@8293139743f34377817d537b69911530','EdX Exams','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@934cc32c177d41b580c8413e561346b3\",\"EdX Exams\"]]]'),(12,'2017-06-07 00:44:03.965571','2018-01-31 21:14:10.362422','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@030e35c4756a4ddc8d40b95fbbfff4d4','Blank HTML Page','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@d8a6192ade314473a78242dfeedfbf5b\",\"Introduction\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@edx_introduction\",\"Demo Course Overview\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_0270f6de40fc\",\"Introduction: Video and Sequences\"]]]'),(13,'2017-06-07 00:44:03.970048','2018-01-31 21:14:10.363787','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@932e6f2ce8274072a355a94560216d1a','Perchance to Dream','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@134df56c516a4a0dbb24dd5facef746e\",\"Reading Assignments\"]]]'),(14,'2017-06-07 00:44:03.973627','2017-06-07 00:44:03.973816','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions','Example Week 2: Get Interactive','[]'),(15,'2017-06-07 00:44:03.978058','2017-06-07 00:44:03.978246','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7','About Exams and Certificates','[]'),(16,'2017-06-07 00:44:03.981528','2018-01-31 21:14:10.365207','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@Sample_ChemFormula_Problem','Chemical Equations','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_1fef54c2b23b\",\"Chemical Equations\"]]]'),(17,'2017-06-07 00:44:03.985386','2018-01-31 21:14:10.366548','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@e0d7423118ab432582d03e8e8dad8e36','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@simulations\",\"Lesson 2 - Let\'s Get Interactive!\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_98cf62510471\",\"Zooming Diagrams\"]]]'),(18,'2017-06-07 00:44:03.989965','2018-01-31 21:14:10.367831','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@134df56c516a4a0dbb24dd5facef746e','Reading Assignments','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"]]]'),(19,'2017-06-07 00:44:03.993492','2018-01-31 21:14:10.369111','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_3888db0bc286','Discussion Forums','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@social_integration\",\"Example Week 3: Be Social\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@48ecb924d7fe4b66a230137626bfa93e\",\"Lesson 3 - Be Social\"]]]'),(20,'2017-06-07 00:44:03.998066','2018-01-31 21:14:10.370576','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@6f7a6670f87147149caeff6afa07a526','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@simulations\",\"Lesson 2 - Let\'s Get Interactive!\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_2dbb0072785e\",\"An Interactive Reference Table\"]]]'),(21,'2017-06-07 00:44:04.001736','2018-01-31 21:14:10.371785','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@4a1bba2a403f40bca5ec245e945b0d76','Video Demonstrations','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"]]]'),(22,'2017-06-07 00:44:04.005486','2018-01-31 21:14:10.373008','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_c037f3757df1','Electric Circuit Simulator','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations\",\"Homework - Labs and Demos\"]]]'),(23,'2017-06-07 00:44:04.010134','2018-01-31 21:14:10.374130','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations','Homework - Labs and Demos','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"]]]'),(24,'2017-06-07 00:44:04.013789','2018-01-31 21:14:10.375367','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@fb79dcbad35b466a8c6364f8ffee9050','Peer Assessed Essays','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@175e76c4951144a29d46211361266e0e\",\"Homework - Essays\"]]]'),(25,'2017-06-07 00:44:04.018108','2018-01-31 21:14:10.376822','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@c2f7008c9ccf4bd09d5d800c98fb0722','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@256f17a44983429fb1a60802203ee4e0\",\"Video Presentation Styles\"]]]'),(26,'2017-06-07 00:44:04.021650','2018-01-31 21:14:10.378214','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@700x_editmolB','Molecule Editor','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations\",\"Homework - Labs and Demos\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_0fab6aa52165\",\"Molecule Editor\"]]]'),(27,'2017-06-07 00:44:04.025337','2018-01-31 21:14:10.379588','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@e2cb0e0994f84b0abfa5f4ae42ed9d44','Video Presentation Styles','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@256f17a44983429fb1a60802203ee4e0\",\"Video Presentation Styles\"]]]'),(28,'2017-06-07 00:44:04.030039','2018-01-31 21:14:10.380874','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@4f6c1b4e316a419ab5b6bf30e6c708e9','Working with Videos','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"]]]'),(29,'2017-06-07 00:44:04.033686','2018-01-31 21:14:10.382192','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@312cb4faed17420e82ab3178fc3e251a','Getting Help','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@social_integration\",\"Example Week 3: Be Social\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@48ecb924d7fe4b66a230137626bfa93e\",\"Lesson 3 - Be Social\"]]]'),(30,'2017-06-07 00:44:04.039297','2018-01-31 21:14:10.384159','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@3f2c11aba9434e459676a7d7acc4d960','Google Hangout','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@social_integration\",\"Example Week 3: Be Social\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@6ab9c442501d472c8ed200e367b4edfa\",\"More Ways to Connect\"]]]'),(31,'2017-06-07 00:44:04.043094','2018-01-31 21:14:10.385609','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@ed01bcd164e64038a78964a16eac3edc','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations\",\"Homework - Labs and Demos\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_bc69a47c6fae\",\"Protein Creator\"]]]'),(32,'2017-06-07 00:44:04.047499','2018-01-31 21:14:10.386942','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_0fab6aa52165','Molecule Editor','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations\",\"Homework - Labs and Demos\"]]]'),(33,'2017-06-07 00:44:04.051032','2018-01-31 21:14:10.388314','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@891211e17f9a472290a5f12c7a6626d7','Code Grader','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations\",\"Homework - Labs and Demos\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_aae927868e55\",\"Code Grader\"]]]'),(34,'2017-06-07 00:44:04.054658','2018-01-31 21:14:10.389673','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@d1b84dcd39b0423d9e288f27f0f7f242','Few Checks','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_ac391cde8a91\",\"Limited Checks\"]]]'),(35,'2017-06-07 00:44:04.059240','2018-01-31 21:14:10.390883','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@f91d8d31f7cf48ce990f8d8745ae4cfa','Answering More Than Once','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"]]]'),(36,'2017-06-07 00:44:04.063011','2018-01-31 21:14:10.392272','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@45d46192272c4f6db6b63586520bbdf4','Getting Answers','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@b6662b497c094bcc9b870d8270c90c93\",\"Getting Answers\"]]]'),(37,'2017-06-07 00:44:04.067511','2018-01-31 21:14:10.393417','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@sequential+block@6ab9c442501d472c8ed200e367b4edfa','More Ways to Connect','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@social_integration\",\"Example Week 3: Be Social\"]]]'),(38,'2017-06-07 00:44:04.071108','2018-01-31 21:14:10.394611','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@sequential+block@48ecb924d7fe4b66a230137626bfa93e','Lesson 3 - Be Social','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@social_integration\",\"Example Week 3: Be Social\"]]]'),(39,'2017-06-07 00:44:04.074752','2018-01-31 21:14:10.395931','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@d45779ad3d024a40a09ad8cc317c0970','Text','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@social_integration\",\"Example Week 3: Be Social\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@6ab9c442501d472c8ed200e367b4edfa\",\"More Ways to Connect\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@3f2c11aba9434e459676a7d7acc4d960\",\"Google Hangout\"]]]'),(40,'2017-06-07 00:44:04.080357','2018-01-31 21:14:10.397234','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@9cee77a606ea4c1aa5440e0ea5d0f618','Interactive Questions','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@e3601c0abee6427d8c17e6d6f8fdddd1\",\"Interactive Questions\"]]]'),(41,'2017-06-07 00:44:04.084066','2018-01-31 21:14:10.398483','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_ac391cde8a91','Limited Checks','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"]]]'),(42,'2017-06-07 00:44:04.089937','2018-01-31 21:14:10.399696','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@934cc32c177d41b580c8413e561346b3','EdX Exams','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"]]]'),(43,'2017-06-07 00:44:04.095887','2018-01-31 21:14:10.401094','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@e0254b911fa246218bd98bbdadffef06','Reading Assignments','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@134df56c516a4a0dbb24dd5facef746e\",\"Reading Assignments\"]]]'),(44,'2017-06-07 00:44:04.101826','2018-01-31 21:14:10.402481','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@4d672c5893cb4f1dad0de67d2008522e','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_1fef54c2b23b\",\"Chemical Equations\"]]]'),(45,'2017-06-07 00:44:04.105307','2018-01-31 21:14:10.403824','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@f480df4ce91347c5ae4301ddf6146238','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@b6662b497c094bcc9b870d8270c90c93\",\"Getting Answers\"]]]'),(46,'2017-06-07 00:44:04.109545','2018-01-31 21:14:10.405131','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@03f051f9a8814881a3783d2511613aa6','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@simulations\",\"Lesson 2 - Let\'s Get Interactive!\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_d32bf9b2242c\",\"Electronic Sound Experiment\"]]]'),(47,'2017-06-07 00:44:04.113055','2018-01-31 21:14:10.406470','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@6bcccc2d7343416e9e03fd7325b2f232','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@4f6c1b4e316a419ab5b6bf30e6c708e9\",\"Working with Videos\"]]]'),(48,'2017-06-07 00:44:04.117777','2018-01-31 21:14:10.407833','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@d5a5caaf35e84ebc9a747038465dcfb4','Electronic Circuit Simulator','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations\",\"Homework - Labs and Demos\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_c037f3757df1\",\"Electric Circuit Simulator\"]]]'),(49,'2017-06-07 00:44:04.121328','2018-01-31 21:14:10.409243','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@video+block@0b9e39477cf34507a7a48f74be381fdd','Welcome!','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@d8a6192ade314473a78242dfeedfbf5b\",\"Introduction\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@edx_introduction\",\"Demo Course Overview\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_0270f6de40fc\",\"Introduction: Video and Sequences\"]]]'),(50,'2017-06-07 00:44:04.124870','2018-01-31 21:14:10.410969','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@78d7d3642f3a4dbabbd1b017861aa5f2','Lesson 2: Let\'s Get Interactive!','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@simulations\",\"Lesson 2 - Let\'s Get Interactive!\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@d0d804e8863c4a95a659c04d8a2b2bc0\",\"Lesson 2 - Let\'s Get Interactive! \"]]]'),(51,'2017-06-07 00:44:04.129145','2018-01-31 21:14:10.412513','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@c6cd4bea43454aaea60ad01beb0cf213','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations\",\"Homework - Labs and Demos\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_aae927868e55\",\"Code Grader\"]]]'),(52,'2017-06-07 00:44:04.132749','2018-01-31 21:14:10.413943','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@cd177caa62444fbca48aa8f843f09eac','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_ac391cde8a91\",\"Limited Checks\"]]]'),(53,'2017-06-07 00:44:04.136334','2018-01-31 21:14:10.415727','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@12ad4f3ff4c14114a6e629b00e000976','Peer Grading','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@175e76c4951144a29d46211361266e0e\",\"Homework - Essays\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@fb79dcbad35b466a8c6364f8ffee9050\",\"Peer Assessed Essays\"]]]'),(54,'2017-06-07 00:44:04.140976','2018-01-31 21:14:10.417125','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@logic_gate_problem','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations\",\"Homework - Labs and Demos\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_c037f3757df1\",\"Electric Circuit Simulator\"]]]'),(55,'2017-06-07 00:44:04.145443','2018-01-31 21:14:10.418399','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_2dbb0072785e','An Interactive Reference Table','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@simulations\",\"Lesson 2 - Let\'s Get Interactive!\"]]]'),(56,'2017-06-07 00:44:04.150952','2017-06-07 00:44:04.151179','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@chapter+block@d8a6192ade314473a78242dfeedfbf5b','Introduction','[]'),(57,'2017-06-07 00:44:04.154519','2018-01-31 21:14:10.419535','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@sequential+block@simulations','Lesson 2 - Let\'s Get Interactive!','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"]]]'),(58,'2017-06-07 00:44:04.160913','2018-01-31 21:14:10.420775','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@e3601c0abee6427d8c17e6d6f8fdddd1','Interactive Questions','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"]]]'),(59,'2017-06-07 00:44:04.164529','2018-01-31 21:14:10.422140','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@700x_proteinmake','Designing Proteins in Two Dimensions','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations\",\"Homework - Labs and Demos\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_bc69a47c6fae\",\"Protein Creator\"]]]'),(60,'2017-06-07 00:44:04.170368','2018-01-31 21:14:10.423511','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@0a3b4139f51a4917a3aff9d519b1eeb6','Videos on edX','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@3dc16db8d14842e38324e95d4030b8a0\",\"Videos on edX\"]]]'),(61,'2017-06-07 00:44:04.174017','2018-01-31 21:14:10.424840','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@Lab_5B_Mosfet_Amplifier_Experiment','Electronic Sound Experiment','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@simulations\",\"Lesson 2 - Let\'s Get Interactive!\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_d32bf9b2242c\",\"Electronic Sound Experiment\"]]]'),(62,'2017-06-07 00:44:04.178582','2018-01-31 21:14:10.426422','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@722085be27c84ac693cfebc8ac5da700','Videos on edX','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@3dc16db8d14842e38324e95d4030b8a0\",\"Videos on edX\"]]]'),(63,'2017-06-07 00:44:04.182203','2018-01-31 21:14:10.428092','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@700x_pathways','Zooming Diagrams','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@simulations\",\"Lesson 2 - Let\'s Get Interactive!\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_98cf62510471\",\"Zooming Diagrams\"]]]'),(64,'2017-06-07 00:44:04.185785','2018-01-31 21:14:10.429563','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@video+block@5c90cffecd9b48b188cbfea176bf7fe9','Video','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@3dc16db8d14842e38324e95d4030b8a0\",\"Videos on edX\"]]]'),(65,'2017-06-07 00:44:04.190232','2018-01-31 21:14:10.430967','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@e5eac7e1a5a24f5fa7ed77bb6d136591','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@2152d4a4aadc4cb0af5256394a3d1fc7\",\"Pointing on a Picture\"]]]'),(66,'2017-06-07 00:44:04.193987','2018-01-31 21:14:10.432292','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@867dddb6f55d410caaa9c1eb9c6743ec','Getting Started','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"]]]'),(67,'2017-06-07 00:44:04.198714','2018-01-31 21:14:10.433720','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@Sample_Algebraic_Problem','Mathematical Expressions','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_0c92347a5c00\",\"Mathematical Expressions\"]]]'),(68,'2017-06-07 00:44:04.202209','2018-01-31 21:14:10.435075','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@4f06b358a96f4d1dae57d6d81acd06f2','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations\",\"Homework - Labs and Demos\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_c037f3757df1\",\"Electric Circuit Simulator\"]]]'),(69,'2017-06-07 00:44:04.210129','2018-01-31 21:14:10.436517','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@55cbc99f262443d886a25cf84594eafb','Text','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@social_integration\",\"Example Week 3: Be Social\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@6ab9c442501d472c8ed200e367b4edfa\",\"More Ways to Connect\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@3f2c11aba9434e459676a7d7acc4d960\",\"Google Hangout\"]]]'),(70,'2017-06-07 00:44:04.214017','2017-06-07 00:44:04.214270','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations','Example Week 1: Getting Started','[]'),(71,'2017-06-07 00:44:04.218133','2018-01-31 21:14:10.437998','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@8bb218cccf8d40519a971ff0e4901ccf','Getting Help','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@social_integration\",\"Example Week 3: Be Social\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@48ecb924d7fe4b66a230137626bfa93e\",\"Lesson 3 - Be Social\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@312cb4faed17420e82ab3178fc3e251a\",\"Getting Help\"]]]'),(72,'2017-06-07 00:44:04.221805','2018-01-31 21:14:10.439362','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@1a810b1a3b2447b998f0917d0e5a802b','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@1b0e2c2c84884b95b1c99fb678cc964c\",\"Overall Grade Performance\"]]]'),(73,'2017-06-07 00:44:04.225715','2018-01-31 21:14:10.440711','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@ex_practice_limited_checks','Limited Checks','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_ac391cde8a91\",\"Limited Checks\"]]]'),(74,'2017-06-07 00:44:04.231678','2018-01-31 21:14:10.441857','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow','edX Exams','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"]]]'),(75,'2017-06-07 00:44:04.235303','2018-01-31 21:14:10.443092','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@e8a5cc2aed424838853defab7be45e42','Text input','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"]]]'),(76,'2017-06-07 00:44:04.240099','2018-01-31 21:14:10.444833','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@video+block@636541acbae448d98ab484b028c9a7f6','Connecting a Circuit and a Circuit Diagram','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@256f17a44983429fb1a60802203ee4e0\",\"Video Presentation Styles\"]]]'),(77,'2017-06-07 00:44:04.243779','2018-01-31 21:14:10.446271','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_0c92347a5c00','Mathematical Expressions','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"]]]'),(78,'2017-06-07 00:44:04.253803','2018-01-31 21:14:10.447730','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@b8cec2a19ebf463f90cd3544c7927b0e','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@f91d8d31f7cf48ce990f8d8745ae4cfa\",\"Answering More Than Once\"]]]'),(79,'2017-06-07 00:44:04.259698','2018-01-31 21:14:10.449148','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@5e009378f0b64585baa0a14b155974b9','Passing a Course','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@c7e98fd39a6944edb6b286c32e1150ff\",\"Passing a Course\"]]]'),(80,'2017-06-07 00:44:04.263474','2018-01-31 21:14:10.450548','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@a0effb954cca4759994f1ac9e9434bf4','Multiple Choice Questions','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@54bb9b142c6c4c22afc62bcb628f0e68\",\"Multiple Choice Questions\"]]]'),(81,'2017-06-07 00:44:04.268107','2018-01-31 21:14:10.451803','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@2889db1677a549abb15eb4d886f95d1c','Numerical Input','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"]]]'),(82,'2017-06-07 00:44:04.271927','2018-01-31 21:14:10.453182','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@openassessment+block@b24c33ea35954c7889e1d2944d3fe397','Open Response Assessment','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@175e76c4951144a29d46211361266e0e\",\"Homework - Essays\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@fb79dcbad35b466a8c6364f8ffee9050\",\"Peer Assessed Essays\"]]]'),(83,'2017-06-07 00:44:04.275673','2018-01-31 21:14:10.454426','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_f04afeac0131','Immediate Feedback','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"]]]'),(84,'2017-06-07 00:44:04.279976','2018-01-31 21:14:10.455819','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@148ae8fa73ea460eb6f05505da0ba6e6','Getting Your edX Certificate','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@d6eaa391d2be41dea20b8b1bfbcb1c45\",\"Getting Your edX Certificate\"]]]'),(85,'2017-06-07 00:44:04.283600','2018-01-31 21:14:10.457219','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@python_grader','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations\",\"Homework - Labs and Demos\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_aae927868e55\",\"Code Grader\"]]]'),(86,'2017-06-07 00:44:04.287937','2018-01-31 21:14:10.458652','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@412dc8dbb6674014862237b23c1f643f','Working with Videos','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@4f6c1b4e316a419ab5b6bf30e6c708e9\",\"Working with Videos\"]]]'),(87,'2017-06-07 00:44:04.291592','2018-01-31 21:14:10.460357','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@html_49b4494da2f7','Discussion Forums','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@social_integration\",\"Example Week 3: Be Social\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@48ecb924d7fe4b66a230137626bfa93e\",\"Lesson 3 - Be Social\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_3888db0bc286\",\"Discussion Forums\"]]]'),(88,'2017-06-07 00:44:04.295883','2018-01-31 21:14:10.461894','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@2b94658d2eee4d85ae13f83bc24cfca9','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations\",\"Homework - Labs and Demos\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_0fab6aa52165\",\"Molecule Editor\"]]]'),(89,'2017-06-07 00:44:04.300496','2018-01-31 21:14:10.463310','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@html_07d547513285','An Interactive Reference Table','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@simulations\",\"Lesson 2 - Let\'s Get Interactive!\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_2dbb0072785e\",\"An Interactive Reference Table\"]]]'),(90,'2017-06-07 00:44:04.304769','2018-01-31 21:14:10.465010','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@3169f89efde2452993f2f2d9bc74f5b2','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@e3601c0abee6427d8c17e6d6f8fdddd1\",\"Interactive Questions\"]]]'),(91,'2017-06-07 00:44:04.309387','2018-01-31 21:14:10.466789','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@4aba537a78774bd5a862485a8563c345','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_f04afeac0131\",\"Immediate Feedback\"]]]'),(92,'2017-06-07 00:44:04.313327','2018-01-31 21:14:10.468464','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@303034da25524878a2e66fb57c91cf85','Attributing Blame','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@134df56c516a4a0dbb24dd5facef746e\",\"Reading Assignments\"]]]'),(93,'2017-06-07 00:44:04.318229','2018-01-31 21:14:10.470162','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@23e6eda482c04335af2bb265beacaf59','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@c7e98fd39a6944edb6b286c32e1150ff\",\"Passing a Course\"]]]'),(94,'2017-06-07 00:44:04.323382','2018-01-31 21:14:10.471536','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@256f17a44983429fb1a60802203ee4e0','Video Presentation Styles','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"]]]'),(95,'2017-06-07 00:44:04.327973','2018-01-31 21:14:10.472918','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@c554538a57664fac80783b99d9d6da7c','Pointing on a Picture','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@2152d4a4aadc4cb0af5256394a3d1fc7\",\"Pointing on a Picture\"]]]'),(96,'2017-06-07 00:44:04.332071','2018-01-31 21:14:10.474192','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@26d89b08f75d48829a63520ed8b0037d','Homework - Find Your Study Buddy','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@social_integration\",\"Example Week 3: Be Social\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@dbe8fc027bcb4fe9afb744d2e8415855\",\"Homework - Find Your Study Buddy\"]]]'),(97,'2017-06-07 00:44:04.335751','2018-01-31 21:14:10.475499','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@47dbd5f836544e61877a483c0b75606c','Drag and Drop','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"]]]'),(98,'2017-06-07 00:44:04.340409','2018-01-31 21:14:10.477101','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@ex_practice_3','Randomized Questions','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_36e0beb03f0a\",\"Randomized Questions\"]]]'),(99,'2017-06-07 00:44:04.344650','2018-01-31 21:14:10.478933','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@ex_practice_2','Immediate Feedback','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_f04afeac0131\",\"Immediate Feedback\"]]]'),(100,'2017-06-07 00:44:04.351446','2018-01-31 21:14:10.480411','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@82d599b014b246c7a9b5dfc750dc08a9','Getting Started','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@867dddb6f55d410caaa9c1eb9c6743ec\",\"Getting Started\"]]]'),(101,'2017-06-07 00:44:04.355260','2018-01-31 21:14:10.481834','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@f4a39219742149f781a1dda6f43a623c','Overall Grade','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@1b0e2c2c84884b95b1c99fb678cc964c\",\"Overall Grade Performance\"]]]'),(102,'2017-06-07 00:44:04.359932','2018-01-31 21:14:10.483216','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@651e0945b77f42e0a4c89b8c3e6f5b3b','Answering More Than Once','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@f91d8d31f7cf48ce990f8d8745ae4cfa\",\"Answering More Than Once\"]]]'),(103,'2017-06-07 00:44:04.363771','2018-01-31 21:14:10.484624','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@d2e35c1d294b4ba0b3b1048615605d2a','Drag and Drop','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@47dbd5f836544e61877a483c0b75606c\",\"Drag and Drop\"]]]'),(104,'2017-06-07 00:44:04.368012','2018-01-31 21:14:10.485965','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@870371212ba04dcf9536d7c7b8f3109e','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_0c92347a5c00\",\"Mathematical Expressions\"]]]'),(105,'2017-06-07 00:44:04.371531','2018-01-31 21:14:10.487363','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@78e3719e864e45f3bee938461f3c3de6','Protein Builder','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations\",\"Homework - Labs and Demos\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_bc69a47c6fae\",\"Protein Creator\"]]]'),(106,'2017-06-07 00:44:04.375152','2018-01-31 21:14:10.488776','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@ffa5817d49e14fec83ad6187cbe16358','Reading Sample','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@134df56c516a4a0dbb24dd5facef746e\",\"Reading Assignments\"]]]'),(107,'2017-06-07 00:44:04.379738','2018-01-31 21:14:10.490008','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@54bb9b142c6c4c22afc62bcb628f0e68','Multiple Choice Questions','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"]]]'),(108,'2017-06-07 00:44:04.383447','2018-01-31 21:14:10.491224','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@b6662b497c094bcc9b870d8270c90c93','Getting Answers','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"]]]'),(109,'2017-06-07 00:44:04.388097','2018-01-31 21:14:10.492464','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_bc69a47c6fae','Protein Creator','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations\",\"Homework - Labs and Demos\"]]]'),(110,'2017-06-07 00:44:04.392036','2018-01-31 21:14:10.494092','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@f9f3a25e7bab46e583fd1fbbd7a2f6a0','Be Social','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@social_integration\",\"Example Week 3: Be Social\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@48ecb924d7fe4b66a230137626bfa93e\",\"Lesson 3 - Be Social\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@3c4b575924bf4b75a2f3542df5c354fc\",\"Be Social\"]]]'),(111,'2017-06-07 00:44:04.396164','2018-01-31 21:14:10.495641','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@9f9e1373cc8243b985c8750cc8acec7d','Video Demonstrations','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@4a1bba2a403f40bca5ec245e945b0d76\",\"Video Demonstrations\"]]]'),(112,'2017-06-07 00:44:04.402103','2018-01-31 21:14:10.496818','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5','Lesson 1 - Getting Started','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"]]]'),(113,'2017-06-07 00:44:04.405922','2018-01-31 21:14:10.498271','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@67c26b1e826e47aaa29757f62bcd1ad0','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@54bb9b142c6c4c22afc62bcb628f0e68\",\"Multiple Choice Questions\"]]]'),(114,'2017-06-07 00:44:04.410299','2018-01-31 21:14:10.499707','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@ade92343df3d4953a40ab3adc8805390','Google Hangout','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@social_integration\",\"Example Week 3: Be Social\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@6ab9c442501d472c8ed200e367b4edfa\",\"More Ways to Connect\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@3f2c11aba9434e459676a7d7acc4d960\",\"Google Hangout\"]]]'),(115,'2017-06-07 00:44:04.414247','2018-01-31 21:14:10.500957','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_1fef54c2b23b','Chemical Equations','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"]]]'),(116,'2017-06-07 00:44:04.418788','2018-01-31 21:14:10.502266','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_aae927868e55','Code Grader','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations\",\"Homework - Labs and Demos\"]]]'),(117,'2017-06-07 00:44:04.422425','2018-01-31 21:14:10.503512','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@d0d804e8863c4a95a659c04d8a2b2bc0','Lesson 2 - Let\'s Get Interactive! ','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@simulations\",\"Lesson 2 - Let\'s Get Interactive!\"]]]'),(118,'2017-06-07 00:44:04.426312','2018-01-31 21:14:10.504645','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@sequential+block@dbe8fc027bcb4fe9afb744d2e8415855','Homework - Find Your Study Buddy','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@social_integration\",\"Example Week 3: Be Social\"]]]'),(119,'2017-06-07 00:44:04.431034','2018-01-31 21:14:10.506011','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@6244918637ed4ff4b5f94a840a7e4b43','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@e8a5cc2aed424838853defab7be45e42\",\"Text input\"]]]'),(120,'2017-06-07 00:44:04.438880','2018-01-31 21:14:10.507269','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@c7e98fd39a6944edb6b286c32e1150ff','Passing a Course','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"]]]'),(121,'2017-06-07 00:44:04.442617','2018-01-31 21:14:10.508487','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@sequential+block@175e76c4951144a29d46211361266e0e','Homework - Essays','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"]]]'),(122,'2017-06-07 00:44:04.446689','2018-01-31 21:14:10.509902','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@3c4b575924bf4b75a2f3542df5c354fc','Be Social','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@social_integration\",\"Example Week 3: Be Social\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@48ecb924d7fe4b66a230137626bfa93e\",\"Lesson 3 - Be Social\"]]]'),(123,'2017-06-07 00:44:04.451425','2018-01-31 21:14:10.511517','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@2bee8c4248e842a19ba1e73ed8d426c2','Labs and Demos','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations\",\"Homework - Labs and Demos\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@d6cee45205a449369d7ef8f159b22bdf\",\"Labs and Demos\"]]]'),(124,'2017-06-07 00:44:04.454995','2018-01-31 21:14:10.512869','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_36e0beb03f0a','Randomized Questions','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"]]]'),(125,'2017-06-07 00:44:04.459194','2018-01-31 21:14:10.514253','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@6b6bee43c7c641509da71c9299cc9f5a','Blank HTML Page','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@d6eaa391d2be41dea20b8b1bfbcb1c45\",\"Getting Your edX Certificate\"]]]'),(126,'2017-06-07 00:44:04.462606','2018-01-31 21:14:10.515612','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@1b0e2c2c84884b95b1c99fb678cc964c','Overall Grade Performance','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"]]]'),(127,'2017-06-07 00:44:04.466210','2018-01-31 21:14:10.516743','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@sequential+block@07bc32474380492cb34f76e5f9d9a135','New Subsection','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@9fca584977d04885bc911ea76a9ef29e\",\"holding section\"]]]'),(128,'2017-06-07 00:44:04.470488','2018-01-31 21:14:10.518157','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@free_form_simulation','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations\",\"Homework - Labs and Demos\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_c037f3757df1\",\"Electric Circuit Simulator\"]]]'),(129,'2017-06-07 00:44:04.474016','2018-01-31 21:14:10.519602','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@0d759dee4f9d459c8956136dbde55f02','Text Input','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@e8a5cc2aed424838853defab7be45e42\",\"Text input\"]]]'),(130,'2017-06-07 00:44:04.478627','2018-01-31 21:14:10.520802','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@sequential+block@edx_introduction','Demo Course Overview','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@d8a6192ade314473a78242dfeedfbf5b\",\"Introduction\"]]]'),(131,'2017-06-07 00:44:04.482078','2018-01-31 21:14:10.522142','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@6018785795994726950614ce7d0f38c5','Find Your Study Buddy','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@social_integration\",\"Example Week 3: Be Social\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@dbe8fc027bcb4fe9afb744d2e8415855\",\"Homework - Find Your Study Buddy\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@26d89b08f75d48829a63520ed8b0037d\",\"Homework - Find Your Study Buddy\"]]]'),(132,'2017-06-07 00:44:04.485444','2017-06-07 00:44:04.485631','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@chapter+block@9fca584977d04885bc911ea76a9ef29e','holding section','[]'),(133,'2017-06-07 00:44:04.489825','2018-01-31 21:14:10.523400','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@d6eaa391d2be41dea20b8b1bfbcb1c45','Getting Your edX Certificate','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"]]]'),(134,'2017-06-07 00:44:04.493485','2018-01-31 21:14:10.524636','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@3dc16db8d14842e38324e95d4030b8a0','Videos on edX','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"]]]'),(135,'2017-06-07 00:44:04.497864','2018-01-31 21:14:10.525869','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_98cf62510471','Zooming Diagrams','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@simulations\",\"Lesson 2 - Let\'s Get Interactive!\"]]]'),(136,'2017-06-07 00:44:04.501379','2018-01-31 21:14:10.527495','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@ddede76df71045ffa16de9d1481d2119','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@1414ffd5143b4b508f739b563ab468b7\",\"About Exams and Certificates\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@workflow\",\"edX Exams\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_36e0beb03f0a\",\"Randomized Questions\"]]]'),(137,'2017-06-07 00:44:04.505020','2018-01-31 21:14:10.528937','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_0270f6de40fc','Introduction: Video and Sequences','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@d8a6192ade314473a78242dfeedfbf5b\",\"Introduction\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@edx_introduction\",\"Demo Course Overview\"]]]'),(138,'2017-06-07 00:44:04.509479','2018-01-31 21:14:10.530924','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@video+block@7e9b434e6de3435ab99bd3fb25bde807','Science and Cooking Chef Profile: JOSÉ ANDRÉS','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@4f6c1b4e316a419ab5b6bf30e6c708e9\",\"Working with Videos\"]]]'),(139,'2017-06-07 00:44:04.513006','2018-01-31 21:14:10.532420','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@75f9562c77bc4858b61f907bb810d974','Numerical Input','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@2889db1677a549abb15eb4d886f95d1c\",\"Numerical Input\"]]]'),(140,'2017-06-07 00:44:04.517444','2018-01-31 21:14:10.533807','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@501aed9d902349eeb2191fa505548de2','','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@2889db1677a549abb15eb4d886f95d1c\",\"Numerical Input\"]]]'),(141,'2017-06-07 00:44:04.521205','2018-01-31 21:14:10.535066','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@vertical_d32bf9b2242c','Electronic Sound Experiment','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@simulations\",\"Lesson 2 - Let\'s Get Interactive!\"]]]'),(142,'2017-06-07 00:44:05.897680','2017-06-07 00:44:05.897979','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@video+block@af7fe1335eb841cd81ce31c7ee8eb069','Video','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@simulations\",\"Lesson 2 - Let\'s Get Interactive!\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@4e592689563243c484af947465eaef0d\",\"New Unit\"]]]'),(143,'2017-06-07 00:44:05.902830','2017-06-07 00:44:05.903075','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@45c7cedb4bfe46f4a68c78787151cfb5','New Unit','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@9fca584977d04885bc911ea76a9ef29e\",\"holding section\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@07bc32474380492cb34f76e5f9d9a135\",\"New Subsection\"]]]'),(144,'2017-06-07 00:44:05.906665','2017-06-07 00:44:05.906893','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@9d5104b502f24ee89c3d2f4ce9d347cf','When Are Your Exams? ','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@d91b9e5d8bc64d57a1332d06bf2f2193\",\"When Are Your Exams? \"]]]'),(145,'2017-06-07 00:44:05.911313','2017-06-07 00:44:05.911541','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@video+block@ab98b0e385e64445ae97e730ffdf17e7','Biology Demonstration','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@f0e6d90842c44cc7a50fd1a18a7dd982\",\"Video Demonstrations\"]]]'),(146,'2017-06-07 00:44:05.914854','2017-06-07 00:44:05.915070','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@4e592689563243c484af947465eaef0d','New Unit','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@simulations\",\"Lesson 2 - Let\'s Get Interactive!\"]]]'),(147,'2017-06-07 00:44:05.918961','2017-06-07 00:44:05.919185','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@ffcd6351126d4ca984409180e41d1b51','Exciting Labs and Tools','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@a79d59cd72034188a71d388f4954a606\",\"Exciting Labs and Tools\"]]]'),(148,'2017-06-07 00:44:05.922554','2017-06-07 00:44:05.922821','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@87fa6792d79f4862be098e5169e93339','Blank HTML Page','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@social_integration\",\"Example Week 3: Be Social\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@48ecb924d7fe4b66a230137626bfa93e\",\"Lesson 3 - Be Social\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@7efc7bf4a47b4a6cb6595c32cde7712a\",\"Homework - Find Your Study Buddy\"]]]'),(149,'2017-06-07 00:44:05.926111','2017-06-07 00:44:05.926326','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@a79d59cd72034188a71d388f4954a606','Exciting Labs and Tools','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"]]]'),(150,'2017-06-07 00:44:05.931844','2017-06-07 00:44:05.932099','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@2d3efa8db04346548bd5e5374de77628','Text','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@f0e6d90842c44cc7a50fd1a18a7dd982\",\"Video Demonstrations\"]]]'),(151,'2017-06-07 00:44:05.935548','2017-06-07 00:44:05.935764','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@f0e6d90842c44cc7a50fd1a18a7dd982','Video Demonstrations','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"]]]'),(152,'2017-06-07 00:44:05.939841','2017-06-07 00:44:05.940068','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@discussion+block@1c8d47c425724346a7968fa1bc745dcd','Labs and Tools','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@a79d59cd72034188a71d388f4954a606\",\"Exciting Labs and Tools\"]]]'),(153,'2017-06-07 00:44:05.943266','2017-06-07 00:44:05.943481','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@fb6b62dbec4348528629cf2232b86aea','Instructor Programmed Responses','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"]]]'),(154,'2017-06-07 00:44:05.947431','2017-06-07 00:44:05.947649','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@8f89194410954e768bde1764985454a7','Molecule Structures','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations\",\"Homework - Labs and Demos\"]]]'),(155,'2017-06-07 00:44:05.952231','2017-06-07 00:44:05.952458','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@html+block@eb469ec408fa4ab1a9b86c634ca9bfa9','Text','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@f0e6d90842c44cc7a50fd1a18a7dd982\",\"Video Demonstrations\"]]]'),(156,'2017-06-07 00:44:05.955630','2017-06-07 00:44:05.955853','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@9b9687073e904ae197799dc415df899f','Molecule Structures','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@graded_interactions\",\"Example Week 2: Get Interactive\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations\",\"Homework - Labs and Demos\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@8f89194410954e768bde1764985454a7\",\"Molecule Structures\"]]]'),(157,'2017-06-07 00:44:05.959900','2017-06-07 00:44:05.960124','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@7efc7bf4a47b4a6cb6595c32cde7712a','Homework - Find Your Study Buddy','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@social_integration\",\"Example Week 3: Be Social\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@48ecb924d7fe4b66a230137626bfa93e\",\"Lesson 3 - Be Social\"]]]'),(158,'2017-06-07 00:44:05.963387','2017-06-07 00:44:05.963609','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@problem+block@d7daeff25e4f4026bdd269ae69e03e02','Instructor-Programmed Responses','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions\",\"Homework - Question Styles\"],[\"block-v1:edX+DemoX+Demo_Course+type@vertical+block@fb6b62dbec4348528629cf2232b86aea\",\"Instructor Programmed Responses\"]]]'),(159,'2017-06-07 00:44:05.968870','2017-06-07 00:44:05.969094','course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@vertical+block@d91b9e5d8bc64d57a1332d06bf2f2193','When Are Your Exams? ','[[[\"block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations\",\"Example Week 1: Getting Started\"],[\"block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5\",\"Lesson 1 - Getting Started\"]]]'),(160,'2018-01-31 21:27:05.908636','2018-01-31 21:27:06.153949','course-v1:edX+E2E-101+course','block-v1:edX+E2E-101+course+type@course+block@course','Manual Smoke Test Course 1 - Auto','[]'),(161,'2018-01-31 21:27:06.158432','2018-01-31 21:27:06.158635','course-v1:edX+E2E-101+course','block-v1:edX+E2E-101+course+type@chapter+block@5e637f321727429fb53374cbfb4ff28a','Section :754c5e889ac3489e9947ba62b916bdab','[]'),(162,'2018-01-31 21:27:06.161580','2018-01-31 21:27:06.161777','course-v1:edX+E2E-101+course','block-v1:edX+E2E-101+course+type@sequential+block@3322473e23a1436986e38912cd581d09','Subsection :56c1bc20d270414b877e9c178954b6ed','[[[\"block-v1:edX+E2E-101+course+branch@draft-branch+version@5a7234aab65909059994f4a0+type@chapter+block@5e637f321727429fb53374cbfb4ff28a\",\"Section :754c5e889ac3489e9947ba62b916bdab\"]]]'); /*!40000 ALTER TABLE `bookmarks_xblockcache` ENABLE KEYS */; UNLOCK TABLES; @@ -1225,8 +1463,8 @@ CREATE TABLE `branding_brandingapiconfig` ( `enabled` tinyint(1) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `branding_branding_changed_by_id_127fa63777522d05_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `branding_branding_changed_by_id_127fa63777522d05_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `branding_brandingapi_changed_by_id_bab2730f_fk_auth_user` (`changed_by_id`), + CONSTRAINT `branding_brandingapi_changed_by_id_bab2730f_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1252,8 +1490,8 @@ CREATE TABLE `branding_brandinginfoconfig` ( `configuration` longtext NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `branding_branding_changed_by_id_298e4241fae118cc_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `branding_branding_changed_by_id_298e4241fae118cc_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `branding_brandinginf_changed_by_id_616dd172_fk_auth_user` (`changed_by_id`), + CONSTRAINT `branding_brandinginf_changed_by_id_616dd172_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1279,8 +1517,8 @@ CREATE TABLE `bulk_email_bulkemailflag` ( `require_course_email_auth` tinyint(1) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `bulk_email_bulkem_changed_by_id_67960d6511f876aa_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `bulk_email_bulkem_changed_by_id_67960d6511f876aa_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `bulk_email_bulkemailflag_changed_by_id_c510754b_fk_auth_user_id` (`changed_by_id`), + CONSTRAINT `bulk_email_bulkemailflag_changed_by_id_c510754b_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1303,9 +1541,9 @@ CREATE TABLE `bulk_email_cohorttarget` ( `target_ptr_id` int(11) NOT NULL, `cohort_id` int(11) NOT NULL, PRIMARY KEY (`target_ptr_id`), - KEY `b_cohort_id_3d66a5e8e283dba0_fk_course_groups_courseusergroup_id` (`cohort_id`), - CONSTRAINT `b_cohort_id_3d66a5e8e283dba0_fk_course_groups_courseusergroup_id` FOREIGN KEY (`cohort_id`) REFERENCES `course_groups_courseusergroup` (`id`), - CONSTRAINT `bulk_emai_target_ptr_id_7974c77c83c2899d_fk_bulk_email_target_id` FOREIGN KEY (`target_ptr_id`) REFERENCES `bulk_email_target` (`id`) + KEY `bulk_email_cohorttar_cohort_id_096f39c9_fk_course_gr` (`cohort_id`), + CONSTRAINT `bulk_email_cohorttar_cohort_id_096f39c9_fk_course_gr` FOREIGN KEY (`cohort_id`) REFERENCES `course_groups_courseusergroup` (`id`), + CONSTRAINT `bulk_email_cohorttar_target_ptr_id_7e1a1a40_fk_bulk_emai` FOREIGN KEY (`target_ptr_id`) REFERENCES `bulk_email_target` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1362,10 +1600,10 @@ CREATE TABLE `bulk_email_courseemail` ( `from_addr` varchar(255) DEFAULT NULL, `sender_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `bulk_email_courseemai_sender_id_37be3a6322a26640_fk_auth_user_id` (`sender_id`), - KEY `bulk_email_courseemail_2dbcba41` (`slug`), - KEY `bulk_email_courseemail_ea134da7` (`course_id`), - CONSTRAINT `bulk_email_courseemai_sender_id_37be3a6322a26640_fk_auth_user_id` FOREIGN KEY (`sender_id`) REFERENCES `auth_user` (`id`) + KEY `bulk_email_courseemail_sender_id_865f6979_fk_auth_user_id` (`sender_id`), + KEY `bulk_email_courseemail_slug_bd25801f` (`slug`), + KEY `bulk_email_courseemail_course_id_b7b8a9a2` (`course_id`), + CONSTRAINT `bulk_email_courseemail_sender_id_865f6979_fk_auth_user_id` FOREIGN KEY (`sender_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1389,10 +1627,10 @@ CREATE TABLE `bulk_email_courseemail_targets` ( `courseemail_id` int(11) NOT NULL, `target_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `courseemail_id` (`courseemail_id`,`target_id`), - KEY `bulk_email_co_target_id_6cdcd92a52b1f9d9_fk_bulk_email_target_id` (`target_id`), - CONSTRAINT `bul_courseemail_id_47818d2b9b38e0e0_fk_bulk_email_courseemail_id` FOREIGN KEY (`courseemail_id`) REFERENCES `bulk_email_courseemail` (`id`), - CONSTRAINT `bulk_email_co_target_id_6cdcd92a52b1f9d9_fk_bulk_email_target_id` FOREIGN KEY (`target_id`) REFERENCES `bulk_email_target` (`id`) + UNIQUE KEY `bulk_email_courseemail_t_courseemail_id_target_id_e0440acc_uniq` (`courseemail_id`,`target_id`), + KEY `bulk_email_courseema_target_id_52b11fa9_fk_bulk_emai` (`target_id`), + CONSTRAINT `bulk_email_courseema_courseemail_id_83f5bdcd_fk_bulk_emai` FOREIGN KEY (`courseemail_id`) REFERENCES `bulk_email_courseemail` (`id`), + CONSTRAINT `bulk_email_courseema_target_id_52b11fa9_fk_bulk_emai` FOREIGN KEY (`target_id`) REFERENCES `bulk_email_target` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1427,7 +1665,7 @@ CREATE TABLE `bulk_email_courseemailtemplate` ( LOCK TABLES `bulk_email_courseemailtemplate` WRITE; /*!40000 ALTER TABLE `bulk_email_courseemailtemplate` DISABLE KEYS */; -INSERT INTO `bulk_email_courseemailtemplate` VALUES (1,' Update from {course_title}

\'edX\'
Connect with edX:        
\'\'

{course_title}


{{message_body}}
       
Copyright © 2013 edX, All rights reserved.


Our mailing address is:
edX
11 Cambridge Center, Suite 101
Cambridge, MA, USA 02142


This email was automatically sent from {platform_name}.
You are receiving this email at address {email} because you are enrolled in {course_title}.
To stop receiving email like this, update your course email settings here.
','{course_title}\n\n{{message_body}}\r\n----\r\nCopyright 2013 edX, All rights reserved.\r\n----\r\nConnect with edX:\r\nFacebook (http://facebook.com/edxonline)\r\nTwitter (http://twitter.com/edxonline)\r\nGoogle+ (https://plus.google.com/108235383044095082735)\r\nMeetup (http://www.meetup.com/edX-Communities/)\r\n----\r\nThis email was automatically sent from {platform_name}.\r\nYou are receiving this email at address {email} because you are enrolled in {course_title}\r\n(URL: {course_url} ).\r\nTo stop receiving email like this, update your course email settings at {email_settings_url}.\r\n',NULL),(2,' THIS IS A BRANDED HTML TEMPLATE Update from {course_title}

\'edX\'
Connect with edX:        
\'\'

{course_title}


{{message_body}}
       
Copyright © 2013 edX, All rights reserved.


Our mailing address is:
edX
11 Cambridge Center, Suite 101
Cambridge, MA, USA 02142


This email was automatically sent from {platform_name}.
You are receiving this email at address {email} because you are enrolled in {course_title}.
To stop receiving email like this, update your course email settings here.
','THIS IS A BRANDED TEXT TEMPLATE. {course_title}\n\n{{message_body}}\r\n----\r\nCopyright 2013 edX, All rights reserved.\r\n----\r\nConnect with edX:\r\nFacebook (http://facebook.com/edxonline)\r\nTwitter (http://twitter.com/edxonline)\r\nGoogle+ (https://plus.google.com/108235383044095082735)\r\nMeetup (http://www.meetup.com/edX-Communities/)\r\n----\r\nThis email was automatically sent from {platform_name}.\r\nYou are receiving this email at address {email} because you are enrolled in {course_title}\r\n(URL: {course_url} ).\r\nTo stop receiving email like this, update your course email settings at {email_settings_url}.\r\n','branded.template'); +INSERT INTO `bulk_email_courseemailtemplate` VALUES (1,' Update from {course_title}

\'edX\'
Connect with edX:      
\'\'

{course_title}


{{message_body}}
     
Copyright © 2013 edX, All rights reserved.


Our mailing address is:
edX
11 Cambridge Center, Suite 101
Cambridge, MA, USA 02142


This email was automatically sent from {platform_name}.
You are receiving this email at address {email} because you are enrolled in {course_title}.
To stop receiving email like this, update your course email settings here.

unsubscribe
','{course_title}\n\n{{message_body}}\r\n----\r\nCopyright 2013 edX, All rights reserved.\r\n----\r\nConnect with edX:\r\nFacebook (http://facebook.com/edxonline)\r\nTwitter (http://twitter.com/edxonline)\r\nMeetup (http://www.meetup.com/edX-Communities/)\r\n----\r\nThis email was automatically sent from {platform_name}.\r\nYou are receiving this email at address {email} because you are enrolled in {course_title}\r\n(URL: {course_url} ).\r\nTo stop receiving email like this, update your course email settings at {email_settings_url}.\r\n{unsubscribe_link}\r\n',NULL),(2,' THIS IS A BRANDED HTML TEMPLATE Update from {course_title}

\'edX\'
Connect with edX:      
\'\'

{course_title}


{{message_body}}
     
Copyright © 2013 edX, All rights reserved.


Our mailing address is:
edX
11 Cambridge Center, Suite 101
Cambridge, MA, USA 02142


This email was automatically sent from {platform_name}.
You are receiving this email at address {email} because you are enrolled in {course_title}.
To stop receiving email like this, update your course email settings here.

unsubscribe
','THIS IS A BRANDED TEXT TEMPLATE. {course_title}\n\n{{message_body}}\r\n----\r\nCopyright 2013 edX, All rights reserved.\r\n----\r\nConnect with edX:\r\nFacebook (http://facebook.com/edxonline)\r\nTwitter (http://twitter.com/edxonline)\r\nMeetup (http://www.meetup.com/edX-Communities/)\r\n----\r\nThis email was automatically sent from {platform_name}.\r\nYou are receiving this email at address {email} because you are enrolled in {course_title}\r\n(URL: {course_url} ).\r\nTo stop receiving email like this, update your course email settings at {email_settings_url}.\r\n{unsubscribe_link}\r\n','branded.template'); /*!40000 ALTER TABLE `bulk_email_courseemailtemplate` ENABLE KEYS */; UNLOCK TABLES; @@ -1441,9 +1679,9 @@ CREATE TABLE `bulk_email_coursemodetarget` ( `target_ptr_id` int(11) NOT NULL, `track_id` int(11) NOT NULL, PRIMARY KEY (`target_ptr_id`), - KEY `bulk_ema_track_id_22015815e2847a7c_fk_course_modes_coursemode_id` (`track_id`), - CONSTRAINT `bulk_ema_track_id_22015815e2847a7c_fk_course_modes_coursemode_id` FOREIGN KEY (`track_id`) REFERENCES `course_modes_coursemode` (`id`), - CONSTRAINT `bulk_email_target_ptr_id_f860b6472e1dca2_fk_bulk_email_target_id` FOREIGN KEY (`target_ptr_id`) REFERENCES `bulk_email_target` (`id`) + KEY `bulk_email_coursemod_track_id_2b68bb43_fk_course_mo` (`track_id`), + CONSTRAINT `bulk_email_coursemod_target_ptr_id_f2f054ce_fk_bulk_emai` FOREIGN KEY (`target_ptr_id`) REFERENCES `bulk_email_target` (`id`), + CONSTRAINT `bulk_email_coursemod_track_id_2b68bb43_fk_course_mo` FOREIGN KEY (`track_id`) REFERENCES `course_modes_coursemode` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1456,6 +1694,29 @@ LOCK TABLES `bulk_email_coursemodetarget` WRITE; /*!40000 ALTER TABLE `bulk_email_coursemodetarget` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `bulk_email_disabledcourse` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `bulk_email_disabledcourse` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `course_id` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `course_id` (`course_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `bulk_email_disabledcourse` +-- + +LOCK TABLES `bulk_email_disabledcourse` WRITE; +/*!40000 ALTER TABLE `bulk_email_disabledcourse` DISABLE KEYS */; +/*!40000 ALTER TABLE `bulk_email_disabledcourse` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `bulk_email_optout` -- @@ -1467,9 +1728,9 @@ CREATE TABLE `bulk_email_optout` ( `course_id` varchar(255) NOT NULL, `user_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `bulk_email_optout_user_id_7710cb544aafa8a_uniq` (`user_id`,`course_id`), - KEY `bulk_email_optout_ea134da7` (`course_id`), - CONSTRAINT `bulk_email_optout_user_id_5d6e4a037bcf14bd_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `bulk_email_optout_user_id_course_id_e0e2d6a6_uniq` (`user_id`,`course_id`), + KEY `bulk_email_optout_course_id_5c5836a8` (`course_id`), + CONSTRAINT `bulk_email_optout_user_id_ff6223d6_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1505,4229 +1766,7762 @@ LOCK TABLES `bulk_email_target` WRITE; UNLOCK TABLES; -- --- Table structure for table `catalog_catalogintegration` +-- Table structure for table `bulk_grades_scoreoverrider` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `catalog_catalogintegration` ( +CREATE TABLE `bulk_grades_scoreoverrider` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `internal_api_url` varchar(200) NOT NULL, - `cache_ttl` int(10) unsigned NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, - `service_username` varchar(100) NOT NULL, - `page_size` int(10) unsigned NOT NULL, - `long_term_cache_ttl` int(10) unsigned NOT NULL, + `modified` datetime(6) NOT NULL, + `created` datetime(6) NOT NULL, + `module_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `catalog_catalogin_changed_by_id_4c786efa531d484b_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `catalog_catalogin_changed_by_id_4c786efa531d484b_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `bulk_grades_scoreove_module_id_33617068_fk_coursewar` (`module_id`), + KEY `bulk_grades_scoreoverrider_user_id_9768d9f6_fk_auth_user_id` (`user_id`), + KEY `bulk_grades_scoreoverrider_created_2d9c74a5` (`created`), + CONSTRAINT `bulk_grades_scoreoverrider_user_id_9768d9f6_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `catalog_catalogintegration` +-- Dumping data for table `bulk_grades_scoreoverrider` -- -LOCK TABLES `catalog_catalogintegration` WRITE; -/*!40000 ALTER TABLE `catalog_catalogintegration` DISABLE KEYS */; -/*!40000 ALTER TABLE `catalog_catalogintegration` ENABLE KEYS */; +LOCK TABLES `bulk_grades_scoreoverrider` WRITE; +/*!40000 ALTER TABLE `bulk_grades_scoreoverrider` DISABLE KEYS */; +/*!40000 ALTER TABLE `bulk_grades_scoreoverrider` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `celery_taskmeta` +-- Table structure for table `bundles_bundle` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `celery_taskmeta` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `task_id` varchar(255) NOT NULL, - `status` varchar(50) NOT NULL, - `result` longtext, - `date_done` datetime(6) NOT NULL, - `traceback` longtext, - `hidden` tinyint(1) NOT NULL, - `meta` longtext, +CREATE TABLE `bundles_bundle` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `uuid` char(32) NOT NULL, + `title` varchar(180) CHARACTER SET utf8mb4 DEFAULT NULL, + `slug` varchar(50) CHARACTER SET utf8mb4 DEFAULT NULL, + `description` longtext CHARACTER SET utf8mb4, + `collection_id` bigint(20) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `task_id` (`task_id`), - KEY `celery_taskmeta_662f707d` (`hidden`) + UNIQUE KEY `uuid` (`uuid`), + KEY `bundles_bundle_collection_id_7bbee084_fk_bundles_collection_id` (`collection_id`), + KEY `bundles_bundle_title_4fb0d07c` (`title`), + KEY `bundles_bundle_slug_2ecea44e` (`slug`), + CONSTRAINT `bundles_bundle_collection_id_7bbee084_fk_bundles_collection_id` FOREIGN KEY (`collection_id`) REFERENCES `bundles_collection` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `celery_taskmeta` +-- Dumping data for table `bundles_bundle` -- -LOCK TABLES `celery_taskmeta` WRITE; -/*!40000 ALTER TABLE `celery_taskmeta` DISABLE KEYS */; -/*!40000 ALTER TABLE `celery_taskmeta` ENABLE KEYS */; +LOCK TABLES `bundles_bundle` WRITE; +/*!40000 ALTER TABLE `bundles_bundle` DISABLE KEYS */; +/*!40000 ALTER TABLE `bundles_bundle` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `celery_tasksetmeta` +-- Table structure for table `bundles_bundlelink` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `celery_tasksetmeta` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `taskset_id` varchar(255) NOT NULL, - `result` longtext NOT NULL, - `date_done` datetime(6) NOT NULL, - `hidden` tinyint(1) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `taskset_id` (`taskset_id`), - KEY `celery_tasksetmeta_662f707d` (`hidden`) +CREATE TABLE `bundles_bundlelink` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `uses_latest` tinyint(1) NOT NULL, + PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `celery_tasksetmeta` +-- Dumping data for table `bundles_bundlelink` -- -LOCK TABLES `celery_tasksetmeta` WRITE; -/*!40000 ALTER TABLE `celery_tasksetmeta` DISABLE KEYS */; -/*!40000 ALTER TABLE `celery_tasksetmeta` ENABLE KEYS */; +LOCK TABLES `bundles_bundlelink` WRITE; +/*!40000 ALTER TABLE `bundles_bundlelink` DISABLE KEYS */; +/*!40000 ALTER TABLE `bundles_bundlelink` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `celery_utils_chorddata` +-- Table structure for table `bundles_bundleversion` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `celery_utils_chorddata` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `serialized_callback` longtext NOT NULL, - `callback_result_id` int(11) NOT NULL, +CREATE TABLE `bundles_bundleversion` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `version_num` int(10) unsigned NOT NULL, + `snapshot_digest` varchar(40) NOT NULL, + `change_description` longtext CHARACTER SET utf8mb4, + `bundle_id` bigint(20) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `callback_result_id` (`callback_result_id`), - CONSTRAINT `celery_callback_result_id_230f1d5ec4608165_fk_celery_taskmeta_id` FOREIGN KEY (`callback_result_id`) REFERENCES `celery_taskmeta` (`id`) + UNIQUE KEY `bundles_bundleversion_bundle_id_version_num_60ae090e_uniq` (`bundle_id`,`version_num`), + KEY `bundles_bundleversion_snapshot_digest_53518161` (`snapshot_digest`), + CONSTRAINT `bundles_bundleversion_bundle_id_8a76e2ca_fk_bundles_bundle_id` FOREIGN KEY (`bundle_id`) REFERENCES `bundles_bundle` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `celery_utils_chorddata` +-- Dumping data for table `bundles_bundleversion` -- -LOCK TABLES `celery_utils_chorddata` WRITE; -/*!40000 ALTER TABLE `celery_utils_chorddata` DISABLE KEYS */; -/*!40000 ALTER TABLE `celery_utils_chorddata` ENABLE KEYS */; +LOCK TABLES `bundles_bundleversion` WRITE; +/*!40000 ALTER TABLE `bundles_bundleversion` DISABLE KEYS */; +/*!40000 ALTER TABLE `bundles_bundleversion` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `celery_utils_chorddata_completed_results` +-- Table structure for table `bundles_collection` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `celery_utils_chorddata_completed_results` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `chorddata_id` int(11) NOT NULL, - `taskmeta_id` int(11) NOT NULL, +CREATE TABLE `bundles_collection` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `uuid` char(32) NOT NULL, + `title` varchar(180) CHARACTER SET utf8mb4 DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `chorddata_id` (`chorddata_id`,`taskmeta_id`), - KEY `celery_utils__taskmeta_id_16beefb23621d690_fk_celery_taskmeta_id` (`taskmeta_id`), - CONSTRAINT `celery_chorddata_id_2abad2f2a442ac5_fk_celery_utils_chorddata_id` FOREIGN KEY (`chorddata_id`) REFERENCES `celery_utils_chorddata` (`id`), - CONSTRAINT `celery_utils__taskmeta_id_16beefb23621d690_fk_celery_taskmeta_id` FOREIGN KEY (`taskmeta_id`) REFERENCES `celery_taskmeta` (`id`) + UNIQUE KEY `uuid` (`uuid`), + KEY `bundles_collection_title_ca2abfeb` (`title`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `celery_utils_chorddata_completed_results` +-- Dumping data for table `bundles_collection` -- -LOCK TABLES `celery_utils_chorddata_completed_results` WRITE; -/*!40000 ALTER TABLE `celery_utils_chorddata_completed_results` DISABLE KEYS */; -/*!40000 ALTER TABLE `celery_utils_chorddata_completed_results` ENABLE KEYS */; +LOCK TABLES `bundles_collection` WRITE; +/*!40000 ALTER TABLE `bundles_collection` DISABLE KEYS */; +/*!40000 ALTER TABLE `bundles_collection` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `celery_utils_failedtask` +-- Table structure for table `bundles_draft` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `celery_utils_failedtask` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, - `task_name` varchar(255) NOT NULL, - `task_id` varchar(255) NOT NULL, - `args` longtext NOT NULL, - `kwargs` longtext NOT NULL, - `exc` varchar(255) NOT NULL, - `datetime_resolved` datetime(6) DEFAULT NULL, +CREATE TABLE `bundles_draft` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `uuid` char(32) NOT NULL, + `name` varchar(180) CHARACTER SET utf8mb4 DEFAULT NULL, + `bundle_id` bigint(20) NOT NULL, PRIMARY KEY (`id`), - KEY `celery_utils_failedtask_task_name_2cb4bd734027fd4f_idx` (`task_name`,`exc`), - KEY `celery_utils_failedtask_57746cc8` (`task_id`), - KEY `celery_utils_failedtask_499aafb6` (`datetime_resolved`) + UNIQUE KEY `uuid` (`uuid`), + UNIQUE KEY `bundles_draft_bundle_id_name_55dbe3ed_uniq` (`bundle_id`,`name`), + CONSTRAINT `bundles_draft_bundle_id_20fb78ec_fk_bundles_bundle_id` FOREIGN KEY (`bundle_id`) REFERENCES `bundles_bundle` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `celery_utils_failedtask` +-- Dumping data for table `bundles_draft` -- -LOCK TABLES `celery_utils_failedtask` WRITE; -/*!40000 ALTER TABLE `celery_utils_failedtask` DISABLE KEYS */; -/*!40000 ALTER TABLE `celery_utils_failedtask` ENABLE KEYS */; +LOCK TABLES `bundles_draft` WRITE; +/*!40000 ALTER TABLE `bundles_draft` DISABLE KEYS */; +/*!40000 ALTER TABLE `bundles_draft` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `certificates_certificategenerationconfiguration` +-- Table structure for table `calendar_sync_historicalusercalendarsyncconfig` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `certificates_certificategenerationconfiguration` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, +CREATE TABLE `calendar_sync_historicalusercalendarsyncconfig` ( + `id` int(11) NOT NULL, + `course_key` varchar(255) NOT NULL, `enabled` tinyint(1) NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `certificates_cert_changed_by_id_2a1d896cdbd5fec5_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `certificates_cert_changed_by_id_2a1d896cdbd5fec5_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + `ics_sequence` int(11) NOT NULL, + PRIMARY KEY (`history_id`), + KEY `calendar_sync_histor_history_user_id_e696e2d5_fk_auth_user` (`history_user_id`), + KEY `calendar_sync_historicalusercalendarsyncconfig_id_2b36f9ae` (`id`), + KEY `calendar_sync_historicaluse_course_key_0f40c91a` (`course_key`), + KEY `calendar_sync_historicalusercalendarsyncconfig_user_id_c2855120` (`user_id`), + CONSTRAINT `calendar_sync_histor_history_user_id_e696e2d5_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `certificates_certificategenerationconfiguration` +-- Dumping data for table `calendar_sync_historicalusercalendarsyncconfig` -- -LOCK TABLES `certificates_certificategenerationconfiguration` WRITE; -/*!40000 ALTER TABLE `certificates_certificategenerationconfiguration` DISABLE KEYS */; -/*!40000 ALTER TABLE `certificates_certificategenerationconfiguration` ENABLE KEYS */; +LOCK TABLES `calendar_sync_historicalusercalendarsyncconfig` WRITE; +/*!40000 ALTER TABLE `calendar_sync_historicalusercalendarsyncconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `calendar_sync_historicalusercalendarsyncconfig` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `certificates_certificategenerationcoursesetting` +-- Table structure for table `calendar_sync_usercalendarsyncconfig` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `certificates_certificategenerationcoursesetting` ( +CREATE TABLE `calendar_sync_usercalendarsyncconfig` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, `course_key` varchar(255) NOT NULL, - `language_specific_templates_enabled` tinyint(1) NOT NULL, - `self_generation_enabled` tinyint(1) NOT NULL, - `include_hours_of_effort` tinyint(1) DEFAULT NULL, + `enabled` tinyint(1) NOT NULL, + `user_id` int(11) NOT NULL, + `ics_sequence` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `certificates_certificategenerationcoursesetting_c8235886` (`course_key`) + UNIQUE KEY `calendar_sync_usercalend_user_id_course_key_57c343ab_uniq` (`user_id`,`course_key`), + KEY `calendar_sync_usercalendarsyncconfig_course_key_86657ca7` (`course_key`), + CONSTRAINT `calendar_sync_userca_user_id_5dd14ead_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `certificates_certificategenerationcoursesetting` +-- Dumping data for table `calendar_sync_usercalendarsyncconfig` -- -LOCK TABLES `certificates_certificategenerationcoursesetting` WRITE; -/*!40000 ALTER TABLE `certificates_certificategenerationcoursesetting` DISABLE KEYS */; -/*!40000 ALTER TABLE `certificates_certificategenerationcoursesetting` ENABLE KEYS */; +LOCK TABLES `calendar_sync_usercalendarsyncconfig` WRITE; +/*!40000 ALTER TABLE `calendar_sync_usercalendarsyncconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `calendar_sync_usercalendarsyncconfig` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `certificates_certificategenerationhistory` +-- Table structure for table `canvas_canvasenterprisecustomerconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `certificates_certificategenerationhistory` ( +CREATE TABLE `canvas_canvasenterprisecustomerconfiguration` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `course_id` varchar(255) NOT NULL, - `is_regeneration` tinyint(1) NOT NULL, - `generated_by_id` int(11) NOT NULL, - `instructor_task_id` int(11) NOT NULL, + `active` tinyint(1) NOT NULL, + `transmission_chunk_size` int(11) NOT NULL, + `channel_worker_username` varchar(255) NOT NULL, + `catalogs_to_transmit` longtext NOT NULL, + `client_id` varchar(255) NOT NULL, + `client_secret` varchar(255) NOT NULL, + `canvas_account_id` bigint(20) DEFAULT NULL, + `canvas_base_url` varchar(255) NOT NULL, + `enterprise_customer_id` char(32) NOT NULL, + `refresh_token` varchar(255) NOT NULL, + `idp_id` varchar(255) NOT NULL, + `disable_learner_data_transmissions` tinyint(1) NOT NULL, + `uuid` char(32) NOT NULL, + `display_name` varchar(255) NOT NULL, + `dry_run_mode_enabled` tinyint(1) NOT NULL, + `deleted_at` datetime(6) DEFAULT NULL, + `last_content_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_content_sync_errored_at` datetime(6) DEFAULT NULL, + `last_learner_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_learner_sync_errored_at` datetime(6) DEFAULT NULL, + `last_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_sync_errored_at` datetime(6) DEFAULT NULL, + `last_modified_at` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `certificates_ce_generated_by_id_4679598e2d7d6e10_fk_auth_user_id` (`generated_by_id`), - KEY `D794923145b81064c232a4d0bfe79880` (`instructor_task_id`), - CONSTRAINT `D794923145b81064c232a4d0bfe79880` FOREIGN KEY (`instructor_task_id`) REFERENCES `instructor_task_instructortask` (`id`), - CONSTRAINT `certificates_ce_generated_by_id_4679598e2d7d6e10_fk_auth_user_id` FOREIGN KEY (`generated_by_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `canvas_canvasenterprisecustomerconfiguration_uuid_c3419677_uniq` (`uuid`), + KEY `canvas_canvasenterprisecust_enterprise_customer_id_b2e73393` (`enterprise_customer_id`), + CONSTRAINT `canvas_canvasenterpr_enterprise_customer__b2e73393_fk_enterpris` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `certificates_certificategenerationhistory` +-- Dumping data for table `canvas_canvasenterprisecustomerconfiguration` -- -LOCK TABLES `certificates_certificategenerationhistory` WRITE; -/*!40000 ALTER TABLE `certificates_certificategenerationhistory` DISABLE KEYS */; -/*!40000 ALTER TABLE `certificates_certificategenerationhistory` ENABLE KEYS */; +LOCK TABLES `canvas_canvasenterprisecustomerconfiguration` WRITE; +/*!40000 ALTER TABLE `canvas_canvasenterprisecustomerconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `canvas_canvasenterprisecustomerconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `certificates_certificatehtmlviewconfiguration` +-- Table structure for table `canvas_canvaslearnerassessmentdatatransmissionaudit` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `certificates_certificatehtmlviewconfiguration` ( +CREATE TABLE `canvas_canvaslearnerassessmentdatatransmissionaudit` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `configuration` longtext NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, + `canvas_user_email` varchar(255) NOT NULL, + `enterprise_course_enrollment_id` int(11) DEFAULT NULL, + `course_id` varchar(255) NOT NULL, + `subsection_id` varchar(255) DEFAULT NULL, + `grade_point_score` double NOT NULL, + `grade_points_possible` double NOT NULL, + `grade` double DEFAULT NULL, + `subsection_name` varchar(255) DEFAULT NULL, + `status` varchar(100) DEFAULT NULL, + `error_message` longtext, + `created` datetime(6) NOT NULL, + `completed_timestamp` datetime(6) DEFAULT NULL, + `course_completed` tinyint(1) NOT NULL, + `enterprise_customer_uuid` char(32) DEFAULT NULL, + `instructor_name` varchar(255) NOT NULL, + `modified` datetime(6) NOT NULL, + `plugin_configuration_id` int(11) DEFAULT NULL, + `total_hours` double DEFAULT NULL, + `friendly_status_message` varchar(255) DEFAULT NULL, + `api_record_id` int(11) DEFAULT NULL, + `content_title` varchar(255) DEFAULT NULL, + `progress_status` varchar(255) NOT NULL, + `user_email` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `certificates_cert_changed_by_id_1de6cf549bca749b_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `certificates_cert_changed_by_id_1de6cf549bca749b_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; + UNIQUE KEY `api_record_id` (`api_record_id`), + KEY `canvas_canvaslearnerassessm_enterprise_course_enrollmen_d9dba2b4` (`enterprise_course_enrollment_id`), + KEY `canvas_canvaslearnerassessm_subsection_id_b3450f75` (`subsection_id`), + CONSTRAINT `canvas_canvaslearner_api_record_id_c5b55bc9_fk_integrate` FOREIGN KEY (`api_record_id`) REFERENCES `integrated_channel_apiresponserecord` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `certificates_certificatehtmlviewconfiguration` +-- Dumping data for table `canvas_canvaslearnerassessmentdatatransmissionaudit` -- -LOCK TABLES `certificates_certificatehtmlviewconfiguration` WRITE; -/*!40000 ALTER TABLE `certificates_certificatehtmlviewconfiguration` DISABLE KEYS */; -INSERT INTO `certificates_certificatehtmlviewconfiguration` VALUES (1,'2016-12-17 01:36:30.747065',0,'{\"default\": {\"accomplishment_class_append\": \"accomplishment-certificate\", \"platform_name\": \"Your Platform Name Here\", \"logo_src\": \"/static/certificates/images/logo.png\", \"logo_url\": \"http://www.example.com\", \"company_verified_certificate_url\": \"http://www.example.com/verified-certificate\", \"company_privacy_url\": \"http://www.example.com/privacy-policy\", \"company_tos_url\": \"http://www.example.com/terms-service\", \"company_about_url\": \"http://www.example.com/about-us\"}, \"verified\": {\"certificate_type\": \"Verified\", \"certificate_title\": \"Verified Certificate of Achievement\"}, \"honor\": {\"certificate_type\": \"Honor Code\", \"certificate_title\": \"Certificate of Achievement\"}}',NULL); -/*!40000 ALTER TABLE `certificates_certificatehtmlviewconfiguration` ENABLE KEYS */; +LOCK TABLES `canvas_canvaslearnerassessmentdatatransmissionaudit` WRITE; +/*!40000 ALTER TABLE `canvas_canvaslearnerassessmentdatatransmissionaudit` DISABLE KEYS */; +/*!40000 ALTER TABLE `canvas_canvaslearnerassessmentdatatransmissionaudit` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `certificates_certificateinvalidation` +-- Table structure for table `canvas_canvaslearnerdatatransmissionaudit` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `certificates_certificateinvalidation` ( +CREATE TABLE `canvas_canvaslearnerdatatransmissionaudit` ( `id` int(11) NOT NULL AUTO_INCREMENT, + `canvas_user_email` varchar(255) NOT NULL, + `enterprise_course_enrollment_id` int(11) DEFAULT NULL, + `course_id` varchar(255) NOT NULL, + `course_completed` tinyint(1) NOT NULL, + `canvas_completed_timestamp` varchar(10) DEFAULT NULL, + `status` varchar(100) DEFAULT NULL, + `error_message` longtext, `created` datetime(6) NOT NULL, + `grade` varchar(255) DEFAULT NULL, + `enterprise_customer_uuid` char(32) DEFAULT NULL, + `instructor_name` varchar(255) NOT NULL, `modified` datetime(6) NOT NULL, - `notes` longtext, - `active` tinyint(1) NOT NULL, - `generated_certificate_id` int(11) NOT NULL, - `invalidated_by_id` int(11) NOT NULL, + `plugin_configuration_id` int(11) DEFAULT NULL, + `total_hours` double DEFAULT NULL, + `subsection_id` varchar(255) DEFAULT NULL, + `subsection_name` varchar(255) DEFAULT NULL, + `friendly_status_message` varchar(255) DEFAULT NULL, + `api_record_id` int(11) DEFAULT NULL, + `content_title` varchar(255) DEFAULT NULL, + `progress_status` varchar(255) NOT NULL, + `user_email` varchar(255) DEFAULT NULL, + `completed_timestamp` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `fa0dc816ca8028cd93e5f2289d405d87` (`generated_certificate_id`), - KEY `certificates__invalidated_by_id_5198db337fb56b7b_fk_auth_user_id` (`invalidated_by_id`), - CONSTRAINT `certificates__invalidated_by_id_5198db337fb56b7b_fk_auth_user_id` FOREIGN KEY (`invalidated_by_id`) REFERENCES `auth_user` (`id`), - CONSTRAINT `fa0dc816ca8028cd93e5f2289d405d87` FOREIGN KEY (`generated_certificate_id`) REFERENCES `certificates_generatedcertificate` (`id`) + UNIQUE KEY `api_record_id` (`api_record_id`), + KEY `canvas_canvaslearnerdatatra_enterprise_course_enrollmen_c2a9800c` (`enterprise_course_enrollment_id`), + KEY `canvas_canvaslearnerdatatransmissionaudit_subsection_id_00bcb67f` (`subsection_id`), + KEY `canvas_cldta_85936b55_idx` (`enterprise_customer_uuid`,`plugin_configuration_id`), + CONSTRAINT `canvas_canvaslearner_api_record_id_ba315c1c_fk_integrate` FOREIGN KEY (`api_record_id`) REFERENCES `integrated_channel_apiresponserecord` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `certificates_certificateinvalidation` +-- Dumping data for table `canvas_canvaslearnerdatatransmissionaudit` -- -LOCK TABLES `certificates_certificateinvalidation` WRITE; -/*!40000 ALTER TABLE `certificates_certificateinvalidation` DISABLE KEYS */; -/*!40000 ALTER TABLE `certificates_certificateinvalidation` ENABLE KEYS */; +LOCK TABLES `canvas_canvaslearnerdatatransmissionaudit` WRITE; +/*!40000 ALTER TABLE `canvas_canvaslearnerdatatransmissionaudit` DISABLE KEYS */; +/*!40000 ALTER TABLE `canvas_canvaslearnerdatatransmissionaudit` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `certificates_certificatetemplate` +-- Table structure for table `canvas_historicalcanvasenterprisecustomerconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `certificates_certificatetemplate` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `canvas_historicalcanvasenterprisecustomerconfiguration` ( + `id` int(11) NOT NULL, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `name` varchar(255) NOT NULL, - `description` varchar(255) DEFAULT NULL, - `template` longtext NOT NULL, - `organization_id` int(11) DEFAULT NULL, - `course_key` varchar(255) DEFAULT NULL, - `mode` varchar(125) DEFAULT NULL, - `is_active` tinyint(1) NOT NULL, - `language` varchar(2), - PRIMARY KEY (`id`), - UNIQUE KEY `certificates_certificatete_organization_id_48edf53bc66f8e0c_uniq` (`organization_id`,`course_key`,`mode`,`language`), - KEY `certificates_certificatetemplate_26b2345e` (`organization_id`), - KEY `certificates_certificatetemplate_c8235886` (`course_key`) + `active` tinyint(1) NOT NULL, + `transmission_chunk_size` int(11) NOT NULL, + `channel_worker_username` varchar(255) NOT NULL, + `catalogs_to_transmit` longtext NOT NULL, + `client_id` varchar(255) NOT NULL, + `client_secret` varchar(255) NOT NULL, + `canvas_account_id` bigint(20) DEFAULT NULL, + `canvas_base_url` varchar(255) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `enterprise_customer_id` char(32) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `refresh_token` varchar(255) NOT NULL, + `idp_id` varchar(255) NOT NULL, + `disable_learner_data_transmissions` tinyint(1) NOT NULL, + `uuid` char(32) NOT NULL, + `display_name` varchar(255) NOT NULL, + `dry_run_mode_enabled` tinyint(1) NOT NULL, + `deleted_at` datetime(6) DEFAULT NULL, + `last_content_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_content_sync_errored_at` datetime(6) DEFAULT NULL, + `last_learner_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_learner_sync_errored_at` datetime(6) DEFAULT NULL, + `last_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_sync_errored_at` datetime(6) DEFAULT NULL, + `last_modified_at` datetime(6) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `canvas_historicalcan_history_user_id_615fc2a2_fk_auth_user` (`history_user_id`), + KEY `canvas_historicalcanvasente_id_8769e0b6` (`id`), + KEY `canvas_historicalcanvasente_enterprise_customer_id_8bd0d3ec` (`enterprise_customer_id`), + KEY `canvas_historicalcanvasente_uuid_cc9ae6b2` (`uuid`), + CONSTRAINT `canvas_historicalcan_history_user_id_615fc2a2_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `certificates_certificatetemplate` +-- Dumping data for table `canvas_historicalcanvasenterprisecustomerconfiguration` -- -LOCK TABLES `certificates_certificatetemplate` WRITE; -/*!40000 ALTER TABLE `certificates_certificatetemplate` DISABLE KEYS */; -/*!40000 ALTER TABLE `certificates_certificatetemplate` ENABLE KEYS */; +LOCK TABLES `canvas_historicalcanvasenterprisecustomerconfiguration` WRITE; +/*!40000 ALTER TABLE `canvas_historicalcanvasenterprisecustomerconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `canvas_historicalcanvasenterprisecustomerconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `certificates_certificatetemplateasset` +-- Table structure for table `catalog_catalogintegration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `certificates_certificatetemplateasset` ( +CREATE TABLE `catalog_catalogintegration` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, - `description` varchar(255) DEFAULT NULL, - `asset` varchar(255) NOT NULL, - `asset_slug` varchar(255) DEFAULT NULL, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `internal_api_url` varchar(200) NOT NULL, + `cache_ttl` int(10) unsigned NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + `service_username` varchar(100) NOT NULL, + `page_size` int(10) unsigned NOT NULL, + `long_term_cache_ttl` int(10) unsigned NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `asset_slug` (`asset_slug`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + KEY `catalog_cataloginteg_changed_by_id_cde406de_fk_auth_user` (`changed_by_id`), + CONSTRAINT `catalog_cataloginteg_changed_by_id_cde406de_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `certificates_certificatetemplateasset` +-- Dumping data for table `catalog_catalogintegration` -- -LOCK TABLES `certificates_certificatetemplateasset` WRITE; -/*!40000 ALTER TABLE `certificates_certificatetemplateasset` DISABLE KEYS */; -/*!40000 ALTER TABLE `certificates_certificatetemplateasset` ENABLE KEYS */; +LOCK TABLES `catalog_catalogintegration` WRITE; +/*!40000 ALTER TABLE `catalog_catalogintegration` DISABLE KEYS */; +INSERT INTO `catalog_catalogintegration` VALUES (1,'2023-02-21 14:30:11.143952',1,'https://example.com/api',0,NULL,'discovery_worker',100,86400); +/*!40000 ALTER TABLE `catalog_catalogintegration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `certificates_certificatewhitelist` +-- Table structure for table `celery_utils_failedtask` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `certificates_certificatewhitelist` ( +CREATE TABLE `celery_utils_failedtask` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `course_id` varchar(255) NOT NULL, - `whitelist` tinyint(1) NOT NULL, `created` datetime(6) NOT NULL, - `notes` longtext, - `user_id` int(11) NOT NULL, + `modified` datetime(6) NOT NULL, + `task_name` varchar(255) NOT NULL, + `task_id` varchar(255) NOT NULL, + `args` longtext NOT NULL, + `kwargs` longtext NOT NULL, + `exc` varchar(255) NOT NULL, + `datetime_resolved` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `certificates_certificat_user_id_50b0bc90075a5407_fk_auth_user_id` (`user_id`), - CONSTRAINT `certificates_certificat_user_id_50b0bc90075a5407_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; + KEY `celery_utils_failedtask_task_name_exc_efb8c9be_idx` (`task_name`,`exc`), + KEY `celery_utils_failedtask_task_id_37af0933` (`task_id`), + KEY `celery_utils_failedtask_datetime_resolved_8160e407` (`datetime_resolved`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `certificates_certificatewhitelist` +-- Dumping data for table `celery_utils_failedtask` -- -LOCK TABLES `certificates_certificatewhitelist` WRITE; -/*!40000 ALTER TABLE `certificates_certificatewhitelist` DISABLE KEYS */; -INSERT INTO `certificates_certificatewhitelist` VALUES (1,'course-v1:edX+DemoX+Demo_Course',1,'2017-06-07 00:44:46.592519',NULL,6),(2,'course-v1:edX+DemoX+Demo_Course',1,'2017-06-07 00:44:51.035391',NULL,7),(3,'course-v1:edX+DemoX+Demo_Course',1,'2017-06-07 00:44:55.486418',NULL,8); -/*!40000 ALTER TABLE `certificates_certificatewhitelist` ENABLE KEYS */; +LOCK TABLES `celery_utils_failedtask` WRITE; +/*!40000 ALTER TABLE `celery_utils_failedtask` DISABLE KEYS */; +/*!40000 ALTER TABLE `celery_utils_failedtask` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `certificates_examplecertificate` +-- Table structure for table `certificates_certificateallowlist` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `certificates_examplecertificate` ( +CREATE TABLE `certificates_certificateallowlist` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `description` varchar(255) NOT NULL, - `uuid` varchar(255) NOT NULL, - `access_key` varchar(255) NOT NULL, - `full_name` varchar(255) NOT NULL, - `template` varchar(255) NOT NULL, - `status` varchar(255) NOT NULL, - `error_reason` longtext, - `download_url` varchar(255) DEFAULT NULL, - `example_cert_set_id` int(11) NOT NULL, + `course_id` varchar(255) NOT NULL, + `allowlist` tinyint(1) NOT NULL, + `notes` longtext, + `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `uuid` (`uuid`), - KEY `certificates_examplecertificate_91685379` (`access_key`), - KEY `certificates_examplecertificate_c9ee6da7` (`example_cert_set_id`), - CONSTRAINT `D5ceae87b49ed6ab15ace7b6f1c01c35` FOREIGN KEY (`example_cert_set_id`) REFERENCES `certificates_examplecertificateset` (`id`) + UNIQUE KEY `certificates_certificate_course_id_user_id_660abede_uniq` (`course_id`,`user_id`), + KEY `certificates_certifi_user_id_6c4d38f7_fk_auth_user` (`user_id`), + CONSTRAINT `certificates_certifi_user_id_6c4d38f7_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `certificates_examplecertificate` +-- Dumping data for table `certificates_certificateallowlist` -- -LOCK TABLES `certificates_examplecertificate` WRITE; -/*!40000 ALTER TABLE `certificates_examplecertificate` DISABLE KEYS */; -/*!40000 ALTER TABLE `certificates_examplecertificate` ENABLE KEYS */; +LOCK TABLES `certificates_certificateallowlist` WRITE; +/*!40000 ALTER TABLE `certificates_certificateallowlist` DISABLE KEYS */; +/*!40000 ALTER TABLE `certificates_certificateallowlist` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `certificates_examplecertificateset` +-- Table structure for table `certificates_certificatedateoverride` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `certificates_examplecertificateset` ( +CREATE TABLE `certificates_certificatedateoverride` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `course_key` varchar(255) NOT NULL, + `date` datetime(6) NOT NULL, + `reason` longtext NOT NULL, + `generated_certificate_id` int(11) NOT NULL, + `overridden_by_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `certificates_examplecertificateset_c8235886` (`course_key`) + UNIQUE KEY `generated_certificate_id` (`generated_certificate_id`), + KEY `certificates_certifi_overridden_by_id_a0ebad2d_fk_auth_user` (`overridden_by_id`), + CONSTRAINT `certificates_certifi_generated_certificat_d69ae0ac_fk_certifica` FOREIGN KEY (`generated_certificate_id`) REFERENCES `certificates_generatedcertificate` (`id`), + CONSTRAINT `certificates_certifi_overridden_by_id_a0ebad2d_fk_auth_user` FOREIGN KEY (`overridden_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `certificates_examplecertificateset` +-- Dumping data for table `certificates_certificatedateoverride` -- -LOCK TABLES `certificates_examplecertificateset` WRITE; -/*!40000 ALTER TABLE `certificates_examplecertificateset` DISABLE KEYS */; -/*!40000 ALTER TABLE `certificates_examplecertificateset` ENABLE KEYS */; +LOCK TABLES `certificates_certificatedateoverride` WRITE; +/*!40000 ALTER TABLE `certificates_certificatedateoverride` DISABLE KEYS */; +/*!40000 ALTER TABLE `certificates_certificatedateoverride` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `certificates_generatedcertificate` +-- Table structure for table `certificates_certificategenerationcommandconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `certificates_generatedcertificate` ( +CREATE TABLE `certificates_certificategenerationcommandconfiguration` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `course_id` varchar(255) NOT NULL, - `verify_uuid` varchar(32) NOT NULL, - `download_uuid` varchar(32) NOT NULL, - `download_url` varchar(128) NOT NULL, - `grade` varchar(5) NOT NULL, - `key` varchar(32) NOT NULL, - `distinction` tinyint(1) NOT NULL, - `status` varchar(32) NOT NULL, - `mode` varchar(32) NOT NULL, - `name` varchar(255) NOT NULL, - `created_date` datetime(6) NOT NULL, - `modified_date` datetime(6) NOT NULL, - `error_reason` varchar(512) NOT NULL, - `user_id` int(11) NOT NULL, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `arguments` longtext NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `certificates_generatedcertificate_user_id_552a0fa6f7d3f7e8_uniq` (`user_id`,`course_id`), - KEY `certificates_generatedcertific_verify_uuid_1b5a14bb83c471ff_uniq` (`verify_uuid`), - CONSTRAINT `certificates_generatedc_user_id_77ed5f7a53121815_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + KEY `certificates_certifi_changed_by_id_a2950eaa_fk_auth_user` (`changed_by_id`), + CONSTRAINT `certificates_certifi_changed_by_id_a2950eaa_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `certificates_generatedcertificate` +-- Dumping data for table `certificates_certificategenerationcommandconfiguration` -- -LOCK TABLES `certificates_generatedcertificate` WRITE; -/*!40000 ALTER TABLE `certificates_generatedcertificate` DISABLE KEYS */; -/*!40000 ALTER TABLE `certificates_generatedcertificate` ENABLE KEYS */; +LOCK TABLES `certificates_certificategenerationcommandconfiguration` WRITE; +/*!40000 ALTER TABLE `certificates_certificategenerationcommandconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `certificates_certificategenerationcommandconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `commerce_commerceconfiguration` +-- Table structure for table `certificates_certificategenerationconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `commerce_commerceconfiguration` ( +CREATE TABLE `certificates_certificategenerationconfiguration` ( `id` int(11) NOT NULL AUTO_INCREMENT, `change_date` datetime(6) NOT NULL, `enabled` tinyint(1) NOT NULL, - `checkout_on_ecommerce_service` tinyint(1) NOT NULL, - `single_course_checkout_page` varchar(255) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, - `cache_ttl` int(10) unsigned NOT NULL, - `receipt_page` varchar(255) NOT NULL, - `enable_automatic_refund_approval` tinyint(1) NOT NULL, PRIMARY KEY (`id`), - KEY `commerce_commerce_changed_by_id_7441951d1c97c1d7_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `commerce_commerce_changed_by_id_7441951d1c97c1d7_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; + KEY `certificates_certifi_changed_by_id_a6d06e99_fk_auth_user` (`changed_by_id`), + CONSTRAINT `certificates_certifi_changed_by_id_a6d06e99_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `commerce_commerceconfiguration` +-- Dumping data for table `certificates_certificategenerationconfiguration` -- -LOCK TABLES `commerce_commerceconfiguration` WRITE; -/*!40000 ALTER TABLE `commerce_commerceconfiguration` DISABLE KEYS */; -INSERT INTO `commerce_commerceconfiguration` VALUES (1,'2017-06-07 00:43:16.006423',1,1,'/basket/single-item/',NULL,0,'/checkout/receipt/?order_number=',1),(2,'2017-06-21 16:00:44.804939',1,1,'/basket/single-item/',NULL,0,'/checkout/receipt/?order_number=',1),(3,'2018-01-31 21:13:27.608254',1,1,'/basket/single-item/',NULL,0,'/checkout/receipt/?order_number=',1); -/*!40000 ALTER TABLE `commerce_commerceconfiguration` ENABLE KEYS */; +LOCK TABLES `certificates_certificategenerationconfiguration` WRITE; +/*!40000 ALTER TABLE `certificates_certificategenerationconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `certificates_certificategenerationconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `completion_blockcompletion` +-- Table structure for table `certificates_certificategenerationcoursesetting` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `completion_blockcompletion` ( +CREATE TABLE `certificates_certificategenerationcoursesetting` ( + `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `id` bigint(20) NOT NULL AUTO_INCREMENT, `course_key` varchar(255) NOT NULL, - `block_key` varchar(255) NOT NULL, - `block_type` varchar(64) NOT NULL, - `completion` double NOT NULL, - `user_id` int(11) NOT NULL, + `language_specific_templates_enabled` tinyint(1) NOT NULL, + `self_generation_enabled` tinyint(1) NOT NULL, + `include_hours_of_effort` tinyint(1) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `completion_blockcompletion_course_key_54aa5e002d4e74a2_uniq` (`course_key`,`block_key`,`user_id`), - KEY `completion_blockcompletion_course_key_4e99db81ed8510f4_idx` (`course_key`,`block_type`,`user_id`), - KEY `completion_blockcompletion_user_id_1d63de3a4a8ef1e5_idx` (`user_id`,`course_key`,`modified`), - CONSTRAINT `completion_blockcompleti_user_id_515d6897018815d_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + KEY `certificates_certificategen_course_key_dd10af41` (`course_key`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `completion_blockcompletion` +-- Dumping data for table `certificates_certificategenerationcoursesetting` -- -LOCK TABLES `completion_blockcompletion` WRITE; -/*!40000 ALTER TABLE `completion_blockcompletion` DISABLE KEYS */; -/*!40000 ALTER TABLE `completion_blockcompletion` ENABLE KEYS */; +LOCK TABLES `certificates_certificategenerationcoursesetting` WRITE; +/*!40000 ALTER TABLE `certificates_certificategenerationcoursesetting` DISABLE KEYS */; +/*!40000 ALTER TABLE `certificates_certificategenerationcoursesetting` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `consent_datasharingconsent` +-- Table structure for table `certificates_certificategenerationhistory` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `consent_datasharingconsent` ( +CREATE TABLE `certificates_certificategenerationhistory` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `username` varchar(255) NOT NULL, - `granted` tinyint(1) DEFAULT NULL, `course_id` varchar(255) NOT NULL, - `enterprise_customer_id` char(32) NOT NULL, + `is_regeneration` tinyint(1) NOT NULL, + `generated_by_id` int(11) NOT NULL, + `instructor_task_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `consent_datasharing_enterprise_customer_id_667a1480f56052a2_uniq` (`enterprise_customer_id`,`username`,`course_id`), - CONSTRAINT `D030ccea2714cf8f0a2e65e948ee3d2d` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) + KEY `certificates_certifi_generated_by_id_e9d4b7f2_fk_auth_user` (`generated_by_id`), + KEY `certificates_certifi_instructor_task_id_8f7176a6_fk_instructo` (`instructor_task_id`), + CONSTRAINT `certificates_certifi_generated_by_id_e9d4b7f2_fk_auth_user` FOREIGN KEY (`generated_by_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `certificates_certifi_instructor_task_id_8f7176a6_fk_instructo` FOREIGN KEY (`instructor_task_id`) REFERENCES `instructor_task_instructortask` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `consent_datasharingconsent` +-- Dumping data for table `certificates_certificategenerationhistory` -- -LOCK TABLES `consent_datasharingconsent` WRITE; -/*!40000 ALTER TABLE `consent_datasharingconsent` DISABLE KEYS */; -/*!40000 ALTER TABLE `consent_datasharingconsent` ENABLE KEYS */; +LOCK TABLES `certificates_certificategenerationhistory` WRITE; +/*!40000 ALTER TABLE `certificates_certificategenerationhistory` DISABLE KEYS */; +/*!40000 ALTER TABLE `certificates_certificategenerationhistory` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `consent_historicaldatasharingconsent` +-- Table structure for table `certificates_certificatehtmlviewconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `consent_historicaldatasharingconsent` ( - `id` int(11) NOT NULL, - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, - `username` varchar(255) NOT NULL, - `granted` tinyint(1) DEFAULT NULL, - `course_id` varchar(255) NOT NULL, - `history_id` int(11) NOT NULL AUTO_INCREMENT, - `history_date` datetime(6) NOT NULL, - `history_type` varchar(1) NOT NULL, - `enterprise_customer_id` char(32) DEFAULT NULL, - `history_user_id` int(11) DEFAULT NULL, - `history_change_reason` varchar(100), - PRIMARY KEY (`history_id`), - KEY `consent_histori_history_user_id_305b7992a9839525_fk_auth_user_id` (`history_user_id`), - KEY `consent_historicaldatasharingconsent_b80bb774` (`id`), - CONSTRAINT `consent_histori_history_user_id_305b7992a9839525_fk_auth_user_id` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `certificates_certificatehtmlviewconfiguration` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `configuration` longtext NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `certificates_certifi_changed_by_id_bcf656f2_fk_auth_user` (`changed_by_id`), + CONSTRAINT `certificates_certifi_changed_by_id_bcf656f2_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `consent_historicaldatasharingconsent` +-- Dumping data for table `certificates_certificatehtmlviewconfiguration` -- -LOCK TABLES `consent_historicaldatasharingconsent` WRITE; -/*!40000 ALTER TABLE `consent_historicaldatasharingconsent` DISABLE KEYS */; -/*!40000 ALTER TABLE `consent_historicaldatasharingconsent` ENABLE KEYS */; +LOCK TABLES `certificates_certificatehtmlviewconfiguration` WRITE; +/*!40000 ALTER TABLE `certificates_certificatehtmlviewconfiguration` DISABLE KEYS */; +INSERT INTO `certificates_certificatehtmlviewconfiguration` VALUES (1,'2023-02-21 13:26:01.071913',0,'{\"default\": {\"accomplishment_class_append\": \"accomplishment-certificate\", \"platform_name\": \"Your Platform Name Here\", \"company_about_url\": \"http://www.example.com/about-us\", \"company_privacy_url\": \"http://www.example.com/privacy-policy\", \"company_tos_url\": \"http://www.example.com/terms-service\", \"company_verified_certificate_url\": \"http://www.example.com/verified-certificate\", \"logo_src\": \"/static/certificates/images/logo.png\", \"logo_url\": \"http://www.example.com\"}, \"honor\": {\"certificate_type\": \"Honor Code\", \"certificate_title\": \"Certificate of Achievement\"}, \"verified\": {\"certificate_type\": \"Verified\", \"certificate_title\": \"Verified Certificate of Achievement\"}}',NULL); +/*!40000 ALTER TABLE `certificates_certificatehtmlviewconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `contentserver_cdnuseragentsconfig` +-- Table structure for table `certificates_certificateinvalidation` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `contentserver_cdnuseragentsconfig` ( +CREATE TABLE `certificates_certificateinvalidation` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `cdn_user_agents` longtext NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `notes` longtext, + `active` tinyint(1) NOT NULL, + `generated_certificate_id` int(11) NOT NULL, + `invalidated_by_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `certificates_certifi_generated_certificat_31bed498_fk_certifica` (`generated_certificate_id`), + KEY `certificates_certifi_invalidated_by_id_e3c101f1_fk_auth_user` (`invalidated_by_id`), + CONSTRAINT `certificates_certifi_generated_certificat_31bed498_fk_certifica` FOREIGN KEY (`generated_certificate_id`) REFERENCES `certificates_generatedcertificate` (`id`), + CONSTRAINT `certificates_certifi_invalidated_by_id_e3c101f1_fk_auth_user` FOREIGN KEY (`invalidated_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `certificates_certificateinvalidation` +-- + +LOCK TABLES `certificates_certificateinvalidation` WRITE; +/*!40000 ALTER TABLE `certificates_certificateinvalidation` DISABLE KEYS */; +/*!40000 ALTER TABLE `certificates_certificateinvalidation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `certificates_certificatetemplate` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `certificates_certificatetemplate` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `name` varchar(255) NOT NULL, + `description` varchar(255) DEFAULT NULL, + `template` longtext NOT NULL, + `organization_id` int(11) DEFAULT NULL, + `course_key` varchar(255) DEFAULT NULL, + `mode` varchar(125) DEFAULT NULL, + `is_active` tinyint(1) NOT NULL, + `language` varchar(2) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `certificates_certificate_organization_id_course_k_88e26c0d_uniq` (`organization_id`,`course_key`,`mode`,`language`), + KEY `certificates_certificatetemplate_organization_id_030a747d` (`organization_id`), + KEY `certificates_certificatetemplate_course_key_9a6a823d` (`course_key`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `certificates_certificatetemplate` +-- + +LOCK TABLES `certificates_certificatetemplate` WRITE; +/*!40000 ALTER TABLE `certificates_certificatetemplate` DISABLE KEYS */; +/*!40000 ALTER TABLE `certificates_certificatetemplate` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `certificates_certificatetemplateasset` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `certificates_certificatetemplateasset` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `description` varchar(255) DEFAULT NULL, + `asset` varchar(255) NOT NULL, + `asset_slug` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `asset_slug` (`asset_slug`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `certificates_certificatetemplateasset` +-- + +LOCK TABLES `certificates_certificatetemplateasset` WRITE; +/*!40000 ALTER TABLE `certificates_certificatetemplateasset` DISABLE KEYS */; +/*!40000 ALTER TABLE `certificates_certificatetemplateasset` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `certificates_examplecertificate` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `certificates_examplecertificate` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `description` varchar(255) NOT NULL, + `uuid` varchar(255) NOT NULL, + `access_key` varchar(255) NOT NULL, + `full_name` varchar(255) NOT NULL, + `template` varchar(255) NOT NULL, + `status` varchar(255) NOT NULL, + `error_reason` longtext, + `download_url` varchar(255) DEFAULT NULL, + `example_cert_set_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `uuid` (`uuid`), + KEY `certificates_example_example_cert_set_id_7e660917_fk_certifica` (`example_cert_set_id`), + KEY `certificates_examplecertificate_access_key_8b745a5d` (`access_key`), + CONSTRAINT `certificates_example_example_cert_set_id_7e660917_fk_certifica` FOREIGN KEY (`example_cert_set_id`) REFERENCES `certificates_examplecertificateset` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `certificates_examplecertificate` +-- + +LOCK TABLES `certificates_examplecertificate` WRITE; +/*!40000 ALTER TABLE `certificates_examplecertificate` DISABLE KEYS */; +/*!40000 ALTER TABLE `certificates_examplecertificate` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `certificates_examplecertificateset` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `certificates_examplecertificateset` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `course_key` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `certificates_examplecertificateset_course_key_16497ee9` (`course_key`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `certificates_examplecertificateset` +-- + +LOCK TABLES `certificates_examplecertificateset` WRITE; +/*!40000 ALTER TABLE `certificates_examplecertificateset` DISABLE KEYS */; +/*!40000 ALTER TABLE `certificates_examplecertificateset` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `certificates_generatedcertificate` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `certificates_generatedcertificate` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `course_id` varchar(255) NOT NULL, + `verify_uuid` varchar(32) NOT NULL, + `download_uuid` varchar(32) NOT NULL, + `download_url` varchar(128) NOT NULL, + `grade` varchar(5) NOT NULL, + `key` varchar(32) NOT NULL, + `distinction` tinyint(1) NOT NULL, + `status` varchar(32) NOT NULL, + `mode` varchar(32) NOT NULL, + `name` varchar(255) NOT NULL, + `created_date` datetime(6) NOT NULL, + `modified_date` datetime(6) NOT NULL, + `error_reason` varchar(512) NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `certificates_generatedce_user_id_course_id_fc1bb3ee_uniq` (`user_id`,`course_id`), + KEY `certificates_generatedcertificate_verify_uuid_97405316` (`verify_uuid`), + CONSTRAINT `certificates_generat_user_id_54119d22_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `certificates_generatedcertificate` +-- + +LOCK TABLES `certificates_generatedcertificate` WRITE; +/*!40000 ALTER TABLE `certificates_generatedcertificate` DISABLE KEYS */; +/*!40000 ALTER TABLE `certificates_generatedcertificate` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `certificates_historicalcertificateallowlist` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `certificates_historicalcertificateallowlist` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `course_id` varchar(255) NOT NULL, + `allowlist` tinyint(1) NOT NULL, + `notes` longtext, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `certificates_histori_history_user_id_016a68db_fk_auth_user` (`history_user_id`), + KEY `certificates_historicalcertificateallowlist_id_c3818cd9` (`id`), + KEY `certificates_historicalcertificateallowlist_user_id_4d17e30a` (`user_id`), + CONSTRAINT `certificates_histori_history_user_id_016a68db_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `certificates_historicalcertificateallowlist` +-- + +LOCK TABLES `certificates_historicalcertificateallowlist` WRITE; +/*!40000 ALTER TABLE `certificates_historicalcertificateallowlist` DISABLE KEYS */; +/*!40000 ALTER TABLE `certificates_historicalcertificateallowlist` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `certificates_historicalcertificatedateoverride` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `certificates_historicalcertificatedateoverride` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `date` datetime(6) NOT NULL, + `reason` longtext NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `generated_certificate_id` int(11) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `overridden_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `certificates_histori_history_user_id_dc57d369_fk_auth_user` (`history_user_id`), + KEY `certificates_historicalcertificatedateoverride_id_fa1513b4` (`id`), + KEY `certificates_historicalcert_generated_certificate_id_1090e033` (`generated_certificate_id`), + KEY `certificates_historicalcert_overridden_by_id_ff0a830f` (`overridden_by_id`), + CONSTRAINT `certificates_histori_history_user_id_dc57d369_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `certificates_historicalcertificatedateoverride` +-- + +LOCK TABLES `certificates_historicalcertificatedateoverride` WRITE; +/*!40000 ALTER TABLE `certificates_historicalcertificatedateoverride` DISABLE KEYS */; +/*!40000 ALTER TABLE `certificates_historicalcertificatedateoverride` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `certificates_historicalcertificateinvalidation` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `certificates_historicalcertificateinvalidation` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `notes` longtext, + `active` tinyint(1) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `generated_certificate_id` int(11) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `invalidated_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `certificates_histori_history_user_id_67c7d840_fk_auth_user` (`history_user_id`), + KEY `certificates_historicalcertificateinvalidation_id_fae092a9` (`id`), + KEY `certificates_historicalcert_generated_certificate_id_35f5becb` (`generated_certificate_id`), + KEY `certificates_historicalcert_invalidated_by_id_5f2eff10` (`invalidated_by_id`), + CONSTRAINT `certificates_histori_history_user_id_67c7d840_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `certificates_historicalcertificateinvalidation` +-- + +LOCK TABLES `certificates_historicalcertificateinvalidation` WRITE; +/*!40000 ALTER TABLE `certificates_historicalcertificateinvalidation` DISABLE KEYS */; +/*!40000 ALTER TABLE `certificates_historicalcertificateinvalidation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `certificates_historicalgeneratedcertificate` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `certificates_historicalgeneratedcertificate` ( + `id` int(11) NOT NULL, + `course_id` varchar(255) NOT NULL, + `verify_uuid` varchar(32) NOT NULL, + `download_uuid` varchar(32) NOT NULL, + `download_url` varchar(128) NOT NULL, + `grade` varchar(5) NOT NULL, + `key` varchar(32) NOT NULL, + `distinction` tinyint(1) NOT NULL, + `status` varchar(32) NOT NULL, + `mode` varchar(32) NOT NULL, + `name` varchar(255) NOT NULL, + `created_date` datetime(6) NOT NULL, + `modified_date` datetime(6) NOT NULL, + `error_reason` varchar(512) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `certificates_histori_history_user_id_1b53bb5f_fk_auth_user` (`history_user_id`), + KEY `certificates_historicalgeneratedcertificate_id_269c8929` (`id`), + KEY `certificates_historicalgeneratedcertificate_verify_uuid_783d764e` (`verify_uuid`), + KEY `certificates_historicalgeneratedcertificate_user_id_e7970938` (`user_id`), + CONSTRAINT `certificates_histori_history_user_id_1b53bb5f_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `certificates_historicalgeneratedcertificate` +-- + +LOCK TABLES `certificates_historicalgeneratedcertificate` WRITE; +/*!40000 ALTER TABLE `certificates_historicalgeneratedcertificate` DISABLE KEYS */; +/*!40000 ALTER TABLE `certificates_historicalgeneratedcertificate` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `commerce_commerceconfiguration` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `commerce_commerceconfiguration` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `checkout_on_ecommerce_service` tinyint(1) NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + `cache_ttl` int(10) unsigned NOT NULL, + `receipt_page` varchar(255) NOT NULL, + `enable_automatic_refund_approval` tinyint(1) NOT NULL, + `basket_checkout_page` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `commerce_commercecon_changed_by_id_2c9a6f14_fk_auth_user` (`changed_by_id`), + CONSTRAINT `commerce_commercecon_changed_by_id_2c9a6f14_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `commerce_commerceconfiguration` +-- + +LOCK TABLES `commerce_commerceconfiguration` WRITE; +/*!40000 ALTER TABLE `commerce_commerceconfiguration` DISABLE KEYS */; +INSERT INTO `commerce_commerceconfiguration` VALUES (1,'2023-02-21 14:19:55.352934',1,1,NULL,0,'/checkout/receipt/?order_number=',1,'/basket/add/'); +/*!40000 ALTER TABLE `commerce_commerceconfiguration` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `completion_blockcompletion` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `completion_blockcompletion` ( + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `course_key` varchar(255) NOT NULL, + `block_key` varchar(255) NOT NULL, + `block_type` varchar(64) NOT NULL, + `completion` double NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `completion_blockcompleti_course_key_block_key_use_b15bac54_uniq` (`course_key`,`block_key`,`user_id`), + KEY `completion_blockcompletio_user_id_course_key_modifi_ed54291e_idx` (`user_id`,`course_key`,`modified`), + KEY `completion_blockcompletio_course_key_block_type_use_0f0d4d2d_idx` (`course_key`,`block_type`,`user_id`), + CONSTRAINT `completion_blockcompletion_user_id_20994c23_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `completion_blockcompletion` +-- + +LOCK TABLES `completion_blockcompletion` WRITE; +/*!40000 ALTER TABLE `completion_blockcompletion` DISABLE KEYS */; +/*!40000 ALTER TABLE `completion_blockcompletion` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `consent_datasharingconsent` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `consent_datasharingconsent` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `username` varchar(255) NOT NULL, + `granted` tinyint(1) DEFAULT NULL, + `course_id` varchar(255) NOT NULL, + `enterprise_customer_id` char(32) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `consent_datasharingconse_enterprise_customer_id_u_8bdd34e4_uniq` (`enterprise_customer_id`,`username`,`course_id`), + CONSTRAINT `consent_datasharingc_enterprise_customer__f46c6b77_fk_enterpris` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `consent_datasharingconsent` +-- + +LOCK TABLES `consent_datasharingconsent` WRITE; +/*!40000 ALTER TABLE `consent_datasharingconsent` DISABLE KEYS */; +/*!40000 ALTER TABLE `consent_datasharingconsent` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `consent_datasharingconsenttextoverrides` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `consent_datasharingconsenttextoverrides` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `page_title` varchar(255) NOT NULL, + `left_sidebar_text` longtext, + `top_paragraph` longtext, + `agreement_text` longtext, + `continue_text` varchar(255) NOT NULL, + `abort_text` varchar(255) NOT NULL, + `policy_dropdown_header` varchar(255) DEFAULT NULL, + `policy_paragraph` longtext, + `confirmation_modal_header` varchar(255) NOT NULL, + `confirmation_modal_text` longtext NOT NULL, + `modal_affirm_decline_text` varchar(255) NOT NULL, + `modal_abort_decline_text` varchar(255) NOT NULL, + `declined_notification_title` longtext NOT NULL, + `declined_notification_message` longtext NOT NULL, + `published` tinyint(1) NOT NULL, + `enterprise_customer_id` char(32) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `enterprise_customer_id` (`enterprise_customer_id`), + CONSTRAINT `consent_datasharingc_enterprise_customer__b979dfc1_fk_enterpris` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `consent_datasharingconsenttextoverrides` +-- + +LOCK TABLES `consent_datasharingconsenttextoverrides` WRITE; +/*!40000 ALTER TABLE `consent_datasharingconsenttextoverrides` DISABLE KEYS */; +/*!40000 ALTER TABLE `consent_datasharingconsenttextoverrides` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `consent_historicaldatasharingconsent` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `consent_historicaldatasharingconsent` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `username` varchar(255) NOT NULL, + `granted` tinyint(1) DEFAULT NULL, + `course_id` varchar(255) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_type` varchar(1) NOT NULL, + `enterprise_customer_id` char(32) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `consent_historicalda_history_user_id_08d7bf89_fk_auth_user` (`history_user_id`), + KEY `consent_historicaldatasharingconsent_id_69bef37e` (`id`), + KEY `consent_historicaldatashari_enterprise_customer_id_35c184bf` (`enterprise_customer_id`), + CONSTRAINT `consent_historicalda_history_user_id_08d7bf89_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `consent_historicaldatasharingconsent` +-- + +LOCK TABLES `consent_historicaldatasharingconsent` WRITE; +/*!40000 ALTER TABLE `consent_historicaldatasharingconsent` DISABLE KEYS */; +/*!40000 ALTER TABLE `consent_historicaldatasharingconsent` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `content_libraries_contentlibrary` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `content_libraries_contentlibrary` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `slug` varchar(50) NOT NULL, + `bundle_uuid` char(32) NOT NULL, + `allow_public_learning` tinyint(1) NOT NULL, + `allow_public_read` tinyint(1) NOT NULL, + `org_id` int(11) NOT NULL, + `type` varchar(25) NOT NULL, + `license` varchar(25) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `bundle_uuid` (`bundle_uuid`), + UNIQUE KEY `content_libraries_contentlibrary_org_id_slug_2b964108_uniq` (`org_id`,`slug`), + KEY `content_libraries_contentlibrary_slug_30d5507f` (`slug`), + CONSTRAINT `content_libraries_co_org_id_b945a402_fk_organizat` FOREIGN KEY (`org_id`) REFERENCES `organizations_organization` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `content_libraries_contentlibrary` +-- + +LOCK TABLES `content_libraries_contentlibrary` WRITE; +/*!40000 ALTER TABLE `content_libraries_contentlibrary` DISABLE KEYS */; +/*!40000 ALTER TABLE `content_libraries_contentlibrary` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `content_libraries_contentlibrary_authorized_lti_configs` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `content_libraries_contentlibrary_authorized_lti_configs` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `contentlibrary_id` int(11) NOT NULL, + `ltitool_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `content_libraries_conten_contentlibrary_id_ltitoo_5bb55a86_uniq` (`contentlibrary_id`,`ltitool_id`), + KEY `content_libraries_co_ltitool_id_38e2ba78_fk_lti1p3_to` (`ltitool_id`), + CONSTRAINT `content_libraries_co_contentlibrary_id_75800081_fk_content_l` FOREIGN KEY (`contentlibrary_id`) REFERENCES `content_libraries_contentlibrary` (`id`), + CONSTRAINT `content_libraries_co_ltitool_id_38e2ba78_fk_lti1p3_to` FOREIGN KEY (`ltitool_id`) REFERENCES `lti1p3_tool` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `content_libraries_contentlibrary_authorized_lti_configs` +-- + +LOCK TABLES `content_libraries_contentlibrary_authorized_lti_configs` WRITE; +/*!40000 ALTER TABLE `content_libraries_contentlibrary_authorized_lti_configs` DISABLE KEYS */; +/*!40000 ALTER TABLE `content_libraries_contentlibrary_authorized_lti_configs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `content_libraries_contentlibraryblockimporttask` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `content_libraries_contentlibraryblockimporttask` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `state` varchar(30) NOT NULL, + `progress` double NOT NULL, + `course_id` varchar(255) NOT NULL, + `created_at` datetime(6) NOT NULL, + `updated_at` datetime(6) NOT NULL, + `library_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `content_libraries_co_library_id_ccd48c48_fk_content_l` (`library_id`), + KEY `content_libraries_contentli_course_id_ae110694` (`course_id`), + CONSTRAINT `content_libraries_co_library_id_ccd48c48_fk_content_l` FOREIGN KEY (`library_id`) REFERENCES `content_libraries_contentlibrary` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `content_libraries_contentlibraryblockimporttask` +-- + +LOCK TABLES `content_libraries_contentlibraryblockimporttask` WRITE; +/*!40000 ALTER TABLE `content_libraries_contentlibraryblockimporttask` DISABLE KEYS */; +/*!40000 ALTER TABLE `content_libraries_contentlibraryblockimporttask` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `content_libraries_contentlibrarypermission` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `content_libraries_contentlibrarypermission` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `access_level` varchar(30) NOT NULL, + `library_id` int(11) NOT NULL, + `user_id` int(11) DEFAULT NULL, + `group_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `content_libraries_conten_library_id_group_id_3ecc38b9_uniq` (`library_id`,`group_id`), + UNIQUE KEY `content_libraries_conten_library_id_user_id_81babe29_uniq` (`library_id`,`user_id`), + KEY `content_libraries_co_group_id_c2a4b6a1_fk_auth_grou` (`group_id`), + KEY `content_libraries_co_user_id_b071c54d_fk_auth_user` (`user_id`), + CONSTRAINT `content_libraries_co_group_id_c2a4b6a1_fk_auth_grou` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`), + CONSTRAINT `content_libraries_co_library_id_51247096_fk_content_l` FOREIGN KEY (`library_id`) REFERENCES `content_libraries_contentlibrary` (`id`), + CONSTRAINT `content_libraries_co_user_id_b071c54d_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `content_libraries_contentlibrarypermission` +-- + +LOCK TABLES `content_libraries_contentlibrarypermission` WRITE; +/*!40000 ALTER TABLE `content_libraries_contentlibrarypermission` DISABLE KEYS */; +/*!40000 ALTER TABLE `content_libraries_contentlibrarypermission` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `content_libraries_ltigradedresource` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `content_libraries_ltigradedresource` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `usage_key` varchar(255) NOT NULL, + `resource_id` varchar(255) NOT NULL, + `resource_title` varchar(255) DEFAULT NULL, + `ags_lineitem` varchar(255) NOT NULL, + `profile_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `content_libraries_ltigra_usage_key_profile_id_20a2f94c_uniq` (`usage_key`,`profile_id`), + KEY `content_libraries_lt_profile_id_a46c16cc_fk_content_l` (`profile_id`), + CONSTRAINT `content_libraries_lt_profile_id_a46c16cc_fk_content_l` FOREIGN KEY (`profile_id`) REFERENCES `content_libraries_ltiprofile` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `content_libraries_ltigradedresource` +-- + +LOCK TABLES `content_libraries_ltigradedresource` WRITE; +/*!40000 ALTER TABLE `content_libraries_ltigradedresource` DISABLE KEYS */; +/*!40000 ALTER TABLE `content_libraries_ltigradedresource` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `content_libraries_ltiprofile` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `content_libraries_ltiprofile` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `platform_id` varchar(255) NOT NULL, + `client_id` varchar(255) NOT NULL, + `subject_id` varchar(255) NOT NULL, + `created_at` datetime(6) NOT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `content_libraries_ltipro_platform_id_client_id_su_9b6cf002_uniq` (`platform_id`,`client_id`,`subject_id`), + UNIQUE KEY `user_id` (`user_id`), + CONSTRAINT `content_libraries_ltiprofile_user_id_a54fb7a1_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `content_libraries_ltiprofile` +-- + +LOCK TABLES `content_libraries_ltiprofile` WRITE; +/*!40000 ALTER TABLE `content_libraries_ltiprofile` DISABLE KEYS */; +/*!40000 ALTER TABLE `content_libraries_ltiprofile` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `content_type_gating_contenttypegatingconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `content_type_gating_contenttypegatingconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) DEFAULT NULL, + `org` varchar(255) DEFAULT NULL, + `enabled_as_of` datetime(6) DEFAULT NULL, + `studio_override_enabled` tinyint(1) DEFAULT NULL, + `changed_by_id` int(11) DEFAULT NULL, + `course_id` varchar(255) DEFAULT NULL, + `site_id` int(11) DEFAULT NULL, + `org_course` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `content_type_gating__changed_by_id_e1754c4b_fk_auth_user` (`changed_by_id`), + KEY `content_type_gating__course_id_f19cc50d_fk_course_ov` (`course_id`), + KEY `content_type_gating_contenttypegatingconfig_org_043e72a9` (`org`), + KEY `content_typ_site_id_e91576_idx` (`site_id`,`org`,`course_id`), + KEY `content_typ_site_id_650310_idx` (`site_id`,`org`,`org_course`,`course_id`), + KEY `content_type_gating_contenttypegatingconfig_org_course_70742f9e` (`org_course`), + CONSTRAINT `content_type_gating__changed_by_id_e1754c4b_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `content_type_gating__course_id_f19cc50d_fk_course_ov` FOREIGN KEY (`course_id`) REFERENCES `course_overviews_courseoverview` (`id`), + CONSTRAINT `content_type_gating__site_id_c9f3bc6a_fk_django_si` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `content_type_gating_contenttypegatingconfig` +-- + +LOCK TABLES `content_type_gating_contenttypegatingconfig` WRITE; +/*!40000 ALTER TABLE `content_type_gating_contenttypegatingconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `content_type_gating_contenttypegatingconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contentserver_cdnuseragentsconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `contentserver_cdnuseragentsconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `cdn_user_agents` longtext NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `contentserver_cdnuse_changed_by_id_19d8cb94_fk_auth_user` (`changed_by_id`), + CONSTRAINT `contentserver_cdnuse_changed_by_id_19d8cb94_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contentserver_cdnuseragentsconfig` +-- + +LOCK TABLES `contentserver_cdnuseragentsconfig` WRITE; +/*!40000 ALTER TABLE `contentserver_cdnuseragentsconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `contentserver_cdnuseragentsconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contentserver_courseassetcachettlconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `contentserver_courseassetcachettlconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `cache_ttl` int(10) unsigned NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `contentserver_course_changed_by_id_a9213047_fk_auth_user` (`changed_by_id`), + CONSTRAINT `contentserver_course_changed_by_id_a9213047_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contentserver_courseassetcachettlconfig` +-- + +LOCK TABLES `contentserver_courseassetcachettlconfig` WRITE; +/*!40000 ALTER TABLE `contentserver_courseassetcachettlconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `contentserver_courseassetcachettlconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contentstore_backfillcoursetabsconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `contentstore_backfillcoursetabsconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `start_index` int(11) NOT NULL, + `count` int(11) NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `contentstore_backfil_changed_by_id_dd8278ae_fk_auth_user` (`changed_by_id`), + CONSTRAINT `contentstore_backfil_changed_by_id_dd8278ae_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contentstore_backfillcoursetabsconfig` +-- + +LOCK TABLES `contentstore_backfillcoursetabsconfig` WRITE; +/*!40000 ALTER TABLE `contentstore_backfillcoursetabsconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `contentstore_backfillcoursetabsconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contentstore_cleanstalecertificateavailabilitydatesconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `contentstore_cleanstalecertificateavailabilitydatesconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `arguments` longtext NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `contentstore_cleanst_changed_by_id_eca4c67b_fk_auth_user` (`changed_by_id`), + CONSTRAINT `contentstore_cleanst_changed_by_id_eca4c67b_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contentstore_cleanstalecertificateavailabilitydatesconfig` +-- + +LOCK TABLES `contentstore_cleanstalecertificateavailabilitydatesconfig` WRITE; +/*!40000 ALTER TABLE `contentstore_cleanstalecertificateavailabilitydatesconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `contentstore_cleanstalecertificateavailabilitydatesconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contentstore_videouploadconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `contentstore_videouploadconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `profile_whitelist` longtext NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `contentstore_videoup_changed_by_id_e7352cb2_fk_auth_user` (`changed_by_id`), + CONSTRAINT `contentstore_videoup_changed_by_id_e7352cb2_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contentstore_videouploadconfig` +-- + +LOCK TABLES `contentstore_videouploadconfig` WRITE; +/*!40000 ALTER TABLE `contentstore_videouploadconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `contentstore_videouploadconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `cornerstone_cornerstonecoursekey` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `cornerstone_cornerstonecoursekey` ( + `internal_course_id` varchar(255) NOT NULL, + `external_course_id` varchar(255) NOT NULL, + PRIMARY KEY (`internal_course_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `cornerstone_cornerstonecoursekey` +-- + +LOCK TABLES `cornerstone_cornerstonecoursekey` WRITE; +/*!40000 ALTER TABLE `cornerstone_cornerstonecoursekey` DISABLE KEYS */; +/*!40000 ALTER TABLE `cornerstone_cornerstonecoursekey` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `cornerstone_cornerstoneenterprisecustomerconfiguration` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `cornerstone_cornerstoneenterprisecustomerconfiguration` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `active` tinyint(1) NOT NULL, + `transmission_chunk_size` int(11) NOT NULL, + `cornerstone_base_url` varchar(255) NOT NULL, + `enterprise_customer_id` char(32) NOT NULL, + `channel_worker_username` varchar(255) NOT NULL, + `catalogs_to_transmit` longtext NOT NULL, + `idp_id` varchar(255) NOT NULL, + `disable_learner_data_transmissions` tinyint(1) NOT NULL, + `session_token` varchar(255) NOT NULL, + `session_token_modified` datetime(6) DEFAULT NULL, + `display_name` varchar(255) NOT NULL, + `dry_run_mode_enabled` tinyint(1) NOT NULL, + `deleted_at` datetime(6) DEFAULT NULL, + `last_content_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_content_sync_errored_at` datetime(6) DEFAULT NULL, + `last_learner_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_learner_sync_errored_at` datetime(6) DEFAULT NULL, + `last_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_sync_errored_at` datetime(6) DEFAULT NULL, + `last_modified_at` datetime(6) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `cornerstone_cornerstoneente_enterprise_customer_id_5b56887b` (`enterprise_customer_id`), + CONSTRAINT `cornerstone_cornerst_enterprise_customer__5b56887b_fk_enterpris` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `cornerstone_cornerstoneenterprisecustomerconfiguration` +-- + +LOCK TABLES `cornerstone_cornerstoneenterprisecustomerconfiguration` WRITE; +/*!40000 ALTER TABLE `cornerstone_cornerstoneenterprisecustomerconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `cornerstone_cornerstoneenterprisecustomerconfiguration` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `cornerstone_cornerstoneglobalconfiguration` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `cornerstone_cornerstoneglobalconfiguration` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `completion_status_api_path` varchar(255) NOT NULL, + `oauth_api_path` varchar(255) NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + `subject_mapping` longtext NOT NULL, + `key` varchar(255) NOT NULL, + `secret` varchar(255) NOT NULL, + `languages` longtext NOT NULL, + PRIMARY KEY (`id`), + KEY `cornerstone_cornerst_changed_by_id_117db502_fk_auth_user` (`changed_by_id`), + CONSTRAINT `cornerstone_cornerst_changed_by_id_117db502_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `cornerstone_cornerstoneglobalconfiguration` +-- + +LOCK TABLES `cornerstone_cornerstoneglobalconfiguration` WRITE; +/*!40000 ALTER TABLE `cornerstone_cornerstoneglobalconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `cornerstone_cornerstoneglobalconfiguration` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `cornerstone_cornerstonelearnerdatatransmissionaudit` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `cornerstone_cornerstonelearnerdatatransmissionaudit` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `user_guid` varchar(255) NOT NULL, + `enterprise_course_enrollment_id` int(11) DEFAULT NULL, + `course_id` varchar(255) NOT NULL, + `session_token` varchar(255) NOT NULL, + `callback_url` varchar(255) NOT NULL, + `subdomain` varchar(255) NOT NULL, + `course_completed` tinyint(1) NOT NULL, + `completed_timestamp` datetime(6) DEFAULT NULL, + `status` varchar(100) DEFAULT NULL, + `error_message` longtext, + `user_id` int(11) NOT NULL, + `grade` varchar(255) DEFAULT NULL, + `enterprise_customer_uuid` char(32) DEFAULT NULL, + `instructor_name` varchar(255) NOT NULL, + `plugin_configuration_id` int(11) DEFAULT NULL, + `total_hours` double DEFAULT NULL, + `subsection_id` varchar(255) DEFAULT NULL, + `subsection_name` varchar(255) DEFAULT NULL, + `friendly_status_message` varchar(255) DEFAULT NULL, + `api_record_id` int(11) DEFAULT NULL, + `content_title` varchar(255) DEFAULT NULL, + `progress_status` varchar(255) NOT NULL, + `user_email` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `cornerstone_cornerstonel_user_id_course_id_c975cc5f_uniq` (`user_id`,`course_id`), + UNIQUE KEY `api_record_id` (`api_record_id`), + KEY `cornerstone_cornerstonelear_enterprise_course_enrollmen_e3b05dac` (`enterprise_course_enrollment_id`), + KEY `cornerstone_cornerstonelear_subsection_id_7c3be322` (`subsection_id`), + KEY `cornerstone_cldta_85936b55_idx` (`enterprise_customer_uuid`,`plugin_configuration_id`), + CONSTRAINT `cornerstone_cornerst_api_record_id_a825c06d_fk_integrate` FOREIGN KEY (`api_record_id`) REFERENCES `integrated_channel_apiresponserecord` (`id`), + CONSTRAINT `cornerstone_cornerst_user_id_43bd15bf_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `cornerstone_cornerstonelearnerdatatransmissionaudit` +-- + +LOCK TABLES `cornerstone_cornerstonelearnerdatatransmissionaudit` WRITE; +/*!40000 ALTER TABLE `cornerstone_cornerstonelearnerdatatransmissionaudit` DISABLE KEYS */; +/*!40000 ALTER TABLE `cornerstone_cornerstonelearnerdatatransmissionaudit` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `cornerstone_historicalcornerstoneenterprisecustomerconfiguration` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `cornerstone_historicalcornerstoneenterprisecustomerconfiguration` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `active` tinyint(1) NOT NULL, + `transmission_chunk_size` int(11) NOT NULL, + `cornerstone_base_url` varchar(255) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `enterprise_customer_id` char(32) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `channel_worker_username` varchar(255) NOT NULL, + `catalogs_to_transmit` longtext NOT NULL, + `idp_id` varchar(255) NOT NULL, + `disable_learner_data_transmissions` tinyint(1) NOT NULL, + `session_token` varchar(255) NOT NULL, + `session_token_modified` datetime(6) DEFAULT NULL, + `display_name` varchar(255) NOT NULL, + `dry_run_mode_enabled` tinyint(1) NOT NULL, + `deleted_at` datetime(6) DEFAULT NULL, + `last_content_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_content_sync_errored_at` datetime(6) DEFAULT NULL, + `last_learner_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_learner_sync_errored_at` datetime(6) DEFAULT NULL, + `last_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_sync_errored_at` datetime(6) DEFAULT NULL, + `last_modified_at` datetime(6) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `cornerstone_historic_history_user_id_1ded83c5_fk_auth_user` (`history_user_id`), + KEY `cornerstone_historicalcorne_id_513efd93` (`id`), + KEY `cornerstone_historicalcorne_enterprise_customer_id_7f1c53b1` (`enterprise_customer_id`), + CONSTRAINT `cornerstone_historic_history_user_id_1ded83c5_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `cornerstone_historicalcornerstoneenterprisecustomerconfiguration` +-- + +LOCK TABLES `cornerstone_historicalcornerstoneenterprisecustomerconfiguration` WRITE; +/*!40000 ALTER TABLE `cornerstone_historicalcornerstoneenterprisecustomerconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `cornerstone_historicalcornerstoneenterprisecustomerconfiguration` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `cors_csrf_xdomainproxyconfiguration` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `cors_csrf_xdomainproxyconfiguration` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `whitelist` longtext NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `cors_csrf_xdomainpro_changed_by_id_b8e97ec3_fk_auth_user` (`changed_by_id`), + CONSTRAINT `cors_csrf_xdomainpro_changed_by_id_b8e97ec3_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `cors_csrf_xdomainproxyconfiguration` +-- + +LOCK TABLES `cors_csrf_xdomainproxyconfiguration` WRITE; +/*!40000 ALTER TABLE `cors_csrf_xdomainproxyconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `cors_csrf_xdomainproxyconfiguration` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_action_state_coursererunstate` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_action_state_coursererunstate` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created_time` datetime(6) NOT NULL, + `updated_time` datetime(6) NOT NULL, + `course_key` varchar(255) NOT NULL, + `action` varchar(100) NOT NULL, + `state` varchar(50) NOT NULL, + `should_display` tinyint(1) NOT NULL, + `message` varchar(1000) NOT NULL, + `source_course_key` varchar(255) NOT NULL, + `display_name` varchar(255) NOT NULL, + `created_user_id` int(11) DEFAULT NULL, + `updated_user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `course_action_state_cour_course_key_action_2a8434fb_uniq` (`course_key`,`action`), + KEY `course_action_state__created_user_id_5373c218_fk_auth_user` (`created_user_id`), + KEY `course_action_state__updated_user_id_3689fe4b_fk_auth_user` (`updated_user_id`), + KEY `course_action_state_coursererunstate_course_key_f87bef79` (`course_key`), + KEY `course_action_state_coursererunstate_action_149773f1` (`action`), + KEY `course_action_state_coursererunstate_source_course_key_b5037317` (`source_course_key`), + CONSTRAINT `course_action_state__created_user_id_5373c218_fk_auth_user` FOREIGN KEY (`created_user_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `course_action_state__updated_user_id_3689fe4b_fk_auth_user` FOREIGN KEY (`updated_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_action_state_coursererunstate` +-- + +LOCK TABLES `course_action_state_coursererunstate` WRITE; +/*!40000 ALTER TABLE `course_action_state_coursererunstate` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_action_state_coursererunstate` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_apps_courseappstatus` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_apps_courseappstatus` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `app_id` varchar(32) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `course_key` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique_app_config_for_course` (`app_id`,`course_key`), + KEY `course_apps_app_id_b3df8c_idx` (`app_id`,`course_key`), + KEY `course_apps_courseappstatus_app_id_f6c41464` (`app_id`), + KEY `course_apps_courseappstatus_course_key_5c04010e` (`course_key`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_apps_courseappstatus` +-- + +LOCK TABLES `course_apps_courseappstatus` WRITE; +/*!40000 ALTER TABLE `course_apps_courseappstatus` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_apps_courseappstatus` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_apps_historicalcourseappstatus` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_apps_historicalcourseappstatus` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `app_id` varchar(32) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `course_key` varchar(255) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `course_apps_historic_history_user_id_970c6a3a_fk_auth_user` (`history_user_id`), + KEY `course_apps_historicalcourseappstatus_id_7dab7ce1` (`id`), + KEY `course_apps_historicalcourseappstatus_app_id_42a9f580` (`app_id`), + KEY `course_apps_historicalcourseappstatus_course_key_9db183df` (`course_key`), + CONSTRAINT `course_apps_historic_history_user_id_970c6a3a_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_apps_historicalcourseappstatus` +-- + +LOCK TABLES `course_apps_historicalcourseappstatus` WRITE; +/*!40000 ALTER TABLE `course_apps_historicalcourseappstatus` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_apps_historicalcourseappstatus` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_creators_coursecreator` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_creators_coursecreator` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `state_changed` datetime(6) NOT NULL, + `state` varchar(24) NOT NULL, + `note` varchar(512) NOT NULL, + `user_id` int(11) NOT NULL, + `all_organizations` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `user_id` (`user_id`), + CONSTRAINT `course_creators_coursecreator_user_id_e4da548d_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_creators_coursecreator` +-- + +LOCK TABLES `course_creators_coursecreator` WRITE; +/*!40000 ALTER TABLE `course_creators_coursecreator` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_creators_coursecreator` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_creators_coursecreator_organizations` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_creators_coursecreator_organizations` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `coursecreator_id` int(11) NOT NULL, + `organization_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `course_creators_coursecr_coursecreator_id_organiz_4c4765a1_uniq` (`coursecreator_id`,`organization_id`), + KEY `course_creators_cour_organization_id_f561fb6c_fk_organizat` (`organization_id`), + CONSTRAINT `course_creators_cour_coursecreator_id_cd9dbd7f_fk_course_cr` FOREIGN KEY (`coursecreator_id`) REFERENCES `course_creators_coursecreator` (`id`), + CONSTRAINT `course_creators_cour_organization_id_f561fb6c_fk_organizat` FOREIGN KEY (`organization_id`) REFERENCES `organizations_organization` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_creators_coursecreator_organizations` +-- + +LOCK TABLES `course_creators_coursecreator_organizations` WRITE; +/*!40000 ALTER TABLE `course_creators_coursecreator_organizations` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_creators_coursecreator_organizations` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_date_signals_selfpacedrelativedatesconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_date_signals_selfpacedrelativedatesconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) DEFAULT NULL, + `org` varchar(255) DEFAULT NULL, + `org_course` varchar(255) DEFAULT NULL, + `changed_by_id` int(11) DEFAULT NULL, + `course_id` varchar(255) DEFAULT NULL, + `site_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `course_date_site_id_a44836_idx` (`site_id`,`org`,`course_id`), + KEY `course_date_site_id_c0164a_idx` (`site_id`,`org`,`org_course`,`course_id`), + KEY `course_date_signals__changed_by_id_5f8228f2_fk_auth_user` (`changed_by_id`), + KEY `course_date_signals__course_id_361d8ca8_fk_course_ov` (`course_id`), + KEY `course_date_signals_selfpacedrelativedatesconfig_org_9c13e820` (`org`), + KEY `course_date_signals_selfpac_org_course_b7041c4f` (`org_course`), + CONSTRAINT `course_date_signals__changed_by_id_5f8228f2_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `course_date_signals__course_id_361d8ca8_fk_course_ov` FOREIGN KEY (`course_id`) REFERENCES `course_overviews_courseoverview` (`id`), + CONSTRAINT `course_date_signals__site_id_29483878_fk_django_si` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_date_signals_selfpacedrelativedatesconfig` +-- + +LOCK TABLES `course_date_signals_selfpacedrelativedatesconfig` WRITE; +/*!40000 ALTER TABLE `course_date_signals_selfpacedrelativedatesconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_date_signals_selfpacedrelativedatesconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_duration_limits_coursedurationlimitconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_duration_limits_coursedurationlimitconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) DEFAULT NULL, + `org` varchar(255) DEFAULT NULL, + `enabled_as_of` datetime(6) DEFAULT NULL, + `changed_by_id` int(11) DEFAULT NULL, + `course_id` varchar(255) DEFAULT NULL, + `site_id` int(11) DEFAULT NULL, + `org_course` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `course_duration_limi_changed_by_id_f320fd76_fk_auth_user` (`changed_by_id`), + KEY `course_duration_limi_course_id_97b7a8e9_fk_course_ov` (`course_id`), + KEY `course_duration_limits_coursedurationlimitconfig_org_c2cc0091` (`org`), + KEY `course_dura_site_id_424016_idx` (`site_id`,`org`,`course_id`), + KEY `course_dura_site_id_b5bbcd_idx` (`site_id`,`org`,`org_course`,`course_id`), + KEY `course_duration_limits_cour_org_course_bcd05764` (`org_course`), + CONSTRAINT `course_duration_limi_changed_by_id_f320fd76_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `course_duration_limi_course_id_97b7a8e9_fk_course_ov` FOREIGN KEY (`course_id`) REFERENCES `course_overviews_courseoverview` (`id`), + CONSTRAINT `course_duration_limi_site_id_cb492296_fk_django_si` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_duration_limits_coursedurationlimitconfig` +-- + +LOCK TABLES `course_duration_limits_coursedurationlimitconfig` WRITE; +/*!40000 ALTER TABLE `course_duration_limits_coursedurationlimitconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_duration_limits_coursedurationlimitconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_goals_coursegoal` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_goals_coursegoal` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `course_key` varchar(255) NOT NULL, + `goal_key` varchar(100) NOT NULL, + `user_id` int(11) NOT NULL, + `days_per_week` int(10) unsigned NOT NULL, + `subscribed_to_reminders` tinyint(1) NOT NULL, + `unsubscribe_token` char(32) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `course_goals_coursegoal_user_id_course_key_052bc0d3_uniq` (`user_id`,`course_key`), + UNIQUE KEY `unsubscribe_token` (`unsubscribe_token`), + KEY `course_goals_coursegoal_course_key_5585ca51` (`course_key`), + CONSTRAINT `course_goals_coursegoal_user_id_0a07e3db_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_goals_coursegoal` +-- + +LOCK TABLES `course_goals_coursegoal` WRITE; +/*!40000 ALTER TABLE `course_goals_coursegoal` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_goals_coursegoal` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_goals_coursegoalreminderstatus` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_goals_coursegoalreminderstatus` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `email_reminder_sent` tinyint(1) NOT NULL, + `goal_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `goal_id` (`goal_id`), + CONSTRAINT `course_goals_courseg_goal_id_8a7932cf_fk_course_go` FOREIGN KEY (`goal_id`) REFERENCES `course_goals_coursegoal` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_goals_coursegoalreminderstatus` +-- + +LOCK TABLES `course_goals_coursegoalreminderstatus` WRITE; +/*!40000 ALTER TABLE `course_goals_coursegoalreminderstatus` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_goals_coursegoalreminderstatus` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_goals_historicalcoursegoal` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_goals_historicalcoursegoal` ( + `id` int(11) NOT NULL, + `course_key` varchar(255) NOT NULL, + `goal_key` varchar(100) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + `days_per_week` int(10) unsigned NOT NULL, + `subscribed_to_reminders` tinyint(1) NOT NULL, + `unsubscribe_token` char(32) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `course_goals_histori_history_user_id_b20abbc7_fk_auth_user` (`history_user_id`), + KEY `course_goals_historicalcoursegoal_id_ae96ee01` (`id`), + KEY `course_goals_historicalcoursegoal_course_key_a8e29f00` (`course_key`), + KEY `course_goals_historicalcoursegoal_user_id_3aef8b4b` (`user_id`), + KEY `course_goals_historicalcoursegoal_unsubscribe_token_96b31785` (`unsubscribe_token`), + CONSTRAINT `course_goals_histori_history_user_id_b20abbc7_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_goals_historicalcoursegoal` +-- + +LOCK TABLES `course_goals_historicalcoursegoal` WRITE; +/*!40000 ALTER TABLE `course_goals_historicalcoursegoal` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_goals_historicalcoursegoal` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_goals_useractivity` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_goals_useractivity` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `course_key` varchar(255) NOT NULL, + `date` date NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique_user_course_date` (`user_id`,`course_key`,`date`), + KEY `user_course_index` (`user_id`,`course_key`), + CONSTRAINT `course_goals_useractivity_user_id_aed932d9_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_goals_useractivity` +-- + +LOCK TABLES `course_goals_useractivity` WRITE; +/*!40000 ALTER TABLE `course_goals_useractivity` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_goals_useractivity` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_groups_cohortmembership` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_groups_cohortmembership` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `course_id` varchar(255) NOT NULL, + `course_user_group_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `course_groups_cohortmembership_user_id_course_id_c247eb7f_uniq` (`user_id`,`course_id`), + KEY `course_groups_cohort_course_user_group_id_6ea50b45_fk_course_gr` (`course_user_group_id`), + CONSTRAINT `course_groups_cohort_course_user_group_id_6ea50b45_fk_course_gr` FOREIGN KEY (`course_user_group_id`) REFERENCES `course_groups_courseusergroup` (`id`), + CONSTRAINT `course_groups_cohortmembership_user_id_aae5b8e7_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_groups_cohortmembership` +-- + +LOCK TABLES `course_groups_cohortmembership` WRITE; +/*!40000 ALTER TABLE `course_groups_cohortmembership` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_groups_cohortmembership` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_groups_coursecohort` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_groups_coursecohort` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `assignment_type` varchar(20) NOT NULL, + `course_user_group_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `course_user_group_id` (`course_user_group_id`), + CONSTRAINT `course_groups_course_course_user_group_id_ec5703ee_fk_course_gr` FOREIGN KEY (`course_user_group_id`) REFERENCES `course_groups_courseusergroup` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_groups_coursecohort` +-- + +LOCK TABLES `course_groups_coursecohort` WRITE; +/*!40000 ALTER TABLE `course_groups_coursecohort` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_groups_coursecohort` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_groups_coursecohortssettings` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_groups_coursecohortssettings` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `is_cohorted` tinyint(1) NOT NULL, + `course_id` varchar(255) NOT NULL, + `cohorted_discussions` longtext, + `always_cohort_inline_discussions` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `course_id` (`course_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_groups_coursecohortssettings` +-- + +LOCK TABLES `course_groups_coursecohortssettings` WRITE; +/*!40000 ALTER TABLE `course_groups_coursecohortssettings` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_groups_coursecohortssettings` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_groups_courseusergroup` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_groups_courseusergroup` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL, + `course_id` varchar(255) NOT NULL, + `group_type` varchar(20) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `course_groups_courseusergroup_name_course_id_b767231d_uniq` (`name`,`course_id`), + KEY `course_groups_courseusergroup_course_id_902aea4c` (`course_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_groups_courseusergroup` +-- + +LOCK TABLES `course_groups_courseusergroup` WRITE; +/*!40000 ALTER TABLE `course_groups_courseusergroup` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_groups_courseusergroup` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_groups_courseusergroup_users` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_groups_courseusergroup_users` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `courseusergroup_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `course_groups_courseuser_courseusergroup_id_user__694e8c30_uniq` (`courseusergroup_id`,`user_id`), + KEY `course_groups_course_user_id_28aff981_fk_auth_user` (`user_id`), + CONSTRAINT `course_groups_course_courseusergroup_id_26a7966f_fk_course_gr` FOREIGN KEY (`courseusergroup_id`) REFERENCES `course_groups_courseusergroup` (`id`), + CONSTRAINT `course_groups_course_user_id_28aff981_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_groups_courseusergroup_users` +-- + +LOCK TABLES `course_groups_courseusergroup_users` WRITE; +/*!40000 ALTER TABLE `course_groups_courseusergroup_users` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_groups_courseusergroup_users` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_groups_courseusergrouppartitiongroup` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_groups_courseusergrouppartitiongroup` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `partition_id` int(11) NOT NULL, + `group_id` int(11) NOT NULL, + `created_at` datetime(6) NOT NULL, + `updated_at` datetime(6) NOT NULL, + `course_user_group_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `course_user_group_id` (`course_user_group_id`), + CONSTRAINT `course_groups_course_course_user_group_id_6032d512_fk_course_gr` FOREIGN KEY (`course_user_group_id`) REFERENCES `course_groups_courseusergroup` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_groups_courseusergrouppartitiongroup` +-- + +LOCK TABLES `course_groups_courseusergrouppartitiongroup` WRITE; +/*!40000 ALTER TABLE `course_groups_courseusergrouppartitiongroup` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_groups_courseusergrouppartitiongroup` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_groups_unregisteredlearnercohortassignments` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_groups_unregisteredlearnercohortassignments` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `email` varchar(255) NOT NULL, + `course_id` varchar(255) NOT NULL, + `course_user_group_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `course_groups_unregister_course_id_email_81a9d1db_uniq` (`course_id`,`email`), + KEY `course_groups_unregi_course_user_group_id_c1c8a247_fk_course_gr` (`course_user_group_id`), + KEY `course_groups_unregisteredl_email_05d0e40e` (`email`), + CONSTRAINT `course_groups_unregi_course_user_group_id_c1c8a247_fk_course_gr` FOREIGN KEY (`course_user_group_id`) REFERENCES `course_groups_courseusergroup` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_groups_unregisteredlearnercohortassignments` +-- + +LOCK TABLES `course_groups_unregisteredlearnercohortassignments` WRITE; +/*!40000 ALTER TABLE `course_groups_unregisteredlearnercohortassignments` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_groups_unregisteredlearnercohortassignments` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_home_api_disableprogresspagestackedconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_home_api_disableprogresspagestackedconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) DEFAULT NULL, + `org` varchar(255) DEFAULT NULL, + `org_course` varchar(255) DEFAULT NULL, + `disabled` tinyint(1) DEFAULT NULL, + `changed_by_id` int(11) DEFAULT NULL, + `course_id` varchar(255) DEFAULT NULL, + `site_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `course_home_site_id_6988e4_idx` (`site_id`,`org`,`course_id`), + KEY `course_home_site_id_23dec6_idx` (`site_id`,`org`,`org_course`,`course_id`), + KEY `course_home_api_disa_changed_by_id_2a8c1176_fk_auth_user` (`changed_by_id`), + KEY `course_home_api_disa_course_id_815633f2_fk_course_ov` (`course_id`), + KEY `course_home_api_disableprogresspagestackedconfig_org_d6dd0056` (`org`), + KEY `course_home_api_disableprog_org_course_b4b94c97` (`org_course`), + CONSTRAINT `course_home_api_disa_changed_by_id_2a8c1176_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `course_home_api_disa_course_id_815633f2_fk_course_ov` FOREIGN KEY (`course_id`) REFERENCES `course_overviews_courseoverview` (`id`), + CONSTRAINT `course_home_api_disa_site_id_81e5e9d3_fk_django_si` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_home_api_disableprogresspagestackedconfig` +-- + +LOCK TABLES `course_home_api_disableprogresspagestackedconfig` WRITE; +/*!40000 ALTER TABLE `course_home_api_disableprogresspagestackedconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_home_api_disableprogresspagestackedconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_live_courseliveconfiguration` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_live_courseliveconfiguration` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `course_key` varchar(255) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `provider_type` varchar(50) NOT NULL, + `lti_configuration_id` int(11) DEFAULT NULL, + `free_tier` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + KEY `course_live_courseli_lti_configuration_id_ec442587_fk_lti_consu` (`lti_configuration_id`), + KEY `course_live_courseliveconfiguration_course_key_ff15afd8` (`course_key`), + CONSTRAINT `course_live_courseli_lti_configuration_id_ec442587_fk_lti_consu` FOREIGN KEY (`lti_configuration_id`) REFERENCES `lti_consumer_lticonfiguration` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_live_courseliveconfiguration` +-- + +LOCK TABLES `course_live_courseliveconfiguration` WRITE; +/*!40000 ALTER TABLE `course_live_courseliveconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_live_courseliveconfiguration` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_live_historicalcourseliveconfiguration` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_live_historicalcourseliveconfiguration` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `course_key` varchar(255) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `provider_type` varchar(50) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `lti_configuration_id` int(11) DEFAULT NULL, + `free_tier` tinyint(1) NOT NULL, + PRIMARY KEY (`history_id`), + KEY `course_live_historic_history_user_id_eb9f8dda_fk_auth_user` (`history_user_id`), + KEY `course_live_historicalcourseliveconfiguration_id_45a9db2e` (`id`), + KEY `course_live_historicalcours_course_key_1453fa63` (`course_key`), + KEY `course_live_historicalcours_lti_configuration_id_62cf6306` (`lti_configuration_id`), + CONSTRAINT `course_live_historic_history_user_id_eb9f8dda_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_live_historicalcourseliveconfiguration` +-- + +LOCK TABLES `course_live_historicalcourseliveconfiguration` WRITE; +/*!40000 ALTER TABLE `course_live_historicalcourseliveconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_live_historicalcourseliveconfiguration` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_modes_coursemode` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_modes_coursemode` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `course_id` varchar(255) NOT NULL, + `mode_slug` varchar(100) NOT NULL, + `mode_display_name` varchar(255) NOT NULL, + `min_price` int(11) NOT NULL, + `currency` varchar(8) NOT NULL, + `expiration_datetime` datetime(6) DEFAULT NULL, + `expiration_date` date DEFAULT NULL, + `suggested_prices` varchar(255) NOT NULL, + `description` longtext, + `sku` varchar(255) DEFAULT NULL, + `expiration_datetime_is_explicit` tinyint(1) NOT NULL, + `bulk_sku` varchar(255) DEFAULT NULL, + `android_sku` varchar(255) DEFAULT NULL, + `ios_sku` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `course_modes_coursemode_course_id_mode_slug_curr_56f8e675_uniq` (`course_id`,`mode_slug`,`currency`), + KEY `course_modes_coursemode_course_id_3daf3b9d` (`course_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_modes_coursemode` +-- + +LOCK TABLES `course_modes_coursemode` WRITE; +/*!40000 ALTER TABLE `course_modes_coursemode` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_modes_coursemode` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_modes_coursemodeexpirationconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_modes_coursemodeexpirationconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `verification_window` bigint(20) NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `course_modes_coursem_changed_by_id_208463ee_fk_auth_user` (`changed_by_id`), + CONSTRAINT `course_modes_coursem_changed_by_id_208463ee_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_modes_coursemodeexpirationconfig` +-- + +LOCK TABLES `course_modes_coursemodeexpirationconfig` WRITE; +/*!40000 ALTER TABLE `course_modes_coursemodeexpirationconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_modes_coursemodeexpirationconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_modes_coursemodesarchive` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_modes_coursemodesarchive` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `course_id` varchar(255) NOT NULL, + `mode_slug` varchar(100) NOT NULL, + `mode_display_name` varchar(255) NOT NULL, + `min_price` int(11) NOT NULL, + `suggested_prices` varchar(255) NOT NULL, + `currency` varchar(8) NOT NULL, + `expiration_date` date DEFAULT NULL, + `expiration_datetime` datetime(6) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `course_modes_coursemodesarchive_course_id_f67bbd35` (`course_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_modes_coursemodesarchive` +-- + +LOCK TABLES `course_modes_coursemodesarchive` WRITE; +/*!40000 ALTER TABLE `course_modes_coursemodesarchive` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_modes_coursemodesarchive` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_modes_historicalcoursemode` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_modes_historicalcoursemode` ( + `id` int(11) NOT NULL, + `mode_slug` varchar(100) NOT NULL, + `mode_display_name` varchar(255) NOT NULL, + `min_price` int(11) NOT NULL, + `currency` varchar(8) NOT NULL, + `expiration_datetime` datetime(6) DEFAULT NULL, + `expiration_datetime_is_explicit` tinyint(1) NOT NULL, + `expiration_date` date DEFAULT NULL, + `suggested_prices` varchar(255) NOT NULL, + `description` longtext, + `sku` varchar(255) DEFAULT NULL, + `bulk_sku` varchar(255) DEFAULT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `course_id` varchar(255) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `android_sku` varchar(255) DEFAULT NULL, + `ios_sku` varchar(255) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `course_modes_histori_history_user_id_d92d6b6e_fk_auth_user` (`history_user_id`), + KEY `course_modes_historicalcoursemode_id_14918a77` (`id`), + KEY `course_modes_historicalcoursemode_course_id_e8de13cd` (`course_id`), + CONSTRAINT `course_modes_histori_history_user_id_d92d6b6e_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_modes_historicalcoursemode` +-- + +LOCK TABLES `course_modes_historicalcoursemode` WRITE; +/*!40000 ALTER TABLE `course_modes_historicalcoursemode` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_modes_historicalcoursemode` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_overviews_courseoverview` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_overviews_courseoverview` ( + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `version` int(11) NOT NULL, + `id` varchar(255) NOT NULL, + `_location` varchar(255) NOT NULL, + `display_name` longtext, + `display_number_with_default` longtext NOT NULL, + `display_org_with_default` longtext NOT NULL, + `start` datetime(6) DEFAULT NULL, + `end` datetime(6) DEFAULT NULL, + `advertised_start` longtext, + `course_image_url` longtext NOT NULL, + `social_sharing_url` longtext, + `end_of_course_survey_url` longtext, + `certificates_display_behavior` longtext, + `certificates_show_before_end` tinyint(1) NOT NULL, + `cert_html_view_enabled` tinyint(1) NOT NULL, + `has_any_active_web_certificate` tinyint(1) NOT NULL, + `cert_name_short` longtext NOT NULL, + `cert_name_long` longtext NOT NULL, + `lowest_passing_grade` decimal(5,2) DEFAULT NULL, + `days_early_for_beta` double DEFAULT NULL, + `mobile_available` tinyint(1) NOT NULL, + `visible_to_staff_only` tinyint(1) NOT NULL, + `_pre_requisite_courses_json` longtext NOT NULL, + `enrollment_start` datetime(6) DEFAULT NULL, + `enrollment_end` datetime(6) DEFAULT NULL, + `enrollment_domain` longtext, + `invitation_only` tinyint(1) NOT NULL, + `max_student_enrollments_allowed` int(11) DEFAULT NULL, + `announcement` datetime(6) DEFAULT NULL, + `catalog_visibility` longtext, + `course_video_url` longtext, + `effort` longtext, + `short_description` longtext, + `org` longtext NOT NULL, + `self_paced` tinyint(1) NOT NULL, + `marketing_url` longtext, + `eligible_for_financial_aid` tinyint(1) NOT NULL, + `language` longtext, + `certificate_available_date` datetime(6) DEFAULT NULL, + `end_date` datetime(6) DEFAULT NULL, + `start_date` datetime(6) DEFAULT NULL, + `banner_image_url` longtext NOT NULL, + `has_highlights` tinyint(1) DEFAULT NULL, + `allow_proctoring_opt_out` tinyint(1) NOT NULL, + `enable_proctored_exams` tinyint(1) NOT NULL, + `proctoring_escalation_email` longtext, + `proctoring_provider` longtext, + `entrance_exam_enabled` tinyint(1) NOT NULL, + `entrance_exam_id` varchar(255) NOT NULL, + `entrance_exam_minimum_score_pct` double NOT NULL, + `external_id` varchar(128) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_overviews_courseoverview` +-- + +LOCK TABLES `course_overviews_courseoverview` WRITE; +/*!40000 ALTER TABLE `course_overviews_courseoverview` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_overviews_courseoverview` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_overviews_courseoverviewimageconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_overviews_courseoverviewimageconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `small_width` int(11) NOT NULL, + `small_height` int(11) NOT NULL, + `large_width` int(11) NOT NULL, + `large_height` int(11) NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `course_overviews_cou_changed_by_id_b60ae39a_fk_auth_user` (`changed_by_id`), + CONSTRAINT `course_overviews_cou_changed_by_id_b60ae39a_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_overviews_courseoverviewimageconfig` +-- + +LOCK TABLES `course_overviews_courseoverviewimageconfig` WRITE; +/*!40000 ALTER TABLE `course_overviews_courseoverviewimageconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_overviews_courseoverviewimageconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_overviews_courseoverviewimageset` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_overviews_courseoverviewimageset` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `small_url` longtext NOT NULL, + `large_url` longtext NOT NULL, + `course_overview_id` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `course_overview_id` (`course_overview_id`), + CONSTRAINT `course_overviews_cou_course_overview_id_ef7aa548_fk_course_ov` FOREIGN KEY (`course_overview_id`) REFERENCES `course_overviews_courseoverview` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_overviews_courseoverviewimageset` +-- + +LOCK TABLES `course_overviews_courseoverviewimageset` WRITE; +/*!40000 ALTER TABLE `course_overviews_courseoverviewimageset` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_overviews_courseoverviewimageset` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_overviews_courseoverviewtab` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_overviews_courseoverviewtab` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `tab_id` varchar(50) NOT NULL, + `course_overview_id` varchar(255) NOT NULL, + `course_staff_only` tinyint(1) NOT NULL, + `name` longtext, + `type` varchar(50) DEFAULT NULL, + `url_slug` longtext, + `link` longtext, + `is_hidden` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + KEY `course_overviews_cou_course_overview_id_71fa6321_fk_course_ov` (`course_overview_id`), + CONSTRAINT `course_overviews_cou_course_overview_id_71fa6321_fk_course_ov` FOREIGN KEY (`course_overview_id`) REFERENCES `course_overviews_courseoverview` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_overviews_courseoverviewtab` +-- + +LOCK TABLES `course_overviews_courseoverviewtab` WRITE; +/*!40000 ALTER TABLE `course_overviews_courseoverviewtab` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_overviews_courseoverviewtab` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_overviews_historicalcourseoverview` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_overviews_historicalcourseoverview` ( + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `version` int(11) NOT NULL, + `id` varchar(255) NOT NULL, + `_location` varchar(255) NOT NULL, + `org` longtext NOT NULL, + `display_name` longtext, + `display_number_with_default` longtext NOT NULL, + `display_org_with_default` longtext NOT NULL, + `start` datetime(6) DEFAULT NULL, + `end` datetime(6) DEFAULT NULL, + `advertised_start` longtext, + `announcement` datetime(6) DEFAULT NULL, + `course_image_url` longtext NOT NULL, + `social_sharing_url` longtext, + `end_of_course_survey_url` longtext, + `certificates_display_behavior` longtext, + `certificates_show_before_end` tinyint(1) NOT NULL, + `cert_html_view_enabled` tinyint(1) NOT NULL, + `has_any_active_web_certificate` tinyint(1) NOT NULL, + `cert_name_short` longtext NOT NULL, + `cert_name_long` longtext NOT NULL, + `certificate_available_date` datetime(6) DEFAULT NULL, + `lowest_passing_grade` decimal(5,2) DEFAULT NULL, + `days_early_for_beta` double DEFAULT NULL, + `mobile_available` tinyint(1) NOT NULL, + `visible_to_staff_only` tinyint(1) NOT NULL, + `_pre_requisite_courses_json` longtext NOT NULL, + `enrollment_start` datetime(6) DEFAULT NULL, + `enrollment_end` datetime(6) DEFAULT NULL, + `enrollment_domain` longtext, + `invitation_only` tinyint(1) NOT NULL, + `max_student_enrollments_allowed` int(11) DEFAULT NULL, + `catalog_visibility` longtext, + `short_description` longtext, + `course_video_url` longtext, + `effort` longtext, + `self_paced` tinyint(1) NOT NULL, + `marketing_url` longtext, + `eligible_for_financial_aid` tinyint(1) NOT NULL, + `language` longtext, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `end_date` datetime(6) DEFAULT NULL, + `start_date` datetime(6) DEFAULT NULL, + `banner_image_url` longtext NOT NULL, + `has_highlights` tinyint(1) DEFAULT NULL, + `allow_proctoring_opt_out` tinyint(1) NOT NULL, + `enable_proctored_exams` tinyint(1) NOT NULL, + `proctoring_escalation_email` longtext, + `proctoring_provider` longtext, + `entrance_exam_enabled` tinyint(1) NOT NULL, + `entrance_exam_id` varchar(255) NOT NULL, + `entrance_exam_minimum_score_pct` double NOT NULL, + `external_id` varchar(128) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `course_overviews_his_history_user_id_e21063d9_fk_auth_user` (`history_user_id`), + KEY `course_overviews_historicalcourseoverview_id_647043f0` (`id`), + CONSTRAINT `course_overviews_his_history_user_id_e21063d9_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_overviews_historicalcourseoverview` +-- + +LOCK TABLES `course_overviews_historicalcourseoverview` WRITE; +/*!40000 ALTER TABLE `course_overviews_historicalcourseoverview` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_overviews_historicalcourseoverview` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `course_overviews_simulatecoursepublishconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_overviews_simulatecoursepublishconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `arguments` longtext NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `course_overviews_sim_changed_by_id_3413c118_fk_auth_user` (`changed_by_id`), + CONSTRAINT `course_overviews_sim_changed_by_id_3413c118_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `course_overviews_simulatecoursepublishconfig` +-- + +LOCK TABLES `course_overviews_simulatecoursepublishconfig` WRITE; +/*!40000 ALTER TABLE `course_overviews_simulatecoursepublishconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `course_overviews_simulatecoursepublishconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `courseware_coursedynamicupgradedeadlineconfiguration` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `courseware_coursedynamicupgradedeadlineconfiguration` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `course_id` varchar(255) NOT NULL, + `deadline_days` smallint(5) unsigned NOT NULL, + `opt_out` tinyint(1) NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `courseware_coursedyn_changed_by_id_2c4efc3a_fk_auth_user` (`changed_by_id`), + KEY `courseware_coursedynamicupg_course_id_60b88041` (`course_id`), + CONSTRAINT `courseware_coursedyn_changed_by_id_2c4efc3a_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `courseware_coursedynamicupgradedeadlineconfiguration` +-- + +LOCK TABLES `courseware_coursedynamicupgradedeadlineconfiguration` WRITE; +/*!40000 ALTER TABLE `courseware_coursedynamicupgradedeadlineconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `courseware_coursedynamicupgradedeadlineconfiguration` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `courseware_dynamicupgradedeadlineconfiguration` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `courseware_dynamicupgradedeadlineconfiguration` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `deadline_days` smallint(5) unsigned NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `courseware_dynamicup_changed_by_id_6a450e2c_fk_auth_user` (`changed_by_id`), + CONSTRAINT `courseware_dynamicup_changed_by_id_6a450e2c_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `courseware_dynamicupgradedeadlineconfiguration` +-- + +LOCK TABLES `courseware_dynamicupgradedeadlineconfiguration` WRITE; +/*!40000 ALTER TABLE `courseware_dynamicupgradedeadlineconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `courseware_dynamicupgradedeadlineconfiguration` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `courseware_financialassistanceconfiguration` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `courseware_financialassistanceconfiguration` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `api_base_url` varchar(200) NOT NULL, + `service_username` varchar(100) NOT NULL, + `fa_backend_enabled_courses_percentage` int(11) NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `courseware_financial_changed_by_id_acb152e5_fk_auth_user` (`changed_by_id`), + CONSTRAINT `courseware_financial_changed_by_id_acb152e5_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `courseware_financialassistanceconfiguration` +-- + +LOCK TABLES `courseware_financialassistanceconfiguration` WRITE; +/*!40000 ALTER TABLE `courseware_financialassistanceconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `courseware_financialassistanceconfiguration` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `courseware_lastseencoursewaretimezone` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `courseware_lastseencoursewaretimezone` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `last_seen_courseware_timezone` varchar(255) NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `user_id` (`user_id`), + KEY `courseware_lastseencoursewa_last_seen_courseware_timezo_39c8f549` (`last_seen_courseware_timezone`), + CONSTRAINT `courseware_lastseenc_user_id_b3deb845_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `courseware_lastseencoursewaretimezone` +-- + +LOCK TABLES `courseware_lastseencoursewaretimezone` WRITE; +/*!40000 ALTER TABLE `courseware_lastseencoursewaretimezone` DISABLE KEYS */; +/*!40000 ALTER TABLE `courseware_lastseencoursewaretimezone` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `courseware_offlinecomputedgrade` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `courseware_offlinecomputedgrade` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `course_id` varchar(255) NOT NULL, + `created` datetime(6) DEFAULT NULL, + `updated` datetime(6) NOT NULL, + `gradeset` longtext, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `courseware_offlinecomputedgrade_user_id_course_id_18dfd343_uniq` (`user_id`,`course_id`), + KEY `courseware_offlinecomputedgrade_course_id_03e21ba7` (`course_id`), + KEY `courseware_offlinecomputedgrade_created_b5bca47f` (`created`), + KEY `courseware_offlinecomputedgrade_updated_6f3faff6` (`updated`), + CONSTRAINT `courseware_offlinecomputedgrade_user_id_14864cea_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `courseware_offlinecomputedgrade` +-- + +LOCK TABLES `courseware_offlinecomputedgrade` WRITE; +/*!40000 ALTER TABLE `courseware_offlinecomputedgrade` DISABLE KEYS */; +/*!40000 ALTER TABLE `courseware_offlinecomputedgrade` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `courseware_offlinecomputedgradelog` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `courseware_offlinecomputedgradelog` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `course_id` varchar(255) NOT NULL, + `created` datetime(6) DEFAULT NULL, + `seconds` int(11) NOT NULL, + `nstudents` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `courseware_offlinecomputedgradelog_course_id_1014e127` (`course_id`), + KEY `courseware_offlinecomputedgradelog_created_33076a1a` (`created`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `courseware_offlinecomputedgradelog` +-- + +LOCK TABLES `courseware_offlinecomputedgradelog` WRITE; +/*!40000 ALTER TABLE `courseware_offlinecomputedgradelog` DISABLE KEYS */; +/*!40000 ALTER TABLE `courseware_offlinecomputedgradelog` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `courseware_orgdynamicupgradedeadlineconfiguration` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `courseware_orgdynamicupgradedeadlineconfiguration` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `org_id` varchar(255) NOT NULL, + `deadline_days` smallint(5) unsigned NOT NULL, + `opt_out` tinyint(1) NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `courseware_orgdynami_changed_by_id_b557a1ea_fk_auth_user` (`changed_by_id`), + KEY `courseware_orgdynamicupgrad_org_id_85d3cbe4` (`org_id`), + CONSTRAINT `courseware_orgdynami_changed_by_id_b557a1ea_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `courseware_orgdynamicupgradedeadlineconfiguration` +-- + +LOCK TABLES `courseware_orgdynamicupgradedeadlineconfiguration` WRITE; +/*!40000 ALTER TABLE `courseware_orgdynamicupgradedeadlineconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `courseware_orgdynamicupgradedeadlineconfiguration` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `courseware_studentfieldoverride` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `courseware_studentfieldoverride` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `course_id` varchar(255) NOT NULL, + `location` varchar(255) NOT NULL, + `field` varchar(255) NOT NULL, + `value` longtext NOT NULL, + `student_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `courseware_studentfieldo_course_id_field_location_a1f7da25_uniq` (`course_id`,`field`,`location`,`student_id`), + KEY `courseware_studentfi_student_id_7a972765_fk_auth_user` (`student_id`), + KEY `courseware_studentfieldoverride_course_id_7ca0051c` (`course_id`), + KEY `courseware_studentfieldoverride_location_95ad5047` (`location`), + CONSTRAINT `courseware_studentfi_student_id_7a972765_fk_auth_user` FOREIGN KEY (`student_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `courseware_studentfieldoverride` +-- + +LOCK TABLES `courseware_studentfieldoverride` WRITE; +/*!40000 ALTER TABLE `courseware_studentfieldoverride` DISABLE KEYS */; +/*!40000 ALTER TABLE `courseware_studentfieldoverride` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `courseware_studentmodule` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `courseware_studentmodule` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `module_type` varchar(32) NOT NULL, + `module_id` varchar(255) NOT NULL, + `course_id` varchar(255) NOT NULL, + `state` longtext, + `grade` double DEFAULT NULL, + `max_grade` double DEFAULT NULL, + `done` varchar(8) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `student_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `courseware_studentmodule_student_id_module_id_cou_48e8deef_uniq` (`student_id`,`module_id`,`course_id`), + KEY `courseware_studentmodule_module_type_f4f8863f` (`module_type`), + KEY `courseware_studentmodule_course_id_0637cb49` (`course_id`), + KEY `courseware_studentmodule_grade_adac1ba7` (`grade`), + KEY `courseware_studentmodule_created_9976b4ad` (`created`), + KEY `courseware_studentmodule_modified_f6a0b0cc` (`modified`), + KEY `courseware_stats` (`module_id`,`grade`,`student_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `courseware_studentmodule` +-- + +LOCK TABLES `courseware_studentmodule` WRITE; +/*!40000 ALTER TABLE `courseware_studentmodule` DISABLE KEYS */; +/*!40000 ALTER TABLE `courseware_studentmodule` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `courseware_studentmodulehistory` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `courseware_studentmodulehistory` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `version` varchar(255) DEFAULT NULL, + `created` datetime(6) NOT NULL, + `state` longtext, + `grade` double DEFAULT NULL, + `max_grade` double DEFAULT NULL, + `student_module_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `courseware_studentmo_student_module_id_6efc64cf_fk_coursewar` (`student_module_id`), + KEY `courseware_studentmodulehistory_version_d3823ad1` (`version`), + KEY `courseware_studentmodulehistory_created_19cb94d2` (`created`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `courseware_studentmodulehistory` +-- + +LOCK TABLES `courseware_studentmodulehistory` WRITE; +/*!40000 ALTER TABLE `courseware_studentmodulehistory` DISABLE KEYS */; +/*!40000 ALTER TABLE `courseware_studentmodulehistory` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `courseware_xmodulestudentinfofield` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `courseware_xmodulestudentinfofield` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `field_name` varchar(64) NOT NULL, + `value` longtext NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `student_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `courseware_xmodulestuden_student_id_field_name_2f3a4ee8_uniq` (`student_id`,`field_name`), + KEY `courseware_xmodulestudentinfofield_field_name_191b762e` (`field_name`), + KEY `courseware_xmodulestudentinfofield_created_beada63d` (`created`), + KEY `courseware_xmodulestudentinfofield_modified_b53f9c88` (`modified`), + CONSTRAINT `courseware_xmodulest_student_id_b78d39b4_fk_auth_user` FOREIGN KEY (`student_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `courseware_xmodulestudentinfofield` +-- + +LOCK TABLES `courseware_xmodulestudentinfofield` WRITE; +/*!40000 ALTER TABLE `courseware_xmodulestudentinfofield` DISABLE KEYS */; +/*!40000 ALTER TABLE `courseware_xmodulestudentinfofield` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `courseware_xmodulestudentprefsfield` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `courseware_xmodulestudentprefsfield` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `field_name` varchar(64) NOT NULL, + `value` longtext NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `module_type` varchar(64) NOT NULL, + `student_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `courseware_xmodulestuden_student_id_module_type_f_1c218850_uniq` (`student_id`,`module_type`,`field_name`), + KEY `courseware_xmodulestudentprefsfield_field_name_68d5e66e` (`field_name`), + KEY `courseware_xmodulestudentprefsfield_created_16090241` (`created`), + KEY `courseware_xmodulestudentprefsfield_modified_5b4e5525` (`modified`), + KEY `courseware_xmodulestudentprefsfield_module_type_45b994b9` (`module_type`), + CONSTRAINT `courseware_xmodulest_student_id_3c60ec8a_fk_auth_user` FOREIGN KEY (`student_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `courseware_xmodulestudentprefsfield` +-- + +LOCK TABLES `courseware_xmodulestudentprefsfield` WRITE; +/*!40000 ALTER TABLE `courseware_xmodulestudentprefsfield` DISABLE KEYS */; +/*!40000 ALTER TABLE `courseware_xmodulestudentprefsfield` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `courseware_xmoduleuserstatesummaryfield` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `courseware_xmoduleuserstatesummaryfield` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `field_name` varchar(64) NOT NULL, + `value` longtext NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `usage_id` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `courseware_xmoduleuserst_usage_id_field_name_e4e34c44_uniq` (`usage_id`,`field_name`), + KEY `courseware_xmoduleuserstatesummaryfield_field_name_395cd2a6` (`field_name`), + KEY `courseware_xmoduleuserstatesummaryfield_created_57d773a1` (`created`), + KEY `courseware_xmoduleuserstatesummaryfield_modified_b4277a5d` (`modified`), + KEY `courseware_xmoduleuserstatesummaryfield_usage_id_9f239d1f` (`usage_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `courseware_xmoduleuserstatesummaryfield` +-- + +LOCK TABLES `courseware_xmoduleuserstatesummaryfield` WRITE; +/*!40000 ALTER TABLE `courseware_xmoduleuserstatesummaryfield` DISABLE KEYS */; +/*!40000 ALTER TABLE `courseware_xmoduleuserstatesummaryfield` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `crawlers_crawlersconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `crawlers_crawlersconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `known_user_agents` longtext NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `crawlers_crawlersconfig_changed_by_id_544af924_fk_auth_user_id` (`changed_by_id`), + CONSTRAINT `crawlers_crawlersconfig_changed_by_id_544af924_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `crawlers_crawlersconfig` +-- + +LOCK TABLES `crawlers_crawlersconfig` WRITE; +/*!40000 ALTER TABLE `crawlers_crawlersconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `crawlers_crawlersconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `credentials_credentialsapiconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `credentials_credentialsapiconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `internal_service_url` varchar(200) NOT NULL, + `public_service_url` varchar(200) NOT NULL, + `enable_learner_issuance` tinyint(1) NOT NULL, + `enable_studio_authoring` tinyint(1) NOT NULL, + `cache_ttl` int(10) unsigned NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `credentials_credenti_changed_by_id_9e145a81_fk_auth_user` (`changed_by_id`), + CONSTRAINT `credentials_credenti_changed_by_id_9e145a81_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `credentials_credentialsapiconfig` +-- + +LOCK TABLES `credentials_credentialsapiconfig` WRITE; +/*!40000 ALTER TABLE `credentials_credentialsapiconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `credentials_credentialsapiconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `credentials_notifycredentialsconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `credentials_notifycredentialsconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `arguments` longtext NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `credentials_notifycr_changed_by_id_e31cde0e_fk_auth_user` (`changed_by_id`), + CONSTRAINT `credentials_notifycr_changed_by_id_e31cde0e_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `credentials_notifycredentialsconfig` +-- + +LOCK TABLES `credentials_notifycredentialsconfig` WRITE; +/*!40000 ALTER TABLE `credentials_notifycredentialsconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `credentials_notifycredentialsconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `credit_creditconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `credit_creditconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `cache_ttl` int(10) unsigned NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `credit_creditconfig_changed_by_id_72e1eca9_fk_auth_user_id` (`changed_by_id`), + CONSTRAINT `credit_creditconfig_changed_by_id_72e1eca9_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `credit_creditconfig` +-- + +LOCK TABLES `credit_creditconfig` WRITE; +/*!40000 ALTER TABLE `credit_creditconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `credit_creditconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `credit_creditcourse` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `credit_creditcourse` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `course_key` varchar(255) NOT NULL, + `enabled` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `course_key` (`course_key`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `credit_creditcourse` +-- + +LOCK TABLES `credit_creditcourse` WRITE; +/*!40000 ALTER TABLE `credit_creditcourse` DISABLE KEYS */; +/*!40000 ALTER TABLE `credit_creditcourse` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `credit_crediteligibility` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `credit_crediteligibility` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `username` varchar(255) NOT NULL, + `deadline` datetime(6) NOT NULL, + `course_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `credit_crediteligibility_username_course_id_7906b4c1_uniq` (`username`,`course_id`), + KEY `credit_crediteligibi_course_id_d86f481f_fk_credit_cr` (`course_id`), + KEY `credit_crediteligibility_username_4c275fb5` (`username`), + CONSTRAINT `credit_crediteligibi_course_id_d86f481f_fk_credit_cr` FOREIGN KEY (`course_id`) REFERENCES `credit_creditcourse` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `credit_crediteligibility` +-- + +LOCK TABLES `credit_crediteligibility` WRITE; +/*!40000 ALTER TABLE `credit_crediteligibility` DISABLE KEYS */; +/*!40000 ALTER TABLE `credit_crediteligibility` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `credit_creditprovider` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `credit_creditprovider` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `provider_id` varchar(255) NOT NULL, + `active` tinyint(1) NOT NULL, + `display_name` varchar(255) NOT NULL, + `enable_integration` tinyint(1) NOT NULL, + `provider_url` varchar(200) NOT NULL, + `provider_status_url` varchar(200) NOT NULL, + `provider_description` longtext NOT NULL, + `fulfillment_instructions` longtext, + `eligibility_email_message` longtext NOT NULL, + `receipt_email_message` longtext NOT NULL, + `thumbnail_url` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `provider_id` (`provider_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `credit_creditprovider` +-- + +LOCK TABLES `credit_creditprovider` WRITE; +/*!40000 ALTER TABLE `credit_creditprovider` DISABLE KEYS */; +/*!40000 ALTER TABLE `credit_creditprovider` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `credit_creditrequest` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `credit_creditrequest` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `uuid` varchar(32) NOT NULL, + `username` varchar(255) NOT NULL, + `parameters` longtext NOT NULL, + `status` varchar(255) NOT NULL, + `course_id` int(11) NOT NULL, + `provider_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `uuid` (`uuid`), + UNIQUE KEY `credit_creditrequest_username_course_id_provi_3b019afe_uniq` (`username`,`course_id`,`provider_id`), + KEY `credit_creditrequest_course_id_5478ceaf_fk_credit_cr` (`course_id`), + KEY `credit_creditrequest_provider_id_5465ab8b_fk_credit_cr` (`provider_id`), + KEY `credit_creditrequest_username_bd5623e4` (`username`), + CONSTRAINT `credit_creditrequest_course_id_5478ceaf_fk_credit_cr` FOREIGN KEY (`course_id`) REFERENCES `credit_creditcourse` (`id`), + CONSTRAINT `credit_creditrequest_provider_id_5465ab8b_fk_credit_cr` FOREIGN KEY (`provider_id`) REFERENCES `credit_creditprovider` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `credit_creditrequest` +-- + +LOCK TABLES `credit_creditrequest` WRITE; +/*!40000 ALTER TABLE `credit_creditrequest` DISABLE KEYS */; +/*!40000 ALTER TABLE `credit_creditrequest` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `credit_creditrequirement` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `credit_creditrequirement` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `namespace` varchar(255) NOT NULL, + `name` varchar(255) NOT NULL, + `display_name` varchar(255) NOT NULL, + `criteria` longtext NOT NULL, + `active` tinyint(1) NOT NULL, + `course_id` int(11) NOT NULL, + `sort_value` int(10) unsigned NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `credit_creditrequirement_namespace_name_course_id_87c301e6_uniq` (`namespace`,`name`,`course_id`), + KEY `credit_creditrequire_course_id_b6aa812a_fk_credit_cr` (`course_id`), + CONSTRAINT `credit_creditrequire_course_id_b6aa812a_fk_credit_cr` FOREIGN KEY (`course_id`) REFERENCES `credit_creditcourse` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `credit_creditrequirement` +-- + +LOCK TABLES `credit_creditrequirement` WRITE; +/*!40000 ALTER TABLE `credit_creditrequirement` DISABLE KEYS */; +/*!40000 ALTER TABLE `credit_creditrequirement` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `credit_creditrequirementstatus` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `credit_creditrequirementstatus` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `username` varchar(255) NOT NULL, + `status` varchar(32) NOT NULL, + `reason` longtext NOT NULL, + `requirement_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `credit_creditrequirement_username_requirement_id_f761eba5_uniq` (`username`,`requirement_id`), + KEY `credit_creditrequire_requirement_id_cde25c76_fk_credit_cr` (`requirement_id`), + KEY `credit_creditrequirementstatus_username_4c2511ed` (`username`), + CONSTRAINT `credit_creditrequire_requirement_id_cde25c76_fk_credit_cr` FOREIGN KEY (`requirement_id`) REFERENCES `credit_creditrequirement` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `credit_creditrequirementstatus` +-- + +LOCK TABLES `credit_creditrequirementstatus` WRITE; +/*!40000 ALTER TABLE `credit_creditrequirementstatus` DISABLE KEYS */; +/*!40000 ALTER TABLE `credit_creditrequirementstatus` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `dark_lang_darklangconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `dark_lang_darklangconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `released_languages` longtext NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + `beta_languages` longtext NOT NULL, + `enable_beta_languages` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + KEY `dark_lang_darklangconfig_changed_by_id_9a7df899_fk_auth_user_id` (`changed_by_id`), + CONSTRAINT `dark_lang_darklangconfig_changed_by_id_9a7df899_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `dark_lang_darklangconfig` +-- + +LOCK TABLES `dark_lang_darklangconfig` WRITE; +/*!40000 ALTER TABLE `dark_lang_darklangconfig` DISABLE KEYS */; +INSERT INTO `dark_lang_darklangconfig` VALUES (1,'2023-02-21 13:28:15.724018',1,'',NULL,'',0); +/*!40000 ALTER TABLE `dark_lang_darklangconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `degreed2_degreed2enterprisecustomerconfiguration` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `degreed2_degreed2enterprisecustomerconfiguration` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `idp_id` varchar(255) NOT NULL, + `active` tinyint(1) NOT NULL, + `transmission_chunk_size` int(11) NOT NULL, + `channel_worker_username` varchar(255) NOT NULL, + `catalogs_to_transmit` longtext NOT NULL, + `disable_learner_data_transmissions` tinyint(1) NOT NULL, + `client_id` varchar(255) NOT NULL, + `client_secret` varchar(255) NOT NULL, + `degreed_base_url` varchar(255) NOT NULL, + `degreed_token_fetch_base_url` varchar(255) NOT NULL, + `enterprise_customer_id` char(32) NOT NULL, + `display_name` varchar(255) NOT NULL, + `dry_run_mode_enabled` tinyint(1) NOT NULL, + `deleted_at` datetime(6) DEFAULT NULL, + `last_content_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_content_sync_errored_at` datetime(6) DEFAULT NULL, + `last_learner_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_learner_sync_errored_at` datetime(6) DEFAULT NULL, + `last_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_sync_errored_at` datetime(6) DEFAULT NULL, + `last_modified_at` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `contentserver_cdn_changed_by_id_36fe2b67b2c7f0ba_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `contentserver_cdn_changed_by_id_36fe2b67b2c7f0ba_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `degreed2_degreed2enterprise_enterprise_customer_id_93516183` (`enterprise_customer_id`), + CONSTRAINT `degreed2_degreed2ent_enterprise_customer__93516183_fk_enterpris` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `contentserver_cdnuseragentsconfig` +-- Dumping data for table `degreed2_degreed2enterprisecustomerconfiguration` -- -LOCK TABLES `contentserver_cdnuseragentsconfig` WRITE; -/*!40000 ALTER TABLE `contentserver_cdnuseragentsconfig` DISABLE KEYS */; -/*!40000 ALTER TABLE `contentserver_cdnuseragentsconfig` ENABLE KEYS */; +LOCK TABLES `degreed2_degreed2enterprisecustomerconfiguration` WRITE; +/*!40000 ALTER TABLE `degreed2_degreed2enterprisecustomerconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `degreed2_degreed2enterprisecustomerconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `contentserver_courseassetcachettlconfig` +-- Table structure for table `degreed2_degreed2learnerdatatransmissionaudit` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `contentserver_courseassetcachettlconfig` ( +CREATE TABLE `degreed2_degreed2learnerdatatransmissionaudit` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `degreed_user_email` varchar(255) NOT NULL, + `enterprise_course_enrollment_id` int(11) DEFAULT NULL, + `course_id` varchar(255) NOT NULL, + `degreed_completed_timestamp` varchar(19) DEFAULT NULL, + `status` varchar(100) DEFAULT NULL, + `error_message` longtext, + `created` datetime(6) NOT NULL, + `course_completed` tinyint(1) NOT NULL, + `enterprise_customer_uuid` char(32) DEFAULT NULL, + `grade` double DEFAULT NULL, + `instructor_name` varchar(255) NOT NULL, + `modified` datetime(6) NOT NULL, + `plugin_configuration_id` int(11) DEFAULT NULL, + `total_hours` double DEFAULT NULL, + `subsection_id` varchar(255) DEFAULT NULL, + `subsection_name` varchar(255) DEFAULT NULL, + `friendly_status_message` varchar(255) DEFAULT NULL, + `api_record_id` int(11) DEFAULT NULL, + `content_title` varchar(255) DEFAULT NULL, + `progress_status` varchar(255) NOT NULL, + `user_email` varchar(255) DEFAULT NULL, + `completed_timestamp` datetime(6) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `api_record_id` (`api_record_id`), + KEY `degreed2_degreed2learnerdat_enterprise_course_enrollmen_c093fa2b` (`enterprise_course_enrollment_id`), + KEY `degreed2_degreed2learnerdat_subsection_id_b8501613` (`subsection_id`), + KEY `degreed2_dldta_85936b55_idx` (`enterprise_customer_uuid`,`plugin_configuration_id`), + CONSTRAINT `degreed2_degreed2lea_api_record_id_0d632eab_fk_integrate` FOREIGN KEY (`api_record_id`) REFERENCES `integrated_channel_apiresponserecord` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `degreed2_degreed2learnerdatatransmissionaudit` +-- + +LOCK TABLES `degreed2_degreed2learnerdatatransmissionaudit` WRITE; +/*!40000 ALTER TABLE `degreed2_degreed2learnerdatatransmissionaudit` DISABLE KEYS */; +/*!40000 ALTER TABLE `degreed2_degreed2learnerdatatransmissionaudit` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `degreed2_historicaldegreed2enterprisecustomerconfiguration` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `degreed2_historicaldegreed2enterprisecustomerconfiguration` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `idp_id` varchar(255) NOT NULL, + `active` tinyint(1) NOT NULL, + `transmission_chunk_size` int(11) NOT NULL, + `channel_worker_username` varchar(255) NOT NULL, + `catalogs_to_transmit` longtext NOT NULL, + `disable_learner_data_transmissions` tinyint(1) NOT NULL, + `client_id` varchar(255) NOT NULL, + `client_secret` varchar(255) NOT NULL, + `degreed_base_url` varchar(255) NOT NULL, + `degreed_token_fetch_base_url` varchar(255) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `enterprise_customer_id` char(32) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `display_name` varchar(255) NOT NULL, + `dry_run_mode_enabled` tinyint(1) NOT NULL, + `deleted_at` datetime(6) DEFAULT NULL, + `last_content_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_content_sync_errored_at` datetime(6) DEFAULT NULL, + `last_learner_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_learner_sync_errored_at` datetime(6) DEFAULT NULL, + `last_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_sync_errored_at` datetime(6) DEFAULT NULL, + `last_modified_at` datetime(6) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `degreed2_historicald_history_user_id_35a20f8c_fk_auth_user` (`history_user_id`), + KEY `degreed2_historicaldegreed2_id_4a50fac9` (`id`), + KEY `degreed2_historicaldegreed2_enterprise_customer_id_513db5d3` (`enterprise_customer_id`), + CONSTRAINT `degreed2_historicald_history_user_id_35a20f8c_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `degreed2_historicaldegreed2enterprisecustomerconfiguration` +-- + +LOCK TABLES `degreed2_historicaldegreed2enterprisecustomerconfiguration` WRITE; +/*!40000 ALTER TABLE `degreed2_historicaldegreed2enterprisecustomerconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `degreed2_historicaldegreed2enterprisecustomerconfiguration` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `degreed_degreedenterprisecustomerconfiguration` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `degreed_degreedenterprisecustomerconfiguration` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `active` tinyint(1) NOT NULL, + `key` varchar(255) NOT NULL, + `secret` varchar(255) NOT NULL, + `degreed_company_id` varchar(255) NOT NULL, + `enterprise_customer_id` char(32) NOT NULL, + `transmission_chunk_size` int(11) NOT NULL, + `degreed_base_url` varchar(255) NOT NULL, + `degreed_user_id` varchar(255) NOT NULL, + `degreed_user_password` varchar(255) NOT NULL, + `provider_id` varchar(100) NOT NULL, + `channel_worker_username` varchar(255) NOT NULL, + `catalogs_to_transmit` longtext NOT NULL, + `idp_id` varchar(255) NOT NULL, + `disable_learner_data_transmissions` tinyint(1) NOT NULL, + `display_name` varchar(255) NOT NULL, + `dry_run_mode_enabled` tinyint(1) NOT NULL, + `deleted_at` datetime(6) DEFAULT NULL, + `last_content_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_content_sync_errored_at` datetime(6) DEFAULT NULL, + `last_learner_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_learner_sync_errored_at` datetime(6) DEFAULT NULL, + `last_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_sync_errored_at` datetime(6) DEFAULT NULL, + `last_modified_at` datetime(6) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `degreed_degreedenterprisecu_enterprise_customer_id_86f16a0d` (`enterprise_customer_id`), + CONSTRAINT `degreed_degreedenter_enterprise_customer__86f16a0d_fk_enterpris` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `degreed_degreedenterprisecustomerconfiguration` +-- + +LOCK TABLES `degreed_degreedenterprisecustomerconfiguration` WRITE; +/*!40000 ALTER TABLE `degreed_degreedenterprisecustomerconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `degreed_degreedenterprisecustomerconfiguration` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `degreed_degreedglobalconfiguration` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `degreed_degreedglobalconfiguration` ( `id` int(11) NOT NULL AUTO_INCREMENT, `change_date` datetime(6) NOT NULL, `enabled` tinyint(1) NOT NULL, - `cache_ttl` int(10) unsigned NOT NULL, + `completion_status_api_path` varchar(255) NOT NULL, + `course_api_path` varchar(255) NOT NULL, + `oauth_api_path` varchar(255) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `contentserver_cou_changed_by_id_3b5e5ff6c6df495d_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `contentserver_cou_changed_by_id_3b5e5ff6c6df495d_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `degreed_degreedgloba_changed_by_id_00a8a7be_fk_auth_user` (`changed_by_id`), + CONSTRAINT `degreed_degreedgloba_changed_by_id_00a8a7be_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `contentserver_courseassetcachettlconfig` +-- Dumping data for table `degreed_degreedglobalconfiguration` -- -LOCK TABLES `contentserver_courseassetcachettlconfig` WRITE; -/*!40000 ALTER TABLE `contentserver_courseassetcachettlconfig` DISABLE KEYS */; -/*!40000 ALTER TABLE `contentserver_courseassetcachettlconfig` ENABLE KEYS */; +LOCK TABLES `degreed_degreedglobalconfiguration` WRITE; +/*!40000 ALTER TABLE `degreed_degreedglobalconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `degreed_degreedglobalconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `contentstore_coursenewassetspageflag` +-- Table structure for table `degreed_degreedlearnerdatatransmissionaudit` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `contentstore_coursenewassetspageflag` ( +CREATE TABLE `degreed_degreedlearnerdatatransmissionaudit` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, + `degreed_user_email` varchar(255) NOT NULL, + `enterprise_course_enrollment_id` int(11) DEFAULT NULL, `course_id` varchar(255) NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, + `course_completed` tinyint(1) NOT NULL, + `degreed_completed_timestamp` varchar(10) DEFAULT NULL, + `status` varchar(100) DEFAULT NULL, + `error_message` longtext, + `created` datetime(6) NOT NULL, + `enterprise_customer_uuid` char(32) DEFAULT NULL, + `grade` double DEFAULT NULL, + `instructor_name` varchar(255) NOT NULL, + `modified` datetime(6) NOT NULL, + `plugin_configuration_id` int(11) DEFAULT NULL, + `total_hours` double DEFAULT NULL, + `subsection_id` varchar(255) DEFAULT NULL, + `subsection_name` varchar(255) DEFAULT NULL, + `friendly_status_message` varchar(255) DEFAULT NULL, + `api_record_id` int(11) DEFAULT NULL, + `content_title` varchar(255) DEFAULT NULL, + `progress_status` varchar(255) NOT NULL, + `user_email` varchar(255) DEFAULT NULL, + `completed_timestamp` datetime(6) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `api_record_id` (`api_record_id`), + KEY `degreed_degreedlearnerdatat_enterprise_course_enrollmen_2b4fe278` (`enterprise_course_enrollment_id`), + KEY `degreed_degreedlearnerdatat_subsection_id_17780106` (`subsection_id`), + KEY `degreed_dldta_85936b55_idx` (`enterprise_customer_uuid`,`plugin_configuration_id`), + CONSTRAINT `degreed_degreedlearn_api_record_id_670a6fb9_fk_integrate` FOREIGN KEY (`api_record_id`) REFERENCES `integrated_channel_apiresponserecord` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `degreed_degreedlearnerdatatransmissionaudit` +-- + +LOCK TABLES `degreed_degreedlearnerdatatransmissionaudit` WRITE; +/*!40000 ALTER TABLE `degreed_degreedlearnerdatatransmissionaudit` DISABLE KEYS */; +/*!40000 ALTER TABLE `degreed_degreedlearnerdatatransmissionaudit` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `degreed_historicaldegreedenterprisecustomerconfiguration` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `degreed_historicaldegreedenterprisecustomerconfiguration` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `active` tinyint(1) NOT NULL, + `key` varchar(255) NOT NULL, + `secret` varchar(255) NOT NULL, + `degreed_company_id` varchar(255) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `enterprise_customer_id` char(32) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `transmission_chunk_size` int(11) NOT NULL, + `degreed_base_url` varchar(255) NOT NULL, + `degreed_user_id` varchar(255) NOT NULL, + `degreed_user_password` varchar(255) NOT NULL, + `provider_id` varchar(100) NOT NULL, + `channel_worker_username` varchar(255) NOT NULL, + `catalogs_to_transmit` longtext NOT NULL, + `idp_id` varchar(255) NOT NULL, + `disable_learner_data_transmissions` tinyint(1) NOT NULL, + `display_name` varchar(255) NOT NULL, + `dry_run_mode_enabled` tinyint(1) NOT NULL, + `deleted_at` datetime(6) DEFAULT NULL, + `last_content_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_content_sync_errored_at` datetime(6) DEFAULT NULL, + `last_learner_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_learner_sync_errored_at` datetime(6) DEFAULT NULL, + `last_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_sync_errored_at` datetime(6) DEFAULT NULL, + `last_modified_at` datetime(6) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `degreed_historicalde_history_user_id_5b4776d8_fk_auth_user` (`history_user_id`), + KEY `degreed_historicaldegreeden_id_756f1445` (`id`), + KEY `degreed_historicaldegreeden_enterprise_customer_id_12129e6f` (`enterprise_customer_id`), + CONSTRAINT `degreed_historicalde_history_user_id_5b4776d8_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `degreed_historicaldegreedenterprisecustomerconfiguration` +-- + +LOCK TABLES `degreed_historicaldegreedenterprisecustomerconfiguration` WRITE; +/*!40000 ALTER TABLE `degreed_historicaldegreedenterprisecustomerconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `degreed_historicaldegreedenterprisecustomerconfiguration` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `demographics_historicaluserdemographics` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `demographics_historicaluserdemographics` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `show_call_to_action` tinyint(1) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `demographics_histori_history_user_id_a05d5af3_fk_auth_user` (`history_user_id`), + KEY `demographics_historicaluserdemographics_id_7a2d6c8f` (`id`), + KEY `demographics_historicaluserdemographics_user_id_4fb8f26b` (`user_id`), + CONSTRAINT `demographics_histori_history_user_id_a05d5af3_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `demographics_historicaluserdemographics` +-- + +LOCK TABLES `demographics_historicaluserdemographics` WRITE; +/*!40000 ALTER TABLE `demographics_historicaluserdemographics` DISABLE KEYS */; +/*!40000 ALTER TABLE `demographics_historicaluserdemographics` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `demographics_userdemographics` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `demographics_userdemographics` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `show_call_to_action` tinyint(1) NOT NULL, + `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `contentstore_cours_changed_by_id_649924e37af184c_fk_auth_user_id` (`changed_by_id`), - KEY `contentstore_coursenewassetspageflag_ea134da7` (`course_id`), - CONSTRAINT `contentstore_cours_changed_by_id_649924e37af184c_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `demographics_userdemographics_user_id_e435d5d5_uniq` (`user_id`), + CONSTRAINT `demographics_userdemographics_user_id_e435d5d5_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `contentstore_coursenewassetspageflag` +-- Dumping data for table `demographics_userdemographics` -- -LOCK TABLES `contentstore_coursenewassetspageflag` WRITE; -/*!40000 ALTER TABLE `contentstore_coursenewassetspageflag` DISABLE KEYS */; -/*!40000 ALTER TABLE `contentstore_coursenewassetspageflag` ENABLE KEYS */; +LOCK TABLES `demographics_userdemographics` WRITE; +/*!40000 ALTER TABLE `demographics_userdemographics` DISABLE KEYS */; +/*!40000 ALTER TABLE `demographics_userdemographics` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `contentstore_newassetspageflag` +-- Table structure for table `discounts_discountpercentageconfig` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `contentstore_newassetspageflag` ( +CREATE TABLE `discounts_discountpercentageconfig` ( `id` int(11) NOT NULL AUTO_INCREMENT, `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `enabled_for_all_courses` tinyint(1) NOT NULL, + `enabled` tinyint(1) DEFAULT NULL, + `org` varchar(255) DEFAULT NULL, + `org_course` varchar(255) DEFAULT NULL, + `percentage` int(10) unsigned NOT NULL, `changed_by_id` int(11) DEFAULT NULL, + `course_id` varchar(255) DEFAULT NULL, + `site_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `contentstore_newa_changed_by_id_30fcd15e7b674dbb_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `contentstore_newa_changed_by_id_30fcd15e7b674dbb_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `discounts_d_site_id_f87020_idx` (`site_id`,`org`,`course_id`), + KEY `discounts_d_site_id_9fe8d6_idx` (`site_id`,`org`,`org_course`,`course_id`), + KEY `discounts_discountpe_changed_by_id_b00d7aa3_fk_auth_user` (`changed_by_id`), + KEY `discounts_discountpe_course_id_19913d92_fk_course_ov` (`course_id`), + KEY `discounts_discountpercentageconfig_org_294e22dd` (`org`), + KEY `discounts_discountpercentageconfig_org_course_31d0939e` (`org_course`), + CONSTRAINT `discounts_discountpe_changed_by_id_b00d7aa3_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `discounts_discountpe_course_id_19913d92_fk_course_ov` FOREIGN KEY (`course_id`) REFERENCES `course_overviews_courseoverview` (`id`), + CONSTRAINT `discounts_discountpe_site_id_b103a2af_fk_django_si` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `contentstore_newassetspageflag` +-- Dumping data for table `discounts_discountpercentageconfig` -- -LOCK TABLES `contentstore_newassetspageflag` WRITE; -/*!40000 ALTER TABLE `contentstore_newassetspageflag` DISABLE KEYS */; -/*!40000 ALTER TABLE `contentstore_newassetspageflag` ENABLE KEYS */; +LOCK TABLES `discounts_discountpercentageconfig` WRITE; +/*!40000 ALTER TABLE `discounts_discountpercentageconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `discounts_discountpercentageconfig` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `contentstore_pushnotificationconfig` +-- Table structure for table `discounts_discountrestrictionconfig` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `contentstore_pushnotificationconfig` ( +CREATE TABLE `discounts_discountrestrictionconfig` ( `id` int(11) NOT NULL AUTO_INCREMENT, `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, + `enabled` tinyint(1) DEFAULT NULL, + `org` varchar(255) DEFAULT NULL, + `org_course` varchar(255) DEFAULT NULL, + `disabled` tinyint(1) DEFAULT NULL, `changed_by_id` int(11) DEFAULT NULL, + `course_id` varchar(255) DEFAULT NULL, + `site_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `contentstore_push_changed_by_id_72c47af098f7f8b1_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `contentstore_push_changed_by_id_72c47af098f7f8b1_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `discounts_d_site_id_d67da3_idx` (`site_id`,`org`,`course_id`), + KEY `discounts_d_site_id_f83727_idx` (`site_id`,`org`,`org_course`,`course_id`), + KEY `discounts_discountre_changed_by_id_f18a5c1b_fk_auth_user` (`changed_by_id`), + KEY `discounts_discountre_course_id_d7f6674b_fk_course_ov` (`course_id`), + KEY `discounts_discountrestrictionconfig_org_010f786f` (`org`), + KEY `discounts_discountrestrictionconfig_org_course_bb36b3cd` (`org_course`), + CONSTRAINT `discounts_discountre_changed_by_id_f18a5c1b_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `discounts_discountre_course_id_d7f6674b_fk_course_ov` FOREIGN KEY (`course_id`) REFERENCES `course_overviews_courseoverview` (`id`), + CONSTRAINT `discounts_discountre_site_id_3f4c1be6_fk_django_si` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `discounts_discountrestrictionconfig` +-- + +LOCK TABLES `discounts_discountrestrictionconfig` WRITE; +/*!40000 ALTER TABLE `discounts_discountrestrictionconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `discounts_discountrestrictionconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `discussions_discussionsconfiguration` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `discussions_discussionsconfiguration` ( + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `context_key` varchar(255) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `plugin_configuration` longtext NOT NULL, + `provider_type` varchar(100) NOT NULL, + `lti_configuration_id` int(11) DEFAULT NULL, + `enable_graded_units` tinyint(1) NOT NULL, + `enable_in_context` tinyint(1) NOT NULL, + `unit_level_visibility` tinyint(1) NOT NULL, + PRIMARY KEY (`context_key`), + KEY `discussions_discussi_lti_configuration_id_7088d266_fk_lti_consu` (`lti_configuration_id`), + CONSTRAINT `discussions_discussi_lti_configuration_id_7088d266_fk_lti_consu` FOREIGN KEY (`lti_configuration_id`) REFERENCES `lti_consumer_lticonfiguration` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `contentstore_pushnotificationconfig` +-- Dumping data for table `discussions_discussionsconfiguration` -- -LOCK TABLES `contentstore_pushnotificationconfig` WRITE; -/*!40000 ALTER TABLE `contentstore_pushnotificationconfig` DISABLE KEYS */; -/*!40000 ALTER TABLE `contentstore_pushnotificationconfig` ENABLE KEYS */; +LOCK TABLES `discussions_discussionsconfiguration` WRITE; +/*!40000 ALTER TABLE `discussions_discussionsconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `discussions_discussionsconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `contentstore_videouploadconfig` +-- Table structure for table `discussions_discussiontopiclink` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `contentstore_videouploadconfig` ( +CREATE TABLE `discussions_discussiontopiclink` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `profile_whitelist` longtext NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, + `context_key` varchar(255) NOT NULL, + `usage_key` varchar(255) DEFAULT NULL, + `title` varchar(255) NOT NULL, + `provider_id` varchar(32) NOT NULL, + `external_id` varchar(255) NOT NULL, + `enabled_in_context` tinyint(1) NOT NULL, + `group_id` int(11) DEFAULT NULL, + `ordering` int(10) unsigned DEFAULT NULL, + `context` json NOT NULL, PRIMARY KEY (`id`), - KEY `contentstore_vide_changed_by_id_17a489d0a46d9a4b_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `contentstore_vide_changed_by_id_17a489d0a46d9a4b_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `discussions_discussi_group_id_2f8afa34_fk_course_gr` (`group_id`), + KEY `discussions_discussiontopiclink_context_key_07c00652` (`context_key`), + KEY `discussions_discussiontopiclink_usage_key_ea381cf9` (`usage_key`), + KEY `discussions_discussiontopiclink_external_id_719d30fc` (`external_id`), + CONSTRAINT `discussions_discussi_group_id_2f8afa34_fk_course_gr` FOREIGN KEY (`group_id`) REFERENCES `course_groups_courseusergroup` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `contentstore_videouploadconfig` +-- Dumping data for table `discussions_discussiontopiclink` -- -LOCK TABLES `contentstore_videouploadconfig` WRITE; -/*!40000 ALTER TABLE `contentstore_videouploadconfig` DISABLE KEYS */; -/*!40000 ALTER TABLE `contentstore_videouploadconfig` ENABLE KEYS */; +LOCK TABLES `discussions_discussiontopiclink` WRITE; +/*!40000 ALTER TABLE `discussions_discussiontopiclink` DISABLE KEYS */; +/*!40000 ALTER TABLE `discussions_discussiontopiclink` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `cors_csrf_xdomainproxyconfiguration` +-- Table structure for table `discussions_historicaldiscussionsconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `cors_csrf_xdomainproxyconfiguration` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, +CREATE TABLE `discussions_historicaldiscussionsconfiguration` ( + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `context_key` varchar(255) NOT NULL, `enabled` tinyint(1) NOT NULL, - `whitelist` longtext NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `cors_csrf_xdomain_changed_by_id_31e52cd1bcef52c4_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `cors_csrf_xdomain_changed_by_id_31e52cd1bcef52c4_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + `plugin_configuration` longtext NOT NULL, + `provider_type` varchar(100) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `lti_configuration_id` int(11) DEFAULT NULL, + `enable_graded_units` tinyint(1) NOT NULL, + `enable_in_context` tinyint(1) NOT NULL, + `unit_level_visibility` tinyint(1) NOT NULL, + PRIMARY KEY (`history_id`), + KEY `discussions_historic_history_user_id_df7ddb62_fk_auth_user` (`history_user_id`), + KEY `discussions_historicaldiscu_context_key_7c3bca39` (`context_key`), + KEY `discussions_historicaldiscu_lti_configuration_id_a6693472` (`lti_configuration_id`), + CONSTRAINT `discussions_historic_history_user_id_df7ddb62_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `cors_csrf_xdomainproxyconfiguration` +-- Dumping data for table `discussions_historicaldiscussionsconfiguration` -- -LOCK TABLES `cors_csrf_xdomainproxyconfiguration` WRITE; -/*!40000 ALTER TABLE `cors_csrf_xdomainproxyconfiguration` DISABLE KEYS */; -/*!40000 ALTER TABLE `cors_csrf_xdomainproxyconfiguration` ENABLE KEYS */; +LOCK TABLES `discussions_historicaldiscussionsconfiguration` WRITE; +/*!40000 ALTER TABLE `discussions_historicaldiscussionsconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `discussions_historicaldiscussionsconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `corsheaders_corsmodel` +-- Table structure for table `discussions_providerfilter` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `corsheaders_corsmodel` ( +CREATE TABLE `discussions_providerfilter` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `cors` varchar(255) NOT NULL, - PRIMARY KEY (`id`) + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) DEFAULT NULL, + `org` varchar(255) DEFAULT NULL, + `org_course` varchar(255) DEFAULT NULL, + `allow` varchar(63) NOT NULL, + `deny` varchar(63) NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + `course_id` varchar(255) DEFAULT NULL, + `site_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `discussions_site_id_48e4b2_idx` (`site_id`,`org`,`course_id`), + KEY `discussions_site_id_0f23d5_idx` (`site_id`,`org`,`org_course`,`course_id`), + KEY `discussions_provider_changed_by_id_771ce4d3_fk_auth_user` (`changed_by_id`), + KEY `discussions_provider_course_id_7b7d915c_fk_course_ov` (`course_id`), + KEY `discussions_providerfilter_org_c5365456` (`org`), + KEY `discussions_providerfilter_org_course_7b77bd87` (`org_course`), + CONSTRAINT `discussions_provider_changed_by_id_771ce4d3_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `discussions_provider_course_id_7b7d915c_fk_course_ov` FOREIGN KEY (`course_id`) REFERENCES `course_overviews_courseoverview` (`id`), + CONSTRAINT `discussions_providerfilter_site_id_9c77a203_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `corsheaders_corsmodel` +-- Dumping data for table `discussions_providerfilter` -- -LOCK TABLES `corsheaders_corsmodel` WRITE; -/*!40000 ALTER TABLE `corsheaders_corsmodel` DISABLE KEYS */; -/*!40000 ALTER TABLE `corsheaders_corsmodel` ENABLE KEYS */; +LOCK TABLES `discussions_providerfilter` WRITE; +/*!40000 ALTER TABLE `discussions_providerfilter` DISABLE KEYS */; +/*!40000 ALTER TABLE `discussions_providerfilter` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `course_action_state_coursererunstate` +-- Table structure for table `django_admin_log` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `course_action_state_coursererunstate` ( +CREATE TABLE `django_admin_log` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `created_time` datetime(6) NOT NULL, - `updated_time` datetime(6) NOT NULL, - `course_key` varchar(255) NOT NULL, - `action` varchar(100) NOT NULL, - `state` varchar(50) NOT NULL, - `should_display` tinyint(1) NOT NULL, - `message` varchar(1000) NOT NULL, - `source_course_key` varchar(255) NOT NULL, - `display_name` varchar(255) NOT NULL, - `created_user_id` int(11) DEFAULT NULL, - `updated_user_id` int(11) DEFAULT NULL, + `action_time` datetime(6) NOT NULL, + `object_id` longtext, + `object_repr` varchar(200) NOT NULL, + `action_flag` smallint(5) unsigned NOT NULL, + `change_message` longtext NOT NULL, + `content_type_id` int(11) DEFAULT NULL, + `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `course_action_state_coursereruns_course_key_cf5da77ed3032d6_uniq` (`course_key`,`action`), - KEY `course_action_s_created_user_id_7f53088ef8dccd0b_fk_auth_user_id` (`created_user_id`), - KEY `course_action_s_updated_user_id_4fab18012332c9a4_fk_auth_user_id` (`updated_user_id`), - KEY `course_action_state_coursererunstate_c8235886` (`course_key`), - KEY `course_action_state_coursererunstate_418c5509` (`action`), - KEY `course_action_state_coursererunstate_a9bd7343` (`source_course_key`), - CONSTRAINT `course_action_s_created_user_id_7f53088ef8dccd0b_fk_auth_user_id` FOREIGN KEY (`created_user_id`) REFERENCES `auth_user` (`id`), - CONSTRAINT `course_action_s_updated_user_id_4fab18012332c9a4_fk_auth_user_id` FOREIGN KEY (`updated_user_id`) REFERENCES `auth_user` (`id`) + KEY `django_admin_log_content_type_id_c4bce8eb_fk_django_co` (`content_type_id`), + KEY `django_admin_log_user_id_c564eba6_fk_auth_user_id` (`user_id`), + CONSTRAINT `django_admin_log_content_type_id_c4bce8eb_fk_django_co` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`), + CONSTRAINT `django_admin_log_user_id_c564eba6_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `course_action_state_coursererunstate` +-- Dumping data for table `django_admin_log` -- -LOCK TABLES `course_action_state_coursererunstate` WRITE; -/*!40000 ALTER TABLE `course_action_state_coursererunstate` DISABLE KEYS */; -/*!40000 ALTER TABLE `course_action_state_coursererunstate` ENABLE KEYS */; +LOCK TABLES `django_admin_log` WRITE; +/*!40000 ALTER TABLE `django_admin_log` DISABLE KEYS */; +/*!40000 ALTER TABLE `django_admin_log` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `course_creators_coursecreator` +-- Table structure for table `django_celery_results_chordcounter` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `course_creators_coursecreator` ( +CREATE TABLE `django_celery_results_chordcounter` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `state_changed` datetime(6) NOT NULL, - `state` varchar(24) NOT NULL, - `note` varchar(512) NOT NULL, - `user_id` int(11) NOT NULL, + `group_id` varchar(255) NOT NULL, + `sub_tasks` longtext NOT NULL, + `count` int(10) unsigned NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `user_id` (`user_id`), - CONSTRAINT `course_creators_coursec_user_id_46ea06ad28f0be3b_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `group_id` (`group_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `course_creators_coursecreator` +-- Dumping data for table `django_celery_results_chordcounter` -- -LOCK TABLES `course_creators_coursecreator` WRITE; -/*!40000 ALTER TABLE `course_creators_coursecreator` DISABLE KEYS */; -/*!40000 ALTER TABLE `course_creators_coursecreator` ENABLE KEYS */; +LOCK TABLES `django_celery_results_chordcounter` WRITE; +/*!40000 ALTER TABLE `django_celery_results_chordcounter` DISABLE KEYS */; +/*!40000 ALTER TABLE `django_celery_results_chordcounter` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `course_goals_coursegoal` +-- Table structure for table `django_celery_results_groupresult` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `course_goals_coursegoal` ( +CREATE TABLE `django_celery_results_groupresult` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `course_key` varchar(255) NOT NULL, - `goal_key` varchar(100) NOT NULL, - `user_id` int(11) NOT NULL, + `group_id` varchar(255) NOT NULL, + `date_created` datetime(6) NOT NULL, + `date_done` datetime(6) NOT NULL, + `content_type` varchar(128) NOT NULL, + `content_encoding` varchar(64) NOT NULL, + `result` longtext, PRIMARY KEY (`id`), - UNIQUE KEY `course_goals_coursegoal_user_id_7b4ac74987215807_uniq` (`user_id`,`course_key`), - KEY `course_goals_coursegoal_c8235886` (`course_key`), - CONSTRAINT `course_goals_coursegoal_user_id_49a6194cb5f88933_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `group_id` (`group_id`), + KEY `django_cele_date_cr_bd6c1d_idx` (`date_created`), + KEY `django_cele_date_do_caae0e_idx` (`date_done`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `course_goals_coursegoal` +-- Dumping data for table `django_celery_results_groupresult` -- -LOCK TABLES `course_goals_coursegoal` WRITE; -/*!40000 ALTER TABLE `course_goals_coursegoal` DISABLE KEYS */; -/*!40000 ALTER TABLE `course_goals_coursegoal` ENABLE KEYS */; +LOCK TABLES `django_celery_results_groupresult` WRITE; +/*!40000 ALTER TABLE `django_celery_results_groupresult` DISABLE KEYS */; +/*!40000 ALTER TABLE `django_celery_results_groupresult` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `course_groups_cohortmembership` +-- Table structure for table `django_celery_results_taskresult` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `course_groups_cohortmembership` ( +CREATE TABLE `django_celery_results_taskresult` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `course_id` varchar(255) NOT NULL, - `course_user_group_id` int(11) NOT NULL, - `user_id` int(11) NOT NULL, + `task_id` varchar(255) NOT NULL, + `status` varchar(50) NOT NULL, + `content_type` varchar(128) NOT NULL, + `content_encoding` varchar(64) NOT NULL, + `result` longtext, + `date_done` datetime(6) NOT NULL, + `traceback` longtext, + `meta` longtext, + `task_args` longtext, + `task_kwargs` longtext, + `task_name` varchar(255) DEFAULT NULL, + `worker` varchar(100) DEFAULT NULL, + `date_created` datetime(6) NOT NULL, + `periodic_task_name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `course_groups_cohortmembership_user_id_395bddd0389ed7da_uniq` (`user_id`,`course_id`), - KEY `course_groups_cohortmembership_6e438ee3` (`course_user_group_id`), - KEY `course_groups_cohortmembership_e8701ad4` (`user_id`), - CONSTRAINT `D004e77c965054d46217a8bd48bcaec8` FOREIGN KEY (`course_user_group_id`) REFERENCES `course_groups_courseusergroup` (`id`), - CONSTRAINT `course_groups_cohortmem_user_id_15d408bf736398bf_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `task_id` (`task_id`), + KEY `django_cele_task_na_08aec9_idx` (`task_name`), + KEY `django_cele_status_9b6201_idx` (`status`), + KEY `django_cele_worker_d54dd8_idx` (`worker`), + KEY `django_cele_date_cr_f04a50_idx` (`date_created`), + KEY `django_cele_date_do_f59aad_idx` (`date_done`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `course_groups_cohortmembership` +-- Dumping data for table `django_celery_results_taskresult` -- -LOCK TABLES `course_groups_cohortmembership` WRITE; -/*!40000 ALTER TABLE `course_groups_cohortmembership` DISABLE KEYS */; -/*!40000 ALTER TABLE `course_groups_cohortmembership` ENABLE KEYS */; +LOCK TABLES `django_celery_results_taskresult` WRITE; +/*!40000 ALTER TABLE `django_celery_results_taskresult` DISABLE KEYS */; +/*!40000 ALTER TABLE `django_celery_results_taskresult` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `course_groups_coursecohort` +-- Table structure for table `django_comment_client_permission` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `course_groups_coursecohort` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `assignment_type` varchar(20) NOT NULL, - `course_user_group_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `course_user_group_id` (`course_user_group_id`), - CONSTRAINT `D339c347a8fab561c2e92ea09f250df8` FOREIGN KEY (`course_user_group_id`) REFERENCES `course_groups_courseusergroup` (`id`) +CREATE TABLE `django_comment_client_permission` ( + `name` varchar(30) NOT NULL, + PRIMARY KEY (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `course_groups_coursecohort` +-- Dumping data for table `django_comment_client_permission` -- -LOCK TABLES `course_groups_coursecohort` WRITE; -/*!40000 ALTER TABLE `course_groups_coursecohort` DISABLE KEYS */; -/*!40000 ALTER TABLE `course_groups_coursecohort` ENABLE KEYS */; +LOCK TABLES `django_comment_client_permission` WRITE; +/*!40000 ALTER TABLE `django_comment_client_permission` DISABLE KEYS */; +/*!40000 ALTER TABLE `django_comment_client_permission` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `course_groups_coursecohortssettings` +-- Table structure for table `django_comment_client_permission_roles` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `course_groups_coursecohortssettings` ( +CREATE TABLE `django_comment_client_permission_roles` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `is_cohorted` tinyint(1) NOT NULL, - `course_id` varchar(255) NOT NULL, - `cohorted_discussions` longtext, - `always_cohort_inline_discussions` tinyint(1) NOT NULL, + `permission_id` varchar(30) NOT NULL, + `role_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `course_id` (`course_id`) + UNIQUE KEY `django_comment_client_pe_permission_id_role_id_d3680ec3_uniq` (`permission_id`,`role_id`), + KEY `django_comment_clien_role_id_d2cb08a2_fk_django_co` (`role_id`), + CONSTRAINT `django_comment_clien_permission_id_f9f47fd2_fk_django_co` FOREIGN KEY (`permission_id`) REFERENCES `django_comment_client_permission` (`name`), + CONSTRAINT `django_comment_clien_role_id_d2cb08a2_fk_django_co` FOREIGN KEY (`role_id`) REFERENCES `django_comment_client_role` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `course_groups_coursecohortssettings` +-- Dumping data for table `django_comment_client_permission_roles` -- -LOCK TABLES `course_groups_coursecohortssettings` WRITE; -/*!40000 ALTER TABLE `course_groups_coursecohortssettings` DISABLE KEYS */; -/*!40000 ALTER TABLE `course_groups_coursecohortssettings` ENABLE KEYS */; +LOCK TABLES `django_comment_client_permission_roles` WRITE; +/*!40000 ALTER TABLE `django_comment_client_permission_roles` DISABLE KEYS */; +/*!40000 ALTER TABLE `django_comment_client_permission_roles` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `course_groups_courseusergroup` +-- Table structure for table `django_comment_client_role` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `course_groups_courseusergroup` ( +CREATE TABLE `django_comment_client_role` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(255) NOT NULL, + `name` varchar(30) NOT NULL, `course_id` varchar(255) NOT NULL, - `group_type` varchar(20) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `course_groups_courseusergroup_name_63f7511804c52f38_uniq` (`name`,`course_id`), - KEY `course_groups_courseusergroup_ea134da7` (`course_id`) + KEY `django_comment_client_role_course_id_08a9c1d1` (`course_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `course_groups_courseusergroup` +-- Dumping data for table `django_comment_client_role` -- -LOCK TABLES `course_groups_courseusergroup` WRITE; -/*!40000 ALTER TABLE `course_groups_courseusergroup` DISABLE KEYS */; -/*!40000 ALTER TABLE `course_groups_courseusergroup` ENABLE KEYS */; +LOCK TABLES `django_comment_client_role` WRITE; +/*!40000 ALTER TABLE `django_comment_client_role` DISABLE KEYS */; +/*!40000 ALTER TABLE `django_comment_client_role` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `course_groups_courseusergroup_users` +-- Table structure for table `django_comment_client_role_users` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `course_groups_courseusergroup_users` ( +CREATE TABLE `django_comment_client_role_users` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `courseusergroup_id` int(11) NOT NULL, + `role_id` int(11) NOT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `courseusergroup_id` (`courseusergroup_id`,`user_id`), - KEY `course_groups_courseuse_user_id_7b26cdeaeb621a93_fk_auth_user_id` (`user_id`), - CONSTRAINT `course_groups_courseuse_user_id_7b26cdeaeb621a93_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`), - CONSTRAINT `db746f642b1b8232920506afe242fe6b` FOREIGN KEY (`courseusergroup_id`) REFERENCES `course_groups_courseusergroup` (`id`) + UNIQUE KEY `django_comment_client_role_users_role_id_user_id_93ab4289_uniq` (`role_id`,`user_id`), + KEY `dcc_role_users_user_role_idx` (`user_id`,`role_id`), + CONSTRAINT `django_comment_clien_role_id_baec77f6_fk_django_co` FOREIGN KEY (`role_id`) REFERENCES `django_comment_client_role` (`id`), + CONSTRAINT `django_comment_clien_user_id_5d7991df_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `course_groups_courseusergroup_users` +-- Dumping data for table `django_comment_client_role_users` -- -LOCK TABLES `course_groups_courseusergroup_users` WRITE; -/*!40000 ALTER TABLE `course_groups_courseusergroup_users` DISABLE KEYS */; -/*!40000 ALTER TABLE `course_groups_courseusergroup_users` ENABLE KEYS */; +LOCK TABLES `django_comment_client_role_users` WRITE; +/*!40000 ALTER TABLE `django_comment_client_role_users` DISABLE KEYS */; +/*!40000 ALTER TABLE `django_comment_client_role_users` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `course_groups_courseusergrouppartitiongroup` +-- Table structure for table `django_comment_common_coursediscussionsettings` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `course_groups_courseusergrouppartitiongroup` ( +CREATE TABLE `django_comment_common_coursediscussionsettings` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `partition_id` int(11) NOT NULL, - `group_id` int(11) NOT NULL, - `created_at` datetime(6) NOT NULL, - `updated_at` datetime(6) NOT NULL, - `course_user_group_id` int(11) NOT NULL, + `course_id` varchar(255) NOT NULL, + `always_divide_inline_discussions` tinyint(1) NOT NULL, + `divided_discussions` longtext, + `division_scheme` varchar(20) NOT NULL, + `discussions_id_map` longtext, + `reported_content_email_notifications` tinyint(1) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `course_user_group_id` (`course_user_group_id`), - CONSTRAINT `D1516b3811dd6dd500bfae054d6fdc92` FOREIGN KEY (`course_user_group_id`) REFERENCES `course_groups_courseusergroup` (`id`) + UNIQUE KEY `course_id` (`course_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `course_groups_courseusergrouppartitiongroup` +-- Dumping data for table `django_comment_common_coursediscussionsettings` -- -LOCK TABLES `course_groups_courseusergrouppartitiongroup` WRITE; -/*!40000 ALTER TABLE `course_groups_courseusergrouppartitiongroup` DISABLE KEYS */; -/*!40000 ALTER TABLE `course_groups_courseusergrouppartitiongroup` ENABLE KEYS */; +LOCK TABLES `django_comment_common_coursediscussionsettings` WRITE; +/*!40000 ALTER TABLE `django_comment_common_coursediscussionsettings` DISABLE KEYS */; +/*!40000 ALTER TABLE `django_comment_common_coursediscussionsettings` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `course_groups_unregisteredlearnercohortassignments` +-- Table structure for table `django_comment_common_discussionsidmapping` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `course_groups_unregisteredlearnercohortassignments` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `email` varchar(255) NOT NULL, +CREATE TABLE `django_comment_common_discussionsidmapping` ( `course_id` varchar(255) NOT NULL, - `course_user_group_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `course_groups_unregisteredlearne_course_id_4daf84ead2de12db_uniq` (`course_id`,`email`), - KEY `D300117695bf1837ce09d8f95c6dc2da` (`course_user_group_id`), - KEY `course_groups_unregisteredlearnercohortassignments_0c83f57c` (`email`), - CONSTRAINT `D300117695bf1837ce09d8f95c6dc2da` FOREIGN KEY (`course_user_group_id`) REFERENCES `course_groups_courseusergroup` (`id`) + `mapping` longtext NOT NULL, + PRIMARY KEY (`course_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `course_groups_unregisteredlearnercohortassignments` +-- Dumping data for table `django_comment_common_discussionsidmapping` -- -LOCK TABLES `course_groups_unregisteredlearnercohortassignments` WRITE; -/*!40000 ALTER TABLE `course_groups_unregisteredlearnercohortassignments` DISABLE KEYS */; -/*!40000 ALTER TABLE `course_groups_unregisteredlearnercohortassignments` ENABLE KEYS */; +LOCK TABLES `django_comment_common_discussionsidmapping` WRITE; +/*!40000 ALTER TABLE `django_comment_common_discussionsidmapping` DISABLE KEYS */; +/*!40000 ALTER TABLE `django_comment_common_discussionsidmapping` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `course_modes_coursemode` +-- Table structure for table `django_comment_common_forumsconfig` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `course_modes_coursemode` ( +CREATE TABLE `django_comment_common_forumsconfig` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `course_id` varchar(255) NOT NULL, - `mode_slug` varchar(100) NOT NULL, - `mode_display_name` varchar(255) NOT NULL, - `min_price` int(11) NOT NULL, - `currency` varchar(8) NOT NULL, - `expiration_datetime` datetime(6) DEFAULT NULL, - `expiration_date` date DEFAULT NULL, - `suggested_prices` varchar(255) NOT NULL, - `description` longtext, - `sku` varchar(255) DEFAULT NULL, - `expiration_datetime_is_explicit` tinyint(1) NOT NULL, - `bulk_sku` varchar(255) DEFAULT NULL, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `connection_timeout` double NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `course_modes_coursemode_course_id_6fbb1796ace558b4_uniq` (`course_id`,`mode_slug`,`currency`), - KEY `course_modes_coursemode_ea134da7` (`course_id`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; + KEY `django_comment_commo_changed_by_id_9292e296_fk_auth_user` (`changed_by_id`), + CONSTRAINT `django_comment_commo_changed_by_id_9292e296_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `course_modes_coursemode` +-- Dumping data for table `django_comment_common_forumsconfig` -- -LOCK TABLES `course_modes_coursemode` WRITE; -/*!40000 ALTER TABLE `course_modes_coursemode` DISABLE KEYS */; -INSERT INTO `course_modes_coursemode` VALUES (1,'course-v1:edX+DemoX+Demo_Course','verified','Verified Certificate',149,'usd','2019-01-31 21:22:40.820392',NULL,'',NULL,'8CF08E5',1,NULL),(2,'course-v1:edX+DemoX+Demo_Course','audit','Audit',0,'usd',NULL,NULL,'',NULL,'68EFFFF',0,NULL); -/*!40000 ALTER TABLE `course_modes_coursemode` ENABLE KEYS */; +LOCK TABLES `django_comment_common_forumsconfig` WRITE; +/*!40000 ALTER TABLE `django_comment_common_forumsconfig` DISABLE KEYS */; +INSERT INTO `django_comment_common_forumsconfig` VALUES (1,'2023-02-21 13:29:10.049796',1,5,NULL); +/*!40000 ALTER TABLE `django_comment_common_forumsconfig` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `course_modes_coursemodeexpirationconfig` +-- Table structure for table `django_content_type` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `course_modes_coursemodeexpirationconfig` ( +CREATE TABLE `django_content_type` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `verification_window` bigint(20) NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, + `app_label` varchar(100) NOT NULL, + `model` varchar(100) NOT NULL, PRIMARY KEY (`id`), - KEY `course_modes_cour_changed_by_id_4d31fab2bbe98b89_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `course_modes_cour_changed_by_id_4d31fab2bbe98b89_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + UNIQUE KEY `django_content_type_app_label_model_76bd3d3b_uniq` (`app_label`,`model`) +) ENGINE=InnoDB AUTO_INCREMENT=480 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `course_modes_coursemodeexpirationconfig` +-- Dumping data for table `django_content_type` -- -LOCK TABLES `course_modes_coursemodeexpirationconfig` WRITE; -/*!40000 ALTER TABLE `course_modes_coursemodeexpirationconfig` DISABLE KEYS */; -/*!40000 ALTER TABLE `course_modes_coursemodeexpirationconfig` ENABLE KEYS */; +LOCK TABLES `django_content_type` WRITE; +/*!40000 ALTER TABLE `django_content_type` DISABLE KEYS */; +INSERT INTO `django_content_type` VALUES (155,'admin','logentry'),(323,'agreements','integritysignature'),(406,'announcements','announcement'),(274,'api_admin','apiaccessconfig'),(1,'api_admin','apiaccessrequest'),(275,'api_admin','catalog'),(211,'assessment','assessment'),(212,'assessment','assessmentfeedback'),(213,'assessment','assessmentfeedbackoption'),(214,'assessment','assessmentpart'),(215,'assessment','criterion'),(216,'assessment','criterionoption'),(224,'assessment','historicalsharedfileupload'),(217,'assessment','peerworkflow'),(218,'assessment','peerworkflowitem'),(219,'assessment','rubric'),(225,'assessment','sharedfileupload'),(223,'assessment','staffworkflow'),(220,'assessment','studenttrainingworkflow'),(221,'assessment','studenttrainingworkflowitem'),(226,'assessment','teamstaffworkflow'),(222,'assessment','trainingexample'),(3,'auth','group'),(2,'auth','permission'),(4,'auth','user'),(276,'badges','badgeassertion'),(277,'badges','badgeclass'),(278,'badges','coursecompleteimageconfiguration'),(279,'badges','courseeventbadgesconfiguration'),(396,'blackboard','blackboardenterprisecustomerconfiguration'),(398,'blackboard','blackboardglobalconfiguration'),(395,'blackboard','blackboardlearnerassessmentdatatransmissionaudit'),(394,'blackboard','blackboardlearnerdatatransmissionaudit'),(397,'blackboard','historicalblackboardenterprisecustomerconfiguration'),(246,'block_structure','blockstructureconfiguration'),(247,'block_structure','blockstructuremodel'),(407,'bookmarks','bookmark'),(408,'bookmarks','xblockcache'),(122,'branding','brandingapiconfig'),(123,'branding','brandinginfoconfig'),(117,'bulk_email','bulkemailflag'),(119,'bulk_email','cohorttarget'),(113,'bulk_email','courseauthorization'),(114,'bulk_email','courseemail'),(115,'bulk_email','courseemailtemplate'),(120,'bulk_email','coursemodetarget'),(121,'bulk_email','disabledcourse'),(116,'bulk_email','optout'),(118,'bulk_email','target'),(439,'bulk_grades','scoreoverrider'),(329,'bundles','bundle'),(330,'bundles','bundlelink'),(331,'bundles','bundleversion'),(332,'bundles','collection'),(333,'bundles','draft'),(288,'calendar_sync','historicalusercalendarsyncconfig'),(289,'calendar_sync','usercalendarsyncconfig'),(400,'canvas','canvasenterprisecustomerconfiguration'),(402,'canvas','canvaslearnerassessmentdatatransmissionaudit'),(401,'canvas','canvaslearnerdatatransmissionaudit'),(399,'canvas','historicalcanvasenterprisecustomerconfiguration'),(267,'catalog','catalogintegration'),(280,'celery_utils','failedtask'),(99,'certificates','certificateallowlist'),(102,'certificates','certificatedateoverride'),(98,'certificates','certificategenerationcommandconfiguration'),(86,'certificates','certificategenerationconfiguration'),(87,'certificates','certificategenerationcoursesetting'),(94,'certificates','certificategenerationhistory'),(88,'certificates','certificatehtmlviewconfiguration'),(95,'certificates','certificateinvalidation'),(89,'certificates','certificatetemplate'),(90,'certificates','certificatetemplateasset'),(91,'certificates','examplecertificate'),(92,'certificates','examplecertificateset'),(93,'certificates','generatedcertificate'),(100,'certificates','historicalcertificateallowlist'),(101,'certificates','historicalcertificatedateoverride'),(97,'certificates','historicalcertificateinvalidation'),(96,'certificates','historicalgeneratedcertificate'),(249,'commerce','commerceconfiguration'),(456,'completion','blockcompletion'),(370,'consent','datasharingconsent'),(372,'consent','datasharingconsenttextoverrides'),(371,'consent','historicaldatasharingconsent'),(20,'contentserver','cdnuseragentsconfig'),(19,'contentserver','courseassetcachettlconfig'),(471,'contentstore','backfillcoursetabsconfig'),(472,'contentstore','cleanstalecertificateavailabilitydatesconfig'),(470,'contentstore','courseoutlineregenerate'),(469,'contentstore','videouploadconfig'),(5,'contenttypes','contenttype'),(409,'content_libraries','contentlibrary'),(413,'content_libraries','contentlibraryblockimporttask'),(410,'content_libraries','contentlibrarypermission'),(412,'content_libraries','ltigradedresource'),(411,'content_libraries','ltiprofile'),(291,'content_type_gating','contenttypegatingconfig'),(391,'cornerstone','cornerstonecoursekey'),(387,'cornerstone','cornerstoneenterprisecustomerconfiguration'),(388,'cornerstone','cornerstoneglobalconfiguration'),(389,'cornerstone','cornerstonelearnerdatatransmissionaudit'),(390,'cornerstone','historicalcornerstoneenterprisecustomerconfiguration'),(248,'cors_csrf','xdomainproxyconfiguration'),(475,'coursegraph','coursegraphcoursedump'),(43,'courseware','coursedynamicupgradedeadlineconfiguration'),(44,'courseware','dynamicupgradedeadlineconfiguration'),(47,'courseware','financialassistanceconfiguration'),(46,'courseware','lastseencoursewaretimezone'),(35,'courseware','offlinecomputedgrade'),(36,'courseware','offlinecomputedgradelog'),(45,'courseware','orgdynamicupgradedeadlineconfiguration'),(37,'courseware','studentfieldoverride'),(38,'courseware','studentmodule'),(39,'courseware','studentmodulehistory'),(40,'courseware','xmodulestudentinfofield'),(41,'courseware','xmodulestudentprefsfield'),(42,'courseware','xmoduleuserstatesummaryfield'),(48,'coursewarehistoryextended','studentmodulehistoryextended'),(192,'course_action_state','coursererunstate'),(414,'course_apps','courseappstatus'),(415,'course_apps','historicalcourseappstatus'),(473,'course_creators','coursecreator'),(297,'course_date_signals','selfpacedrelativedatesconfig'),(290,'course_duration_limits','coursedurationlimitconfig'),(284,'course_goals','coursegoal'),(287,'course_goals','coursegoalreminderstatus'),(285,'course_goals','historicalcoursegoal'),(286,'course_goals','useractivity'),(107,'course_groups','cohortmembership'),(108,'course_groups','coursecohort'),(109,'course_groups','coursecohortssettings'),(110,'course_groups','courseusergroup'),(111,'course_groups','courseusergrouppartitiongroup'),(112,'course_groups','unregisteredlearnercohortassignments'),(124,'course_home_api','disableprogresspagestackedconfig'),(417,'course_live','courseliveconfiguration'),(416,'course_live','historicalcourseliveconfiguration'),(169,'course_modes','coursemode'),(171,'course_modes','coursemodeexpirationconfig'),(170,'course_modes','coursemodesarchive'),(172,'course_modes','historicalcoursemode'),(240,'course_overviews','courseoverview'),(243,'course_overviews','courseoverviewimageconfig'),(242,'course_overviews','courseoverviewimageset'),(241,'course_overviews','courseoverviewtab'),(244,'course_overviews','historicalcourseoverview'),(245,'course_overviews','simulatecoursepublishconfig'),(281,'crawlers','crawlersconfig'),(418,'credentials','credentialsapiconfig'),(419,'credentials','notifycredentialsconfig'),(256,'credit','creditconfig'),(250,'credit','creditcourse'),(251,'credit','crediteligibility'),(252,'credit','creditprovider'),(253,'credit','creditrequest'),(254,'credit','creditrequirement'),(255,'credit','creditrequirementstatus'),(183,'dark_lang','darklangconfig'),(377,'degreed','degreedenterprisecustomerconfiguration'),(378,'degreed','degreedglobalconfiguration'),(379,'degreed','degreedlearnerdatatransmissionaudit'),(380,'degreed','historicaldegreedenterprisecustomerconfiguration'),(383,'degreed2','degreed2enterprisecustomerconfiguration'),(381,'degreed2','degreed2learnerdatatransmissionaudit'),(382,'degreed2','historicaldegreed2enterprisecustomerconfiguration'),(303,'demographics','historicaluserdemographics'),(302,'demographics','userdemographics'),(293,'discounts','discountpercentageconfig'),(292,'discounts','discountrestrictionconfig'),(421,'discussions','discussionsconfiguration'),(423,'discussions','discussiontopiclink'),(420,'discussions','historicaldiscussionsconfiguration'),(422,'discussions','providerfilter'),(10,'django_celery_results','chordcounter'),(11,'django_celery_results','groupresult'),(9,'django_celery_results','taskresult'),(159,'django_comment_common','coursediscussionsettings'),(160,'django_comment_common','discussionsidmapping'),(158,'django_comment_common','forumsconfig'),(156,'django_comment_common','permission'),(157,'django_comment_common','role'),(151,'django_notify','notification'),(152,'django_notify','notificationtype'),(153,'django_notify','settings'),(154,'django_notify','subscription'),(235,'edxval','coursevideo'),(234,'edxval','encodedvideo'),(232,'edxval','profile'),(239,'edxval','thirdpartytranscriptcredentialsstate'),(237,'edxval','transcriptpreference'),(233,'edxval','video'),(236,'edxval','videoimage'),(238,'edxval','videotranscript'),(460,'edx_name_affirmation','historicalverifiedname'),(458,'edx_name_affirmation','verifiedname'),(459,'edx_name_affirmation','verifiednameconfig'),(450,'edx_proctoring','historicalproctoredexam'),(449,'edx_proctoring','historicalproctoredexamstudentattempt'),(440,'edx_proctoring','proctoredexam'),(441,'edx_proctoring','proctoredexamreviewpolicy'),(442,'edx_proctoring','proctoredexamreviewpolicyhistory'),(443,'edx_proctoring','proctoredexamsoftwaresecurecomment'),(444,'edx_proctoring','proctoredexamsoftwaresecurereview'),(445,'edx_proctoring','proctoredexamsoftwaresecurereviewhistory'),(446,'edx_proctoring','proctoredexamstudentallowance'),(447,'edx_proctoring','proctoredexamstudentallowancehistory'),(448,'edx_proctoring','proctoredexamstudentattempt'),(466,'edx_when','contentdate'),(467,'edx_when','datepolicy'),(468,'edx_when','userdate'),(185,'embargo','country'),(186,'embargo','countryaccessrule'),(187,'embargo','courseaccessrulehistory'),(188,'embargo','embargoedcourse'),(189,'embargo','embargoedstate'),(190,'embargo','ipfilter'),(191,'embargo','restrictedcourse'),(363,'enterprise','adminnotification'),(362,'enterprise','adminnotificationfilter'),(364,'enterprise','adminnotificationread'),(367,'enterprise','bulkcatalogqueryupdatecommandconfiguration'),(334,'enterprise','enrollmentnotificationemailtemplate'),(335,'enterprise','enterprisecatalogquery'),(343,'enterprise','enterprisecourseenrollment'),(336,'enterprise','enterprisecustomer'),(337,'enterprise','enterprisecustomerbrandingconfiguration'),(338,'enterprise','enterprisecustomercatalog'),(339,'enterprise','enterprisecustomeridentityprovider'),(369,'enterprise','enterprisecustomerinvitekey'),(340,'enterprise','enterprisecustomerreportingconfiguration'),(341,'enterprise','enterprisecustomertype'),(342,'enterprise','enterprisecustomeruser'),(344,'enterprise','enterpriseenrollmentsource'),(345,'enterprise','enterprisefeaturerole'),(346,'enterprise','enterprisefeatureuserroleassignment'),(347,'enterprise','historicalenrollmentnotificationemailtemplate'),(348,'enterprise','historicalenterprisecourseenrollment'),(349,'enterprise','historicalenterprisecustomer'),(350,'enterprise','historicalenterprisecustomercatalog'),(368,'enterprise','historicalenterprisecustomerinvitekey'),(366,'enterprise','historicalenterprisecustomeruser'),(358,'enterprise','historicallicensedenterprisecourseenrollment'),(351,'enterprise','historicalpendingenrollment'),(359,'enterprise','historicalpendingenterprisecustomeradminuser'),(352,'enterprise','historicalpendingenterprisecustomeruser'),(365,'enterprise','historicalsystemwideenterpriseuserroleassignment'),(357,'enterprise','licensedenterprisecourseenrollment'),(353,'enterprise','pendingenrollment'),(360,'enterprise','pendingenterprisecustomeradminuser'),(354,'enterprise','pendingenterprisecustomeruser'),(355,'enterprise','systemwideenterpriserole'),(356,'enterprise','systemwideenterpriseuserroleassignment'),(361,'enterprise','updateroleassignmentswithcustomersconfig'),(173,'entitlements','courseentitlement'),(174,'entitlements','courseentitlementpolicy'),(175,'entitlements','courseentitlementsupportdetail'),(176,'entitlements','historicalcourseentitlement'),(177,'entitlements','historicalcourseentitlementsupportdetail'),(294,'experiments','experimentdata'),(295,'experiments','experimentkeyvalue'),(296,'experiments','historicalexperimentkeyvalue'),(298,'external_user_ids','externalid'),(299,'external_user_ids','externalidtype'),(300,'external_user_ids','historicalexternalid'),(301,'external_user_ids','historicalexternalidtype'),(427,'grades','computegradessetting'),(429,'grades','historicalpersistentsubsectiongradeoverride'),(426,'grades','persistentcoursegrade'),(424,'grades','persistentsubsectiongrade'),(428,'grades','persistentsubsectiongradeoverride'),(425,'grades','visibleblocks'),(104,'instructor_task','gradereportsetting'),(106,'instructor_task','historicalinstructortaskschedule'),(103,'instructor_task','instructortask'),(105,'instructor_task','instructortaskschedule'),(376,'integrated_channel','apiresponserecord'),(373,'integrated_channel','contentmetadataitemtransmission'),(375,'integrated_channel','genericenterprisecustomerpluginconfiguration'),(374,'integrated_channel','genericlearnerdatatransmissionaudit'),(436,'learner_pathway_progress','historicallearnerpathwayprogress'),(438,'learner_pathway_progress','learnerenterprisepathwaymembership'),(437,'learner_pathway_progress','learnerpathwayprogress'),(315,'learning_sequences','contenterror'),(312,'learning_sequences','coursecontext'),(308,'learning_sequences','coursesection'),(309,'learning_sequences','coursesectionsequence'),(313,'learning_sequences','coursesequenceexam'),(310,'learning_sequences','learningcontext'),(311,'learning_sequences','learningsequence'),(314,'learning_sequences','publishreport'),(318,'learning_sequences','sectionpartitiongroup'),(317,'learning_sequences','sectionsequencepartitiongroup'),(316,'learning_sequences','userpartitiongroup'),(204,'lms_xblock','xblockasidesconfig'),(326,'lti1p3_tool_config','ltitool'),(325,'lti1p3_tool_config','ltitoolkey'),(455,'lti_consumer','courseallowpiisharinginltiflag'),(452,'lti_consumer','ltiagslineitem'),(453,'lti_consumer','ltiagsscore'),(451,'lti_consumer','lticonfiguration'),(454,'lti_consumer','ltidlcontentitem'),(269,'milestones','coursecontentmilestone'),(270,'milestones','coursemilestone'),(271,'milestones','milestone'),(272,'milestones','milestonerelationshiptype'),(273,'milestones','usermilestone'),(194,'mobile_api','appversionconfig'),(195,'mobile_api','ignoremobileavailableflagconfig'),(193,'mobile_api','mobileapiconfig'),(196,'mobile_api','mobileconfig'),(404,'moodle','historicalmoodleenterprisecustomerconfiguration'),(403,'moodle','moodleenterprisecustomerconfiguration'),(405,'moodle','moodlelearnerdatatransmissionaudit'),(129,'oauth2_provider','accesstoken'),(128,'oauth2_provider','application'),(130,'oauth2_provider','grant'),(131,'oauth2_provider','refreshtoken'),(133,'oauth_dispatch','applicationaccess'),(134,'oauth_dispatch','applicationorganization'),(132,'oauth_dispatch','restrictedapplication'),(321,'organizations','historicalorganization'),(322,'organizations','historicalorganizationcourse'),(319,'organizations','organization'),(320,'organizations','organizationcourse'),(465,'outcome_surveys','coursegoal'),(464,'outcome_surveys','coursereflection'),(461,'outcome_surveys','learnercourseevent'),(462,'outcome_surveys','multichoiceresponse'),(463,'outcome_surveys','surveyexport'),(266,'programs','historicalprogramdiscussionsconfiguration'),(265,'programs','historicalprogramliveconfiguration'),(264,'programs','programdiscussionsconfiguration'),(263,'programs','programliveconfiguration'),(262,'programs','programsapiconfig'),(434,'program_enrollments','courseaccessroleassignment'),(432,'program_enrollments','historicalprogramcourseenrollment'),(430,'program_enrollments','historicalprogramenrollment'),(433,'program_enrollments','programcourseenrollment'),(431,'program_enrollments','programenrollment'),(6,'redirects','redirect'),(184,'rss_proxy','whitelistedrssurl'),(385,'sap_success_factors','sapsuccessfactorsenterprisecustomerconfiguration'),(384,'sap_success_factors','sapsuccessfactorsglobalconfiguration'),(386,'sap_success_factors','sapsuccessfactorslearnerdatatransmissionaudit'),(328,'save_for_later','savedcourse'),(327,'save_for_later','savedprogram'),(307,'schedules','historicalschedule'),(304,'schedules','schedule'),(305,'schedules','scheduleconfig'),(306,'schedules','scheduleexperience'),(7,'sessions','session'),(8,'sites','site'),(21,'site_configuration','siteconfiguration'),(22,'site_configuration','siteconfigurationhistory'),(197,'social_django','association'),(198,'social_django','code'),(199,'social_django','nonce'),(201,'social_django','partial'),(200,'social_django','usersocialauth'),(161,'splash','splashconfig'),(84,'split_modulestore_django','historicalsplitmodulestorecourseindex'),(83,'split_modulestore_django','splitmodulestorecourseindex'),(227,'staffgrader','submissiongradinglock'),(17,'static_replace','assetbaseurlconfig'),(18,'static_replace','assetexcludedextensionsconfig'),(15,'status','coursemessage'),(16,'status','globalstatusmessage'),(71,'student','accountrecovery'),(78,'student','accountrecoveryconfiguration'),(76,'student','allowedauthuser'),(49,'student','anonymoususerid'),(80,'student','bulkchangeenrollmentconfiguration'),(74,'student','bulkunenrollconfiguration'),(50,'student','courseaccessrole'),(51,'student','courseenrollment'),(52,'student','courseenrollmentallowed'),(53,'student','courseenrollmentattribute'),(79,'student','courseenrollmentcelebration'),(54,'student','dashboardconfiguration'),(55,'student','enrollmentrefundconfiguration'),(56,'student','entranceexamconfiguration'),(75,'student','fbeenrollmentexclusion'),(73,'student','historicalcourseenrollment'),(77,'student','historicalmanualenrollmentaudit'),(57,'student','languageproficiency'),(58,'student','linkedinaddtoprofileconfiguration'),(59,'student','loginfailures'),(60,'student','manualenrollmentaudit'),(61,'student','pendingemailchange'),(62,'student','pendingnamechange'),(72,'student','pendingsecondaryemailchange'),(63,'student','registration'),(69,'student','registrationcookieconfiguration'),(70,'student','sociallink'),(68,'student','userattribute'),(82,'student','usercelebration'),(81,'student','userpasswordtogglehistory'),(64,'student','userprofile'),(65,'student','usersignupsource'),(66,'student','userstanding'),(67,'student','usertestgroup'),(205,'submissions','score'),(209,'submissions','scoreannotation'),(208,'submissions','scoresummary'),(206,'submissions','studentitem'),(207,'submissions','submission'),(210,'submissions','teamsubmission'),(457,'super_csv','csvoperation'),(127,'support','historicalusersocialauth'),(202,'survey','surveyanswer'),(203,'survey','surveyform'),(324,'survey_report','surveyreport'),(140,'system_wide_roles','systemwiderole'),(141,'system_wide_roles','systemwideroleassignment'),(476,'tagging','tagavailablevalues'),(477,'tagging','tagcategories'),(257,'teams','courseteam'),(258,'teams','courseteammembership'),(435,'theming','sitetheme'),(138,'third_party_auth','ltiproviderconfig'),(137,'third_party_auth','oauth2providerconfig'),(136,'third_party_auth','samlconfiguration'),(139,'third_party_auth','samlproviderconfig'),(135,'third_party_auth','samlproviderdata'),(268,'thumbnail','kvstore'),(165,'user_api','retirementstate'),(162,'user_api','usercoursetag'),(163,'user_api','userorgtag'),(164,'user_api','userpreference'),(168,'user_api','userretirementpartnerreportingstatus'),(167,'user_api','userretirementrequest'),(166,'user_api','userretirementstatus'),(478,'user_tasks','usertaskartifact'),(479,'user_tasks','usertaskstatus'),(126,'user_tours','userdiscussionstours'),(125,'user_tours','usertour'),(85,'util','ratelimitconfiguration'),(181,'verify_student','manualverification'),(178,'verify_student','softwaresecurephotoverification'),(180,'verify_student','ssoverification'),(182,'verify_student','sspverificationretryconfig'),(179,'verify_student','verificationdeadline'),(23,'video_config','coursehlsplaybackenabledflag'),(25,'video_config','coursevideotranscriptenabledflag'),(31,'video_config','courseyoutubeblockedflag'),(24,'video_config','hlsplaybackenabledflag'),(28,'video_config','migrationenqueuedcourse'),(27,'video_config','transcriptmigrationsetting'),(29,'video_config','updatedcoursevideos'),(30,'video_config','videothumbnailsetting'),(26,'video_config','videotranscriptenabledflag'),(32,'video_pipeline','coursevideouploadsenabledbydefault'),(34,'video_pipeline','vempipelineintegration'),(33,'video_pipeline','videouploadsenabledbydefault'),(12,'waffle','flag'),(13,'waffle','sample'),(14,'waffle','switch'),(282,'waffle_utils','waffleflagcourseoverridemodel'),(283,'waffle_utils','waffleflagorgoverridemodel'),(142,'wiki','article'),(143,'wiki','articleforobject'),(144,'wiki','articleplugin'),(145,'wiki','articlerevision'),(146,'wiki','reusableplugin'),(147,'wiki','revisionplugin'),(148,'wiki','revisionpluginrevision'),(149,'wiki','simpleplugin'),(150,'wiki','urlpath'),(228,'workflow','assessmentworkflow'),(229,'workflow','assessmentworkflowcancellation'),(230,'workflow','assessmentworkflowstep'),(231,'workflow','teamassessmentworkflow'),(393,'xapi','xapilearnerdatatransmissionaudit'),(392,'xapi','xapilrsconfiguration'),(474,'xblock_config','studioconfig'),(259,'xblock_django','xblockconfiguration'),(260,'xblock_django','xblockstudioconfiguration'),(261,'xblock_django','xblockstudioconfigurationflag'); +/*!40000 ALTER TABLE `django_content_type` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `course_modes_coursemodesarchive` +-- Table structure for table `django_migrations` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `course_modes_coursemodesarchive` ( +CREATE TABLE `django_migrations` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `course_id` varchar(255) NOT NULL, - `mode_slug` varchar(100) NOT NULL, - `mode_display_name` varchar(255) NOT NULL, - `min_price` int(11) NOT NULL, - `suggested_prices` varchar(255) NOT NULL, - `currency` varchar(8) NOT NULL, - `expiration_date` date DEFAULT NULL, - `expiration_datetime` datetime(6) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `course_modes_coursemodesarchive_ea134da7` (`course_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + `app` varchar(255) NOT NULL, + `name` varchar(255) NOT NULL, + `applied` datetime(6) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=979 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `course_modes_coursemodesarchive` +-- Dumping data for table `django_migrations` -- -LOCK TABLES `course_modes_coursemodesarchive` WRITE; -/*!40000 ALTER TABLE `course_modes_coursemodesarchive` DISABLE KEYS */; -/*!40000 ALTER TABLE `course_modes_coursemodesarchive` ENABLE KEYS */; +LOCK TABLES `django_migrations` WRITE; +/*!40000 ALTER TABLE `django_migrations` DISABLE KEYS */; +INSERT INTO `django_migrations` VALUES (1,'contenttypes','0001_initial','2023-02-21 13:25:56.515519'),(2,'auth','0001_initial','2023-02-21 13:25:56.917190'),(3,'admin','0001_initial','2023-02-21 13:25:57.088156'),(4,'admin','0002_logentry_remove_auto_add','2023-02-21 13:25:57.116676'),(5,'admin','0003_logentry_add_action_flag_choices','2023-02-21 13:25:57.144684'),(6,'agreements','0001_initial','2023-02-21 13:25:57.233093'),(7,'announcements','0001_initial','2023-02-21 13:25:57.254680'),(8,'sites','0001_initial','2023-02-21 13:25:57.252974'),(9,'contenttypes','0002_remove_content_type_name','2023-02-21 13:25:57.329155'),(10,'api_admin','0001_initial','2023-02-21 13:25:57.526850'),(11,'api_admin','0002_auto_20160325_1604','2023-02-21 13:25:57.592562'),(12,'api_admin','0003_auto_20160404_1618','2023-02-21 13:25:57.907332'),(13,'api_admin','0004_auto_20160412_1506','2023-02-21 13:25:58.087213'),(14,'api_admin','0005_auto_20160414_1232','2023-02-21 13:25:58.105684'),(15,'api_admin','0006_catalog','2023-02-21 13:25:58.112898'),(16,'api_admin','0007_delete_historical_api_records','2023-02-21 13:25:58.279264'),(17,'assessment','0001_initial','2023-02-21 13:25:59.321882'),(18,'assessment','0002_staffworkflow','2023-02-21 13:25:59.439420'),(19,'assessment','0003_expand_course_id','2023-02-21 13:25:59.564211'),(20,'assessment','0004_historicalsharedfileupload_sharedfileupload','2023-02-21 13:25:59.767874'),(21,'assessment','0005_add_filename_to_sharedupload','2023-02-21 13:25:59.863571'),(22,'assessment','0006_TeamWorkflows','2023-02-21 13:25:59.910984'),(23,'assessment','0007_staff_workflow_blank','2023-02-21 13:25:59.939215'),(24,'auth','0002_alter_permission_name_max_length','2023-02-21 13:25:59.987705'),(25,'auth','0003_alter_user_email_max_length','2023-02-21 13:26:00.037137'),(26,'auth','0004_alter_user_username_opts','2023-02-21 13:26:00.054875'),(27,'auth','0005_alter_user_last_login_null','2023-02-21 13:26:00.095664'),(28,'auth','0006_require_contenttypes_0002','2023-02-21 13:26:00.098374'),(29,'auth','0007_alter_validators_add_error_messages','2023-02-21 13:26:00.117388'),(30,'auth','0008_alter_user_username_max_length','2023-02-21 13:26:00.160763'),(31,'auth','0009_alter_user_last_name_max_length','2023-02-21 13:26:00.199667'),(32,'auth','0010_alter_group_name_max_length','2023-02-21 13:26:00.252906'),(33,'auth','0011_update_proxy_permissions','2023-02-21 13:26:00.288350'),(34,'auth','0012_alter_user_first_name_max_length','2023-02-21 13:26:00.332967'),(35,'instructor_task','0001_initial','2023-02-21 13:26:00.434359'),(36,'certificates','0001_initial','2023-02-21 13:26:01.015197'),(37,'certificates','0002_data__certificatehtmlviewconfiguration_data','2023-02-21 13:26:01.075768'),(38,'certificates','0003_data__default_modes','2023-02-21 13:26:01.146237'),(39,'certificates','0004_certificategenerationhistory','2023-02-21 13:26:01.249994'),(40,'certificates','0005_auto_20151208_0801','2023-02-21 13:26:01.288635'),(41,'certificates','0006_certificatetemplateasset_asset_slug','2023-02-21 13:26:01.320236'),(42,'certificates','0007_certificateinvalidation','2023-02-21 13:26:01.428182'),(43,'badges','0001_initial','2023-02-21 13:26:01.901081'),(44,'badges','0002_data__migrate_assertions','2023-02-21 13:26:01.961444'),(45,'badges','0003_schema__add_event_configuration','2023-02-21 13:26:02.043811'),(46,'badges','0004_badgeclass_badgr_server_slug','2023-02-21 13:26:02.093753'),(47,'waffle','0001_initial','2023-02-21 13:26:02.376088'),(48,'sites','0002_alter_domain_unique','2023-02-21 13:26:02.400242'),(49,'enterprise','0001_squashed_0092_auto_20200312_1650','2023-02-21 13:26:05.990195'),(50,'enterprise','0093_add_use_enterprise_catalog_flag','2023-02-21 13:26:06.128096'),(51,'enterprise','0094_add_use_enterprise_catalog_sample','2023-02-21 13:26:06.363282'),(52,'integrated_channel','0001_squashed_0007_auto_20190925_0730','2023-02-21 13:26:06.816522'),(53,'integrated_channel','0002_learnerdatatransmissionaudit_subsection_id','2023-02-21 13:26:06.844445'),(54,'integrated_channel','0003_contentmetadataitemtransmission_content_last_changed','2023-02-21 13:26:06.903132'),(55,'integrated_channel','0004_contentmetadataitemtransmission_enterprise_customer_catalog_uuid','2023-02-21 13:26:06.960962'),(56,'integrated_channel','0005_auto_20211005_1052','2023-02-21 13:26:07.003333'),(57,'integrated_channel','0006_contentmetadataitemtransmission_deleted_at','2023-02-21 13:26:07.062420'),(58,'integrated_channel','0007_delete_learnerdatatransmissionaudit','2023-02-21 13:26:07.075731'),(59,'integrated_channel','0008_genericlearnerdatatransmissionaudit','2023-02-21 13:26:07.112935'),(60,'integrated_channel','0009_auto_20220325_1757','2023-02-21 13:26:07.196652'),(61,'enterprise','0095_auto_20200507_1138','2023-02-21 13:26:07.389074'),(62,'enterprise','0096_enterprise_catalog_admin_role','2023-02-21 13:26:07.507528'),(63,'enterprise','0097_auto_20200619_1130','2023-02-21 13:26:07.745764'),(64,'enterprise','0098_auto_20200629_1756','2023-02-21 13:26:07.925725'),(65,'enterprise','0099_auto_20200702_1537','2023-02-21 13:26:08.101620'),(66,'enterprise','0100_add_licensed_enterprise_course_enrollment','2023-02-21 13:26:08.445488'),(67,'enterprise','0101_move_data_to_saved_for_later','2023-02-21 13:26:08.625974'),(68,'enterprise','0102_auto_20200708_1615','2023-02-21 13:26:08.872572'),(69,'enterprise','0103_remove_marked_done','2023-02-21 13:26:09.046375'),(70,'enterprise','0104_sync_query_field','2023-02-21 13:26:09.268357'),(71,'enterprise','0105_add_branding_config_color_fields','2023-02-21 13:26:09.441852'),(72,'enterprise','0106_move_branding_config_colors','2023-02-21 13:26:09.549711'),(73,'enterprise','0107_remove_branding_config_banner_fields','2023-02-21 13:26:09.659715'),(74,'enterprise','0108_add_licensed_enrollment_is_revoked','2023-02-21 13:26:09.777200'),(75,'enterprise','0109_remove_use_enterprise_catalog_sample','2023-02-21 13:26:09.888001'),(76,'enterprise','0110_add_default_contract_discount','2023-02-21 13:26:10.081410'),(77,'enterprise','0111_pendingenterprisecustomeradminuser','2023-02-21 13:26:10.355117'),(78,'enterprise','0112_auto_20200914_0926','2023-02-21 13:26:10.531518'),(79,'enterprise','0113_auto_20200914_2054','2023-02-21 13:26:11.037320'),(80,'enterprise','0114_auto_20201020_0142','2023-02-21 13:26:11.247946'),(81,'enterprise','0115_enterpriseanalyticsuser_historicalenterpriseanalyticsuser','2023-02-21 13:26:11.502309'),(82,'enterprise','0116_auto_20201116_0400','2023-02-21 13:26:11.541124'),(83,'enterprise','0116_auto_20201208_1759','2023-02-21 13:26:11.723927'),(84,'enterprise','0117_auto_20201215_0258','2023-02-21 13:26:11.850833'),(85,'enterprise','unique_constraints_pending_users','2023-02-21 13:26:12.340525'),(86,'enterprise','0001_auto_20210111_1253','2023-02-21 13:26:12.514222'),(87,'enterprise','0120_systemwiderole_applies_to_all_contexts','2023-02-21 13:26:12.669213'),(88,'enterprise','0121_systemwiderole_add_ent_cust_field','2023-02-21 13:26:12.785496'),(89,'enterprise','0122_remove_field_sync_enterprise_catalog_query','2023-02-21 13:26:12.951690'),(90,'enterprise','0123_enterprisecustomeridentityprovider_default_provider','2023-02-21 13:26:13.016656'),(91,'enterprise','0124_auto_20210301_1309','2023-02-21 13:26:13.169012'),(92,'enterprise','0125_add_config_for_role_assign_backfill','2023-02-21 13:26:13.334801'),(93,'enterprise','0126_auto_20210308_1522','2023-02-21 13:26:13.557838'),(94,'enterprise','0127_enterprisecatalogquery_uuid','2023-02-21 13:26:13.610668'),(95,'enterprise','0128_enterprisecatalogquery_generate_uuids','2023-02-21 13:26:13.727939'),(96,'enterprise','0129_enterprisecatalogquery_uuid_unique','2023-02-21 13:26:13.775978'),(97,'enterprise','0130_lms_customer_lp_search_help_text','2023-02-21 13:26:13.908065'),(98,'enterprise','0131_auto_20210517_0924','2023-02-21 13:26:14.103147'),(99,'enterprise','0132_auto_20210608_1921','2023-02-21 13:26:14.701649'),(100,'enterprise','0133_auto_20210608_1931','2023-02-21 13:26:14.826785'),(101,'enterprise','0134_enterprisecustomerreportingconfiguration_enable_compression','2023-02-21 13:26:14.891942'),(102,'enterprise','0135_adminnotification_adminnotificationfilter_adminnotificationread','2023-02-21 13:26:15.169981'),(103,'enterprise','0136_auto_20210629_2129','2023-02-21 13:26:15.587773'),(104,'enterprise','0137_enrollment_email_update','2023-02-21 13:26:15.734531'),(105,'enterprise','0138_bulkcatalogqueryupdatecommandconfiguration','2023-02-21 13:26:15.905546'),(106,'enterprise','0139_auto_20210803_1854','2023-02-21 13:26:15.962103'),(107,'enterprise','0140_update_enrollment_sources','2023-02-21 13:26:16.087113'),(108,'enterprise','0141_make_enterprisecatalogquery_title_unique','2023-02-21 13:26:16.246216'),(109,'enterprise','0142_auto_20210907_2059','2023-02-21 13:26:16.294887'),(110,'enterprise','0143_auto_20210908_0559','2023-02-21 13:26:16.657715'),(111,'enterprise','0144_auto_20211011_1030','2023-02-21 13:26:16.678647'),(112,'enterprise','0145_auto_20211013_1018','2023-02-21 13:26:16.877501'),(113,'enterprise','0146_enterprise_customer_invite_key','2023-02-21 13:26:17.816780'),(114,'enterprise','0147_auto_20211129_1949','2023-02-21 13:26:18.019623'),(115,'enterprise','0148_auto_20211129_2114','2023-02-21 13:26:18.223580'),(116,'enterprise','0149_invite_key_required_default_expiry_backfill','2023-02-21 13:26:18.356873'),(117,'enterprise','0150_invite_key_expiry_required','2023-02-21 13:26:18.574343'),(118,'enterprise','0151_add_is_active_to_invite_key','2023-02-21 13:26:18.795636'),(119,'enterprise','0152_add_should_inactivate_other_customers','2023-02-21 13:26:18.996586'),(120,'enterprise','0153_add_enable_browse_and_request','2023-02-21 13:26:19.264691'),(121,'integrated_channel','0010_genericenterprisecustomerpluginconfiguration','2023-02-21 13:26:19.422661'),(122,'integrated_channel','0011_contentmetadataitemtransmission_plugin_configuration_id','2023-02-21 13:26:19.487746'),(123,'integrated_channel','0012_alter_contentmetadataitemtransmission_unique_together','2023-02-21 13:26:19.555083'),(124,'integrated_channel','0013_auto_20220405_2311','2023-02-21 13:26:19.626636'),(125,'integrated_channel','0014_genericenterprisecustomerpluginconfiguration_dry_run_mode_enabled','2023-02-21 13:26:19.696612'),(126,'integrated_channel','0015_auto_20220718_2113','2023-02-21 13:26:20.042364'),(127,'integrated_channel','0016_contentmetadataitemtransmission_content_title','2023-02-21 13:26:20.108112'),(128,'integrated_channel','0017_contentmetadataitemtransmission_friendly_status_message','2023-02-21 13:26:20.179863'),(129,'integrated_channel','0018_genericlearnerdatatransmissionaudit_friendly_status_message','2023-02-21 13:26:20.215341'),(130,'integrated_channel','0016_contentmetadataitemtransmission_marked_for','2023-02-21 13:26:20.284318'),(131,'integrated_channel','0019_merge_20220928_1842','2023-02-21 13:26:20.288055'),(132,'integrated_channel','0020_auto_20220929_1712','2023-02-21 13:26:20.574496'),(133,'integrated_channel','0021_remove_contentmetadataitemtransmission_api_response_body','2023-02-21 13:26:20.644017'),(134,'blackboard','0001_initial','2023-02-21 13:26:23.204837'),(135,'blackboard','0002_auto_20200930_1723','2023-02-21 13:26:23.208163'),(136,'blackboard','0003_blackboardlearnerdatatransmissionaudit','2023-02-21 13:26:23.211386'),(137,'blackboard','0004_blackboard_tx_chunk_size_default_1','2023-02-21 13:26:23.215405'),(138,'blackboard','0005_blackboardlearnerassessmentdatatransmissionaudit','2023-02-21 13:26:23.218942'),(139,'blackboard','0006_auto_20210708_1446','2023-02-21 13:26:23.223978'),(140,'blackboard','0007_auto_20210909_1536','2023-02-21 13:26:23.227628'),(141,'blackboard','0008_auto_20210923_1727','2023-02-21 13:26:23.231094'),(142,'blackboard','0009_alter_blackboardenterprisecustomerconfiguration_enterprise_customer','2023-02-21 13:26:23.236111'),(143,'blackboard','0010_auto_20211221_1532','2023-02-21 13:26:23.239549'),(144,'blackboard','0011_auto_20220126_1837','2023-02-21 13:26:23.243109'),(145,'blackboard','0012_auto_20220131_1539','2023-02-21 13:26:23.247077'),(146,'blackboard','0013_blacboardglobalconfiguration','2023-02-21 13:26:23.250527'),(147,'blackboard','0014_alter_blackboardlearnerassessmentdatatransmissionaudit_enterprise_course_enrollment_id','2023-02-21 13:26:23.254047'),(148,'blackboard','0002_auto_20220302_2231','2023-02-21 13:26:23.502542'),(149,'blackboard','0003_alter_blackboardlearnerdatatransmissionaudit_completed_timestamp','2023-02-21 13:26:23.545414'),(150,'blackboard','0004_auto_20220324_1550','2023-02-21 13:26:23.946330'),(151,'blackboard','0005_auto_20220325_1757','2023-02-21 13:26:24.099605'),(152,'blackboard','0006_auto_20220405_2311','2023-02-21 13:26:24.646943'),(153,'blackboard','0007_auto_20220523_1625','2023-02-21 13:26:24.858351'),(154,'blackboard','0008_auto_20220913_2018','2023-02-21 13:26:24.931789'),(155,'blackboard','0009_auto_20220929_1720','2023-02-21 13:26:25.485409'),(156,'blackboard','0010_auto_20221021_0159','2023-02-21 13:26:25.716239'),(157,'blackboard','0011_auto_20221031_1855','2023-02-21 13:26:25.899829'),(158,'blackboard','0012_move_and_recrete_completed_timestamp','2023-02-21 13:26:25.957062'),(159,'blackboard','0013_alter_blackboardlearnerdatatransmissionaudit_index_together','2023-02-21 13:26:25.991023'),(160,'blackboard','0014_auto_20230105_2122','2023-02-21 13:26:27.264925'),(161,'blackboard','0015_auto_20230112_2002','2023-02-21 13:26:27.487469'),(162,'block_structure','0001_config','2023-02-21 13:26:27.678185'),(163,'block_structure','0002_blockstructuremodel','2023-02-21 13:26:27.710139'),(164,'block_structure','0003_blockstructuremodel_storage','2023-02-21 13:26:27.722227'),(165,'block_structure','0004_blockstructuremodel_usagekeywithrun','2023-02-21 13:26:27.736831'),(166,'block_structure','0005_trim_leading_slashes_in_data_path','2023-02-21 13:26:27.750471'),(167,'bookmarks','0001_initial','2023-02-21 13:26:28.208067'),(168,'branding','0001_initial','2023-02-21 13:26:28.879779'),(169,'course_modes','0001_initial','2023-02-21 13:26:28.973901'),(170,'course_modes','0002_coursemode_expiration_datetime_is_explicit','2023-02-21 13:26:29.022463'),(171,'course_modes','0003_auto_20151113_1443','2023-02-21 13:26:29.039712'),(172,'course_modes','0004_auto_20151113_1457','2023-02-21 13:26:29.296707'),(173,'course_modes','0005_auto_20151217_0958','2023-02-21 13:26:29.316997'),(174,'course_modes','0006_auto_20160208_1407','2023-02-21 13:26:29.404926'),(175,'course_modes','0007_coursemode_bulk_sku','2023-02-21 13:26:29.440595'),(176,'course_groups','0001_initial','2023-02-21 13:26:30.518311'),(177,'bulk_email','0001_initial','2023-02-21 13:26:31.004841'),(178,'bulk_email','0002_data__load_course_email_template','2023-02-21 13:26:31.234861'),(179,'bulk_email','0003_config_model_feature_flag','2023-02-21 13:26:31.688788'),(180,'bulk_email','0004_add_email_targets','2023-02-21 13:26:32.265621'),(181,'bulk_email','0005_move_target_data','2023-02-21 13:26:32.425499'),(182,'bulk_email','0006_course_mode_targets','2023-02-21 13:26:32.762154'),(183,'bulk_email','0007_disabledcourse','2023-02-21 13:26:32.788004'),(184,'courseware','0001_initial','2023-02-21 13:26:35.305727'),(185,'bulk_grades','0001_initial','2023-02-21 13:26:35.577748'),(186,'bulk_grades','0002_auto_20190703_1526','2023-02-21 13:26:35.758899'),(187,'bundles','0001_initial','2023-02-21 13:26:35.983931'),(188,'bundles','0002_create_drafts','2023-02-21 13:26:36.068981'),(189,'bundles','0003_update_character_set','2023-02-21 13:26:36.349430'),(190,'calendar_sync','0001_initial','2023-02-21 13:26:36.887529'),(191,'calendar_sync','0002_auto_20200709_1743','2023-02-21 13:26:37.169366'),(192,'canvas','0001_initial','2023-02-21 13:26:37.728621'),(193,'canvas','0002_auto_20200806_1632','2023-02-21 13:26:38.245883'),(194,'canvas','0003_delete_canvasglobalconfiguration','2023-02-21 13:26:38.263663'),(195,'canvas','0004_adding_learner_data_to_canvas','2023-02-21 13:26:38.302307'),(196,'canvas','0005_auto_20200909_1534','2023-02-21 13:26:38.326895'),(197,'canvas','0006_canvaslearnerassessmentdatatransmissionaudit','2023-02-21 13:26:38.380243'),(198,'canvas','0007_auto_20210222_2225','2023-02-21 13:26:38.616248'),(199,'canvas','0008_auto_20210707_0815','2023-02-21 13:26:38.792669'),(200,'canvas','0009_auto_20210708_1639','2023-02-21 13:26:38.975343'),(201,'canvas','0010_auto_20210909_1536','2023-02-21 13:26:39.312376'),(202,'canvas','0011_auto_20210923_1727','2023-02-21 13:26:39.560092'),(203,'canvas','0012_alter_canvasenterprisecustomerconfiguration_enterprise_customer','2023-02-21 13:26:39.788306'),(204,'canvas','0013_auto_20211221_1535','2023-02-21 13:26:40.435534'),(205,'canvas','0014_auto_20220126_1837','2023-02-21 13:26:42.042883'),(206,'canvas','0015_auto_20220127_1605','2023-02-21 13:26:42.219199'),(207,'canvas','0016_auto_20220131_1539','2023-02-21 13:26:42.438659'),(208,'canvas','0017_auto_20220302_2231','2023-02-21 13:26:42.680176'),(209,'canvas','0018_alter_canvaslearnerdatatransmissionaudit_completed_timestamp','2023-02-21 13:26:42.712927'),(210,'canvas','0019_auto_20220324_1550','2023-02-21 13:26:42.995018'),(211,'canvas','0020_auto_20220325_1757','2023-02-21 13:26:43.069474'),(212,'canvas','0021_auto_20220405_2311','2023-02-21 13:26:43.689632'),(213,'canvas','0022_auto_20220523_1625','2023-02-21 13:26:43.963380'),(214,'canvas','0023_auto_20220913_2018','2023-02-21 13:26:44.037178'),(215,'canvas','0024_auto_20220929_1720','2023-02-21 13:26:44.714169'),(216,'canvas','0025_auto_20221021_0159','2023-02-21 13:26:45.085198'),(217,'canvas','0026_auto_20221031_1855','2023-02-21 13:26:45.338767'),(218,'canvas','0027_move_and_recrete_completed_timestamp','2023-02-21 13:26:45.413982'),(219,'canvas','0028_alter_canvaslearnerdatatransmissionaudit_index_together','2023-02-21 13:26:45.453826'),(220,'canvas','0029_auto_20230105_2122','2023-02-21 13:26:46.789463'),(221,'canvas','0030_auto_20230112_2002','2023-02-21 13:26:47.005991'),(222,'catalog','0001_initial','2023-02-21 13:26:47.203199'),(223,'catalog','0002_catalogintegration_username','2023-02-21 13:26:47.631672'),(224,'catalog','0003_catalogintegration_page_size','2023-02-21 13:26:47.746873'),(225,'catalog','0004_auto_20170616_0618','2023-02-21 13:26:47.838797'),(226,'catalog','0005_catalogintegration_long_term_cache_ttl','2023-02-21 13:26:47.954221'),(227,'celery_utils','0001_initial','2023-02-21 13:26:48.020078'),(228,'celery_utils','0002_chordable_django_backend','2023-02-21 13:26:48.024744'),(229,'certificates','0008_schema__remove_badges','2023-02-21 13:26:48.331017'),(230,'certificates','0009_certificategenerationcoursesetting_language_self_generation','2023-02-21 13:26:48.611809'),(231,'certificates','0010_certificatetemplate_language','2023-02-21 13:26:48.652984'),(232,'certificates','0011_certificatetemplate_alter_unique','2023-02-21 13:26:48.881912'),(233,'certificates','0012_certificategenerationcoursesetting_include_hours_of_effort','2023-02-21 13:26:48.918509'),(234,'certificates','0013_remove_certificategenerationcoursesetting_enabled','2023-02-21 13:26:48.954461'),(235,'certificates','0014_change_eligible_certs_manager','2023-02-21 13:26:49.045462'),(236,'certificates','0015_add_masters_choice','2023-02-21 13:26:49.150093'),(237,'certificates','0016_historicalgeneratedcertificate','2023-02-21 13:26:49.540111'),(238,'certificates','0017_add_mode_20201118_1725','2023-02-21 13:26:49.904341'),(239,'certificates','0018_historicalcertificateinvalidation','2023-02-21 13:26:50.165382'),(240,'certificates','0019_allowlistgenerationconfiguration','2023-02-21 13:26:50.710649'),(241,'certificates','0020_remove_existing_mgmt_cmd_args','2023-02-21 13:26:50.911376'),(242,'certificates','0021_remove_certificate_allowlist_duplicate_records','2023-02-21 13:26:51.102154'),(243,'certificates','0022_add_unique_constraints_to_certificatewhitelist_model','2023-02-21 13:26:51.208120'),(244,'certificates','0023_certificategenerationcommandconfiguration','2023-02-21 13:26:51.400743'),(245,'certificates','0024_delete_allowlistgenerationconfiguration','2023-02-21 13:26:51.418326'),(246,'certificates','0025_cleanup_certificate_errors','2023-02-21 13:26:51.681026'),(247,'certificates','0026_certificateallowlist','2023-02-21 13:26:51.934533'),(248,'certificates','0027_historicalcertificateallowlist','2023-02-21 13:26:52.167872'),(249,'certificates','0028_allowlist_data_20210615_2033','2023-02-21 13:26:52.360233'),(250,'certificates','0029_allowlist_created_20210623_1417','2023-02-21 13:26:52.608654'),(251,'certificates','0030_delete_certificatewhitelist','2023-02-21 13:26:52.629414'),(252,'certificates','0031_certificatedateoverride_historicalcertificatedateoverride','2023-02-21 13:26:53.858205'),(253,'certificates','0032_change_certificatedateoverride_date','2023-02-21 13:26:54.209413'),(254,'certificates','0033_auto_20220307_1100','2023-02-21 13:26:54.621078'),(255,'certificates','0034_auto_20220401_1213','2023-02-21 13:26:54.887153'),(256,'user_api','0001_initial','2023-02-21 13:26:56.829772'),(257,'user_api','0002_retirementstate_userretirementstatus','2023-02-21 13:26:57.454904'),(258,'commerce','0001_data__add_ecommerce_service_user','2023-02-21 13:26:57.747060'),(259,'commerce','0002_commerceconfiguration','2023-02-21 13:26:57.987834'),(260,'commerce','0003_auto_20160329_0709','2023-02-21 13:26:58.109471'),(261,'commerce','0004_auto_20160531_0950','2023-02-21 13:26:58.448693'),(262,'commerce','0005_commerceconfiguration_enable_automatic_refund_approval','2023-02-21 13:26:58.592323'),(263,'commerce','0006_auto_20170424_1734','2023-02-21 13:26:58.707091'),(264,'commerce','0007_auto_20180313_0609','2023-02-21 13:26:58.992023'),(265,'commerce','0008_auto_20191024_2048','2023-02-21 13:26:59.243096'),(266,'completion','0001_initial','2023-02-21 13:27:00.159040'),(267,'completion','0002_auto_20180125_1510','2023-02-21 13:27:00.277050'),(268,'completion','0003_learning_context','2023-02-21 13:27:00.788809'),(269,'consent','0001_initial','2023-02-21 13:27:01.576027'),(270,'consent','0002_migrate_to_new_data_sharing_consent','2023-02-21 13:27:01.877484'),(271,'consent','0003_historicaldatasharingconsent_history_change_reason','2023-02-21 13:27:02.138842'),(272,'consent','0004_datasharingconsenttextoverrides','2023-02-21 13:27:02.542290'),(273,'lti1p3_tool_config','0001_initial','2023-02-21 13:27:02.704997'),(274,'organizations','0001_initial','2023-02-21 13:27:03.894996'),(275,'organizations','0002_auto_20170117_1434','2023-02-21 13:27:03.908950'),(276,'organizations','0003_auto_20170221_1138','2023-02-21 13:27:03.921348'),(277,'organizations','0004_auto_20170413_2315','2023-02-21 13:27:03.932518'),(278,'organizations','0005_auto_20171116_0640','2023-02-21 13:27:03.939505'),(279,'organizations','0006_auto_20171207_0259','2023-02-21 13:27:03.945876'),(280,'organizations','0007_historicalorganization','2023-02-21 13:27:03.955441'),(281,'content_libraries','0001_initial','2023-02-21 13:27:05.067894'),(282,'content_libraries','0002_group_permissions','2023-02-21 13:27:07.289155'),(283,'content_libraries','0003_contentlibrary_type','2023-02-21 13:27:07.371161'),(284,'content_libraries','0004_contentlibrary_license','2023-02-21 13:27:07.463512'),(285,'content_libraries','0005_ltigradedresource_ltiprofile','2023-02-21 13:27:08.857898'),(286,'content_libraries','0006_auto_20210615_1916','2023-02-21 13:27:09.527888'),(287,'content_libraries','0005_contentlibraryblockimporttask','2023-02-21 13:27:09.907940'),(288,'content_libraries','0007_merge_20210818_0614','2023-02-21 13:27:09.917783'),(289,'content_libraries','0008_auto_20210818_2148','2023-02-21 13:27:11.452407'),(290,'content_libraries','0009_alter_contentlibrary_authorized_lti_configs','2023-02-21 13:27:12.302756'),(291,'course_overviews','0001_initial','2023-02-21 13:27:12.407673'),(292,'course_overviews','0002_add_course_catalog_fields','2023-02-21 13:27:12.631931'),(293,'course_overviews','0003_courseoverviewgeneratedhistory','2023-02-21 13:27:12.695077'),(294,'course_overviews','0004_courseoverview_org','2023-02-21 13:27:12.778862'),(295,'course_overviews','0005_delete_courseoverviewgeneratedhistory','2023-02-21 13:27:12.886333'),(296,'course_overviews','0006_courseoverviewimageset','2023-02-21 13:27:13.020097'),(297,'course_overviews','0007_courseoverviewimageconfig','2023-02-21 13:27:13.466085'),(298,'course_overviews','0008_remove_courseoverview_facebook_url','2023-02-21 13:27:13.473512'),(299,'course_overviews','0009_readd_facebook_url','2023-02-21 13:27:13.479831'),(300,'course_overviews','0010_auto_20160329_2317','2023-02-21 13:27:13.566137'),(301,'course_overviews','0011_courseoverview_marketing_url','2023-02-21 13:27:13.607661'),(302,'course_overviews','0012_courseoverview_eligible_for_financial_aid','2023-02-21 13:27:13.652748'),(303,'course_overviews','0013_courseoverview_language','2023-02-21 13:27:13.696826'),(304,'course_overviews','0014_courseoverview_certificate_available_date','2023-02-21 13:27:13.746864'),(305,'content_type_gating','0001_initial','2023-02-21 13:27:14.126622'),(306,'content_type_gating','0002_auto_20181119_0959','2023-02-21 13:27:14.460302'),(307,'content_type_gating','0003_auto_20181128_1407','2023-02-21 13:27:14.718950'),(308,'content_type_gating','0004_auto_20181128_1521','2023-02-21 13:27:14.861280'),(309,'content_type_gating','0005_auto_20190306_1547','2023-02-21 13:27:15.013581'),(310,'content_type_gating','0006_auto_20190308_1447','2023-02-21 13:27:15.175450'),(311,'content_type_gating','0007_auto_20190311_1919','2023-02-21 13:27:16.615487'),(312,'content_type_gating','0008_auto_20190313_1634','2023-02-21 13:27:16.786484'),(313,'contentserver','0001_initial','2023-02-21 13:27:17.127029'),(314,'contentserver','0002_cdnuseragentsconfig','2023-02-21 13:27:17.483985'),(315,'cornerstone','0001_initial','2023-02-21 13:27:19.562043'),(316,'cornerstone','0002_cornerstoneglobalconfiguration_subject_mapping','2023-02-21 13:27:19.695856'),(317,'cornerstone','0003_auto_20190621_1000','2023-02-21 13:27:20.263443'),(318,'cornerstone','0004_cornerstoneglobalconfiguration_languages','2023-02-21 13:27:20.420393'),(319,'cornerstone','0005_auto_20190925_0730','2023-02-21 13:27:20.850892'),(320,'cornerstone','0006_auto_20191001_0742','2023-02-21 13:27:21.121074'),(321,'cornerstone','0007_auto_20210708_1446','2023-02-21 13:27:21.340752'),(322,'cornerstone','0008_auto_20210909_1536','2023-02-21 13:27:21.607689'),(323,'cornerstone','0009_auto_20210923_1727','2023-02-21 13:27:22.266597'),(324,'cornerstone','0010_cornerstonecoursekey','2023-02-21 13:27:22.295509'),(325,'cornerstone','0011_auto_20211103_1855','2023-02-21 13:27:22.927646'),(326,'cornerstone','0012_alter_cornerstoneenterprisecustomerconfiguration_enterprise_customer','2023-02-21 13:27:23.346588'),(327,'cornerstone','0013_auto_20220126_1837','2023-02-21 13:27:24.261676'),(328,'cornerstone','0014_auto_20220131_1539','2023-02-21 13:27:24.586899'),(329,'cornerstone','0015_auto_20220302_2231','2023-02-21 13:27:25.236192'),(330,'cornerstone','0016_auto_20220324_1550','2023-02-21 13:27:26.281995'),(331,'cornerstone','0017_alter_cornerstonelearnerdatatransmissionaudit_course_completed','2023-02-21 13:27:26.436128'),(332,'cornerstone','0018_auto_20220325_1757','2023-02-21 13:27:26.757575'),(333,'cornerstone','0019_auto_20220405_2311','2023-02-21 13:27:27.169783'),(334,'cornerstone','0020_auto_20220523_1625','2023-02-21 13:27:27.858674'),(335,'cornerstone','0021_cornerstonelearnerdatatransmissionaudit_friendly_status_message','2023-02-21 13:27:28.051742'),(336,'cornerstone','0022_cornerstonelearnerdatatransmissionaudit_api_record','2023-02-21 13:27:28.385690'),(337,'cornerstone','0023_auto_20221021_0159','2023-02-21 13:27:28.940336'),(338,'cornerstone','0024_auto_20221031_1855','2023-02-21 13:27:29.249696'),(339,'cornerstone','0025_alter_cornerstonelearnerdatatransmissionaudit_index_together','2023-02-21 13:27:29.411943'),(340,'cornerstone','0026_auto_20230105_2122','2023-02-21 13:27:31.306820'),(341,'cornerstone','0027_auto_20230112_2002','2023-02-21 13:27:31.601917'),(342,'cors_csrf','0001_initial','2023-02-21 13:27:31.853139'),(343,'course_action_state','0001_initial','2023-02-21 13:27:32.310045'),(344,'course_apps','0001_initial','2023-02-21 13:27:32.729685'),(345,'course_overviews','0015_historicalcourseoverview','2023-02-21 13:27:33.574489'),(346,'course_overviews','0016_simulatecoursepublishconfig','2023-02-21 13:27:33.928290'),(347,'course_overviews','0017_auto_20191002_0823','2023-02-21 13:27:34.145994'),(348,'course_overviews','0018_add_start_end_in_CourseOverview','2023-02-21 13:27:34.680763'),(349,'course_overviews','0019_improve_courseoverviewtab','2023-02-21 13:27:35.032080'),(350,'course_date_signals','0001_initial','2023-02-21 13:27:35.671640'),(351,'course_duration_limits','0001_initial','2023-02-21 13:27:36.293368'),(352,'course_duration_limits','0002_auto_20181119_0959','2023-02-21 13:27:36.433223'),(353,'course_duration_limits','0003_auto_20181128_1407','2023-02-21 13:27:36.597125'),(354,'course_duration_limits','0004_auto_20181128_1521','2023-02-21 13:27:36.755808'),(355,'course_duration_limits','0005_auto_20190306_1546','2023-02-21 13:27:36.914406'),(356,'course_duration_limits','0006_auto_20190308_1447','2023-02-21 13:27:37.071858'),(357,'course_duration_limits','0007_auto_20190311_1919','2023-02-21 13:27:38.099179'),(358,'course_duration_limits','0008_auto_20190313_1634','2023-02-21 13:27:38.272983'),(359,'course_goals','0001_initial','2023-02-21 13:27:39.176482'),(360,'course_goals','0002_auto_20171010_1129','2023-02-21 13:27:39.445319'),(361,'course_goals','0003_historicalcoursegoal','2023-02-21 13:27:40.176055'),(362,'course_goals','0004_auto_20210806_0137','2023-02-21 13:27:41.235332'),(363,'course_goals','0005_useractivity','2023-02-21 13:27:42.785553'),(364,'course_goals','0006_add_unsubscribe_token','2023-02-21 13:27:43.681761'),(365,'course_goals','0007_set_unsubscribe_token_default','2023-02-21 13:27:44.342990'),(366,'course_goals','0008_coursegoalreminderstatus','2023-02-21 13:27:44.854265'),(367,'course_groups','0002_change_inline_default_cohort_value','2023-02-21 13:27:44.882390'),(368,'course_groups','0003_auto_20170609_1455','2023-02-21 13:27:45.477247'),(369,'course_overviews','0020_courseoverviewtab_url_slug','2023-02-21 13:27:45.571360'),(370,'course_overviews','0021_courseoverviewtab_link','2023-02-21 13:27:45.729883'),(371,'course_overviews','0022_courseoverviewtab_is_hidden','2023-02-21 13:27:45.836469'),(372,'course_overviews','0023_courseoverview_banner_image_url','2023-02-21 13:27:46.244701'),(373,'course_overviews','0024_overview_adds_has_highlights','2023-02-21 13:27:46.794912'),(374,'course_home_api','0001_initial','2023-02-21 13:27:48.474245'),(375,'lti_consumer','0001_initial','2023-02-21 13:27:48.537284'),(376,'lti_consumer','0002_ltiagslineitem','2023-02-21 13:27:48.674930'),(377,'lti_consumer','0003_ltiagsscore','2023-02-21 13:27:48.787493'),(378,'lti_consumer','0004_keyset_mgmt_to_model','2023-02-21 13:27:48.978197'),(379,'lti_consumer','0005_migrate_keyset_to_model','2023-02-21 13:27:49.309237'),(380,'lti_consumer','0006_add_on_model_config_for_lti_1p1','2023-02-21 13:27:49.919997'),(381,'lti_consumer','0007_ltidlcontentitem','2023-02-21 13:27:50.002868'),(382,'lti_consumer','0008_fix_uuid_backfill','2023-02-21 13:27:50.399228'),(383,'lti_consumer','0009_backfill-empty-string-config-id','2023-02-21 13:27:50.865817'),(384,'lti_consumer','0010_backfill-empty-string-lti-config','2023-02-21 13:27:51.211238'),(385,'lti_consumer','0011_courseeditltifieldsenabledflag','2023-02-21 13:27:51.815863'),(386,'lti_consumer','0012_rename_courseeditltifieldsenabledflag_model','2023-02-21 13:27:52.258065'),(387,'lti_consumer','0013_auto_20210712_1352','2023-02-21 13:27:52.308137'),(388,'course_live','0001_initial','2023-02-21 13:27:52.961638'),(389,'course_live','0002_auto_20220617_1822','2023-02-21 13:27:53.205681'),(390,'course_modes','0008_course_key_field_to_foreign_key','2023-02-21 13:27:53.537364'),(391,'course_modes','0009_suggested_prices_to_charfield','2023-02-21 13:27:53.574035'),(392,'course_modes','0010_archived_suggested_prices_to_charfield','2023-02-21 13:27:53.597564'),(393,'course_modes','0011_change_regex_for_comma_separated_ints','2023-02-21 13:27:53.644210'),(394,'course_modes','0012_historicalcoursemode','2023-02-21 13:27:54.461433'),(395,'course_modes','0013_auto_20200115_2022','2023-02-21 13:27:54.755340'),(396,'course_modes','0014_auto_20230207_1212','2023-02-21 13:27:55.581046'),(397,'course_overviews','0025_auto_20210702_1602','2023-02-21 13:27:56.886709'),(398,'course_overviews','0026_courseoverview_entrance_exam','2023-02-21 13:27:59.079890'),(399,'course_overviews','0027_auto_20221102_1109','2023-02-21 13:27:59.427447'),(400,'coursewarehistoryextended','0001_initial','2023-02-21 13:28:00.135617'),(401,'coursewarehistoryextended','0002_force_studentmodule_index','2023-02-21 13:28:00.174814'),(402,'courseware','0002_coursedynamicupgradedeadlineconfiguration_dynamicupgradedeadlineconfiguration','2023-02-21 13:28:01.035587'),(403,'courseware','0003_auto_20170825_0935','2023-02-21 13:28:01.239765'),(404,'courseware','0004_auto_20171010_1639','2023-02-21 13:28:01.444491'),(405,'courseware','0005_orgdynamicupgradedeadlineconfiguration','2023-02-21 13:28:02.380592'),(406,'courseware','0006_remove_module_id_index','2023-02-21 13:28:02.537498'),(407,'courseware','0007_remove_done_index','2023-02-21 13:28:02.732434'),(408,'courseware','0008_move_idde_to_edx_when','2023-02-21 13:28:02.964366'),(409,'courseware','0009_auto_20190703_1955','2023-02-21 13:28:03.179276'),(410,'courseware','0010_auto_20190709_1559','2023-02-21 13:28:03.409582'),(411,'courseware','0011_csm_id_bigint','2023-02-21 13:28:03.699063'),(412,'courseware','0012_adjust_fields','2023-02-21 13:28:04.181895'),(413,'courseware','0013_auto_20191001_1858','2023-02-21 13:28:04.810544'),(414,'courseware','0014_fix_nan_value_for_global_speed','2023-02-21 13:28:05.123415'),(415,'courseware','0015_add_courseware_stats_index','2023-02-21 13:28:05.306730'),(416,'courseware','0016_lastseencoursewaretimezone','2023-02-21 13:28:05.796764'),(417,'courseware','0017_financialassistanceconfiguration','2023-02-21 13:28:06.164551'),(418,'crawlers','0001_initial','2023-02-21 13:28:06.711146'),(419,'crawlers','0002_auto_20170419_0018','2023-02-21 13:28:06.952864'),(420,'credentials','0001_initial','2023-02-21 13:28:07.790707'),(421,'credentials','0002_auto_20160325_0631','2023-02-21 13:28:08.094382'),(422,'credentials','0003_auto_20170525_1109','2023-02-21 13:28:08.610594'),(423,'credentials','0004_notifycredentialsconfig','2023-02-21 13:28:09.009955'),(424,'credentials','0005_remove_existing_mgmt_cmd_args','2023-02-21 13:28:09.359287'),(425,'credit','0001_initial','2023-02-21 13:28:11.044313'),(426,'credit','0002_creditconfig','2023-02-21 13:28:11.759953'),(427,'credit','0003_auto_20160511_2227','2023-02-21 13:28:11.784726'),(428,'credit','0004_delete_historical_credit_records','2023-02-21 13:28:13.491762'),(429,'credit','0005_creditrequirement_sort_value','2023-02-21 13:28:13.682982'),(430,'credit','0006_creditrequirement_alter_ordering','2023-02-21 13:28:13.736124'),(431,'credit','0007_creditrequirement_copy_values','2023-02-21 13:28:14.232701'),(432,'credit','0008_creditrequirement_remove_order','2023-02-21 13:28:14.316355'),(433,'dark_lang','0001_initial','2023-02-21 13:28:15.395440'),(434,'dark_lang','0002_data__enable_on_install','2023-02-21 13:28:15.731664'),(435,'dark_lang','0003_auto_20180425_0359','2023-02-21 13:28:16.206386'),(436,'database_fixups','0001_initial','2023-02-21 13:28:16.590174'),(437,'degreed','0001_initial','2023-02-21 13:28:18.083313'),(438,'degreed','0002_auto_20180104_0103','2023-02-21 13:28:18.674554'),(439,'degreed','0003_auto_20180109_0712','2023-02-21 13:28:19.094970'),(440,'degreed','0004_auto_20180306_1251','2023-02-21 13:28:19.454574'),(441,'degreed','0005_auto_20180807_1302','2023-02-21 13:28:22.027018'),(442,'degreed','0006_upgrade_django_simple_history','2023-02-21 13:28:22.261573'),(443,'degreed','0007_auto_20190925_0730','2023-02-21 13:28:22.678810'),(444,'degreed','0008_auto_20191001_0742','2023-02-21 13:28:23.404359'),(445,'degreed','0009_auto_20210119_1546','2023-02-21 13:28:25.349180'),(446,'degreed','0010_auto_20210708_1446','2023-02-21 13:28:25.984683'),(447,'degreed','0011_auto_20210909_1536','2023-02-21 13:28:26.570496'),(448,'degreed','0012_auto_20210923_1727','2023-02-21 13:28:26.957377'),(449,'degreed','0013_alter_degreedenterprisecustomerconfiguration_enterprise_customer','2023-02-21 13:28:27.352462'),(450,'degreed','0014_auto_20220126_1837','2023-02-21 13:28:30.658957'),(451,'degreed','0015_auto_20220131_1539','2023-02-21 13:28:31.414364'),(452,'degreed','0016_auto_20220302_2231','2023-02-21 13:28:31.805510'),(453,'degreed','0017_alter_degreedlearnerdatatransmissionaudit_completed_timestamp','2023-02-21 13:28:31.865517'),(454,'degreed','0018_auto_20220324_1550','2023-02-21 13:28:32.442313'),(455,'degreed','0019_auto_20220325_1757','2023-02-21 13:28:32.558009'),(456,'degreed','0020_auto_20220405_2311','2023-02-21 13:28:32.668738'),(457,'degreed','0021_auto_20220523_1625','2023-02-21 13:28:33.039682'),(458,'degreed','0022_degreedlearnerdatatransmissionaudit_friendly_status_message','2023-02-21 13:28:33.085631'),(459,'degreed','0023_degreedlearnerdatatransmissionaudit_api_record','2023-02-21 13:28:33.350573'),(460,'degreed','0024_auto_20221021_0159','2023-02-21 13:28:33.738859'),(461,'degreed','0025_auto_20221031_1855','2023-02-21 13:28:34.062820'),(462,'degreed','0026_move_and_recrete_completed_timestamp','2023-02-21 13:28:34.153601'),(463,'degreed','0027_alter_degreedlearnerdatatransmissionaudit_index_together','2023-02-21 13:28:34.221197'),(464,'degreed','0028_auto_20230105_2122','2023-02-21 13:28:37.084787'),(465,'degreed','0029_auto_20230112_2002','2023-02-21 13:28:37.488010'),(466,'degreed2','0001_initial','2023-02-21 13:28:38.690076'),(467,'degreed2','0002_auto_20211101_2021','2023-02-21 13:28:39.337591'),(468,'degreed2','0003_alter_degreed2enterprisecustomerconfiguration_enterprise_customer','2023-02-21 13:28:39.644931'),(469,'degreed2','0004_auto_20220126_1837','2023-02-21 13:28:42.993844'),(470,'degreed2','0005_auto_20220131_1539','2023-02-21 13:28:43.472012'),(471,'degreed2','0006_auto_20220214_1627','2023-02-21 13:28:43.942039'),(472,'degreed2','0007_auto_20220302_2231','2023-02-21 13:28:44.839984'),(473,'degreed2','0008_degreed2learnerdatatransmissionaudit_course_completed','2023-02-21 13:28:44.954750'),(474,'degreed2','0009_alter_degreed2learnerdatatransmissionaudit_completed_timestamp','2023-02-21 13:28:45.024850'),(475,'degreed2','0010_auto_20220324_1550','2023-02-21 13:28:45.469788'),(476,'degreed2','0011_auto_20220325_1757','2023-02-21 13:28:45.563172'),(477,'degreed2','0012_auto_20220405_2311','2023-02-21 13:28:45.671912'),(478,'degreed2','0013_auto_20220523_1625','2023-02-21 13:28:46.109092'),(479,'degreed2','0014_degreed2learnerdatatransmissionaudit_friendly_status_message','2023-02-21 13:28:46.196262'),(480,'degreed2','0015_degreed2learnerdatatransmissionaudit_api_record','2023-02-21 13:28:46.563114'),(481,'degreed2','0016_auto_20221021_0159','2023-02-21 13:28:46.754324'),(482,'degreed2','0017_auto_20221031_1855','2023-02-21 13:28:47.255946'),(483,'degreed2','0018_move_and_recrete_completed_timestamp','2023-02-21 13:28:47.374713'),(484,'degreed2','0019_alter_degreed2learnerdatatransmissionaudit_index_together','2023-02-21 13:28:47.454528'),(485,'degreed2','0020_auto_20230105_2122','2023-02-21 13:28:50.490292'),(486,'degreed2','0021_auto_20230112_2002','2023-02-21 13:28:50.972293'),(487,'demographics','0001_initial','2023-02-21 13:28:52.364209'),(488,'demographics','0002_clean_duplicate_entries','2023-02-21 13:28:52.824021'),(489,'demographics','0003_auto_20200827_1949','2023-02-21 13:28:53.205431'),(490,'discounts','0001_initial','2023-02-21 13:28:54.131239'),(491,'discounts','0002_auto_20191022_1720','2023-02-21 13:28:55.408395'),(492,'discussions','0001_initial','2023-02-21 13:28:56.161291'),(493,'discussions','0002_add_provider_filter','2023-02-21 13:28:57.117551'),(494,'discussions','0003_alter_provider_filter_list','2023-02-21 13:28:57.953891'),(495,'discussions','0004_historicalprogramdiscussionsconfiguration_programdiscussionsconfiguration','2023-02-21 13:28:58.800560'),(496,'discussions','0005_auto_20210910_0940','2023-02-21 13:28:59.063515'),(497,'discussions','0006_auto_20211006_0441','2023-02-21 13:29:01.005045'),(498,'discussions','0007_add_discussion_topic_link','2023-02-21 13:29:01.819152'),(499,'discussions','0008_auto_20220119_0746','2023-02-21 13:29:03.121823'),(500,'discussions','0009_discussiontopiclink_ordering','2023-02-21 13:29:03.558904'),(501,'discussions','0010_auto_20220203_2134','2023-02-21 13:29:04.936502'),(502,'discussions','0011_auto_20220510_0716','2023-02-21 13:29:05.451957'),(503,'discussions','0012_auto_20220511_0827','2023-02-21 13:29:05.893913'),(504,'discussions','0013_auto_20220802_1154','2023-02-21 13:29:06.125881'),(505,'discussions','0014_auto_20220826_1107','2023-02-21 13:29:06.715666'),(506,'discussions','0015_discussiontopiclink_context','2023-02-21 13:29:06.774073'),(507,'django_celery_results','0001_initial','2023-02-21 13:29:06.838172'),(508,'django_celery_results','0002_add_task_name_args_kwargs','2023-02-21 13:29:06.975665'),(509,'django_celery_results','0003_auto_20181106_1101','2023-02-21 13:29:07.003930'),(510,'django_celery_results','0004_auto_20190516_0412','2023-02-21 13:29:07.264748'),(511,'django_celery_results','0005_taskresult_worker','2023-02-21 13:29:07.360902'),(512,'django_celery_results','0006_taskresult_date_created','2023-02-21 13:29:07.767967'),(513,'django_celery_results','0007_remove_taskresult_hidden','2023-02-21 13:29:07.839493'),(514,'django_celery_results','0008_chordcounter','2023-02-21 13:29:07.875613'),(515,'django_celery_results','0009_groupresult','2023-02-21 13:29:08.400871'),(516,'django_celery_results','0010_remove_duplicate_indices','2023-02-21 13:29:08.467819'),(517,'django_celery_results','0011_taskresult_periodic_task_name','2023-02-21 13:29:08.532897'),(518,'django_comment_common','0001_initial','2023-02-21 13:29:09.274032'),(519,'django_comment_common','0002_forumsconfig','2023-02-21 13:29:09.653827'),(520,'django_comment_common','0003_enable_forums','2023-02-21 13:29:10.057705'),(521,'django_comment_common','0004_auto_20161117_1209','2023-02-21 13:29:10.243472'),(522,'django_comment_common','0005_coursediscussionsettings','2023-02-21 13:29:10.291708'),(523,'django_comment_common','0006_coursediscussionsettings_discussions_id_map','2023-02-21 13:29:10.343762'),(524,'django_comment_common','0007_discussionsidmapping','2023-02-21 13:29:10.377788'),(525,'django_comment_common','0008_role_user_index','2023-02-21 13:29:10.406939'),(526,'django_comment_common','0009_coursediscussionsettings_reported_content_email_notifications','2023-02-21 13:29:10.453327'),(527,'django_notify','0001_initial','2023-02-21 13:29:12.930924'),(528,'edx_name_affirmation','0001_initial','2023-02-21 13:29:13.308096'),(529,'edx_name_affirmation','0002_verifiednameconfig','2023-02-21 13:29:13.755916'),(530,'edx_name_affirmation','0003_verifiedname_status','2023-02-21 13:29:13.983282'),(531,'edx_name_affirmation','0004_auto_20210816_0958','2023-02-21 13:29:14.245083'),(532,'edx_name_affirmation','0005_remove_verifiedname_is_verified','2023-02-21 13:29:14.577336'),(533,'edx_name_affirmation','0006_auto_20210830_2029','2023-02-21 13:29:15.076032'),(534,'edx_name_affirmation','0007_historicalverifiedname','2023-02-21 13:29:15.944644'),(535,'edx_proctoring','0001_initial','2023-02-21 13:29:21.087161'),(536,'edx_proctoring','0002_proctoredexamstudentattempt_is_status_acknowledged','2023-02-21 13:29:21.374294'),(537,'edx_proctoring','0003_auto_20160101_0525','2023-02-21 13:29:21.708099'),(538,'edx_proctoring','0004_auto_20160201_0523','2023-02-21 13:29:21.905941'),(539,'edx_proctoring','0005_proctoredexam_hide_after_due','2023-02-21 13:29:21.968000'),(540,'edx_proctoring','0006_allowed_time_limit_mins','2023-02-21 13:29:22.411360'),(541,'edx_proctoring','0007_proctoredexam_backend','2023-02-21 13:29:22.465993'),(542,'edx_proctoring','0008_auto_20181116_1551','2023-02-21 13:29:23.554342'),(543,'edx_proctoring','0009_proctoredexamreviewpolicy_remove_rules','2023-02-21 13:29:23.974841'),(544,'edx_proctoring','0010_update_backend','2023-02-21 13:29:24.389682'),(545,'edx_proctoring','0011_allow_multiple_attempts','2023-02-21 13:29:24.610255'),(546,'edx_proctoring','0012_proctoredexamstudentattempt_time_remaining_seconds','2023-02-21 13:29:24.877303'),(547,'edx_proctoring','0013_proctoredexamsoftwaresecurereview_is_active_attempt','2023-02-21 13:29:25.313469'),(548,'edx_proctoring','0014_add_is_resumable_to_proctoredexamstudentattempt','2023-02-21 13:29:25.803967'),(549,'edx_proctoring','0015_rm_proctoredexamstudentattempt_ips','2023-02-21 13:29:27.197660'),(550,'edx_proctoring','0016_nullable_proctoredexamstudentattempt_name','2023-02-21 13:29:27.627947'),(551,'edx_proctoring','0017_rm_proctoredexamstudentattempt_name','2023-02-21 13:29:28.020242'),(552,'edx_proctoring','0018_historicalproctoredexamstudentattempt','2023-02-21 13:29:28.463490'),(553,'edx_proctoring','0019_proctoredexamsoftwaresecurereview_encrypted_video_url','2023-02-21 13:29:28.698903'),(554,'edx_proctoring','0020_auto_20211028_1915','2023-02-21 13:29:29.210323'),(555,'edx_proctoring','0021_auto_20211029_1353','2023-02-21 13:29:30.466896'),(556,'edx_proctoring','0022_proctoredexamstudentattempt_add_readytoresume_resumed','2023-02-21 13:29:31.462699'),(557,'edx_proctoring','0023_historicalproctoredexam','2023-02-21 13:29:31.899407'),(558,'edx_proctoring','0024_delete_proctoredexamstudentattempthistory','2023-02-21 13:29:31.922555'),(559,'edx_when','0001_initial','2023-02-21 13:29:32.701268'),(560,'edx_when','0002_auto_20190318_1736','2023-02-21 13:29:33.961648'),(561,'edx_when','0003_auto_20190402_1501','2023-02-21 13:29:34.830228'),(562,'edx_when','0004_datepolicy_rel_date','2023-02-21 13:29:34.916765'),(563,'edx_when','0005_auto_20190911_1056','2023-02-21 13:29:35.169726'),(564,'edx_when','0006_drop_active_index','2023-02-21 13:29:35.202871'),(565,'edx_when','0007_meta_tweaks','2023-02-21 13:29:35.231312'),(566,'edx_when','0008_courseversion_block_type','2023-02-21 13:29:35.310381'),(567,'edxval','0001_squashed_0016_add_transcript_credentials_model','2023-02-21 13:29:36.304519'),(568,'edxval','0002_add_error_description_field','2023-02-21 13:29:36.357143'),(569,'edxval','0003_delete_transcriptcredentials','2023-02-21 13:29:36.403523'),(570,'email_marketing','0001_initial','2023-02-21 13:29:36.790199'),(571,'email_marketing','0002_auto_20160623_1656','2023-02-21 13:29:40.559325'),(572,'email_marketing','0003_auto_20160715_1145','2023-02-21 13:29:41.812160'),(573,'email_marketing','0004_emailmarketingconfiguration_welcome_email_send_delay','2023-02-21 13:29:42.768311'),(574,'email_marketing','0005_emailmarketingconfiguration_user_registration_cookie_timeout_delay','2023-02-21 13:29:43.075856'),(575,'email_marketing','0006_auto_20170711_0615','2023-02-21 13:29:43.355772'),(576,'email_marketing','0007_auto_20170809_0653','2023-02-21 13:29:44.103798'),(577,'email_marketing','0008_auto_20170809_0539','2023-02-21 13:29:44.442880'),(578,'email_marketing','0009_remove_emailmarketingconfiguration_sailthru_activation_template','2023-02-21 13:29:44.636037'),(579,'email_marketing','0010_auto_20180425_0800','2023-02-21 13:29:45.110428'),(580,'email_marketing','0011_delete_emailmarketingconfiguration','2023-02-21 13:29:45.133563'),(581,'embargo','0001_initial','2023-02-21 13:29:46.952062'),(582,'embargo','0002_data__add_countries','2023-02-21 13:29:48.027251'),(583,'enterprise','0154_alter_systemwideenterpriseuserroleassignment_unique_together','2023-02-21 13:29:48.680808'),(584,'enterprise','0155_add_is_relinkable_to_enterprise_customer_user','2023-02-21 13:29:49.138958'),(585,'enterprise','0156_add_is_active_role_assignment','2023-02-21 13:29:49.718385'),(586,'enterprise','0157_make_field_nullable_before_removal','2023-02-21 13:29:50.784514'),(587,'enterprise','0158_remove_is_active_from_role_assignment','2023-02-21 13:29:51.298337'),(588,'enterprise','0159_add_enable_learner_portal_offers','2023-02-21 13:29:51.688151'),(589,'enterprise','0160_add_enable_portal_learner_credit_management_screen','2023-02-21 13:29:52.087821'),(590,'enterprise','0161_alter_enterprisecustomerreportingconfiguration_data_type','2023-02-21 13:29:52.585893'),(591,'enterprise','0162_add_enable_executive_education_2U_fulfillment','2023-02-21 13:29:52.975691'),(592,'enterprise','0163_auto_20220928_1611','2023-02-21 13:29:53.527825'),(593,'enterprise','0164_enterprisecatalogquery_include_exec_ed_2u_courses','2023-02-21 13:29:53.629212'),(594,'enterprise','0165_alter_enterprisecustomerreportingconfiguration_pgp_encryption_key','2023-02-21 13:29:53.779854'),(595,'enterprise','0166_auto_20221209_0819','2023-02-21 13:29:55.389520'),(596,'experiments','0001_initial','2023-02-21 13:29:56.227338'),(597,'student','0001_squashed_0031_auto_20200317_1122','2023-02-21 13:30:18.424435'),(598,'entitlements','0001_initial','2023-02-21 13:30:19.563061'),(599,'entitlements','0002_auto_20171102_0719','2023-02-21 13:30:20.706140'),(600,'entitlements','0003_auto_20171205_1431','2023-02-21 13:30:22.189841'),(601,'entitlements','0004_auto_20171206_1729','2023-02-21 13:30:23.231185'),(602,'entitlements','0005_courseentitlementsupportdetail','2023-02-21 13:30:23.919348'),(603,'entitlements','0006_courseentitlementsupportdetail_action','2023-02-21 13:30:24.341373'),(604,'entitlements','0007_change_expiration_period_default','2023-02-21 13:30:24.443395'),(605,'entitlements','0008_auto_20180328_1107','2023-02-21 13:30:25.199097'),(606,'entitlements','0009_courseentitlement_refund_locked','2023-02-21 13:30:25.617843'),(607,'entitlements','0010_backfill_refund_lock','2023-02-21 13:30:26.215642'),(608,'entitlements','0011_historicalcourseentitlement','2023-02-21 13:30:26.821317'),(609,'entitlements','0012_allow_blank_order_number_values','2023-02-21 13:30:28.204758'),(610,'entitlements','0013_historicalcourseentitlementsupportdetail','2023-02-21 13:30:29.554868'),(611,'entitlements','0014_auto_20200115_2022','2023-02-21 13:30:30.312453'),(612,'entitlements','0015_add_unique_together_constraint','2023-02-21 13:30:31.910043'),(613,'experiments','0002_auto_20170627_1402','2023-02-21 13:30:32.024909'),(614,'experiments','0003_auto_20170713_1148','2023-02-21 13:30:32.056496'),(615,'experiments','0004_historicalexperimentkeyvalue','2023-02-21 13:30:33.669942'),(616,'external_user_ids','0001_initial','2023-02-21 13:30:43.458984'),(617,'external_user_ids','0002_mb_coaching_20200210_1754','2023-02-21 13:30:45.961895'),(618,'external_user_ids','0003_auto_20200224_1836','2023-02-21 13:30:47.988746'),(619,'external_user_ids','0004_add_lti_type','2023-02-21 13:30:50.762505'),(620,'grades','0001_initial','2023-02-21 13:30:51.202988'),(621,'grades','0002_rename_last_edited_field','2023-02-21 13:30:51.356716'),(622,'grades','0003_coursepersistentgradesflag_persistentgradesenabledflag','2023-02-21 13:30:57.570056'),(623,'grades','0004_visibleblocks_course_id','2023-02-21 13:30:57.689630'),(624,'grades','0005_multiple_course_flags','2023-02-21 13:30:58.614217'),(625,'grades','0006_persistent_course_grades','2023-02-21 13:30:58.857840'),(626,'grades','0007_add_passed_timestamp_column','2023-02-21 13:30:59.092364'),(627,'grades','0008_persistentsubsectiongrade_first_attempted','2023-02-21 13:30:59.199988'),(628,'grades','0009_auto_20170111_1507','2023-02-21 13:30:59.383864'),(629,'grades','0010_auto_20170112_1156','2023-02-21 13:30:59.505750'),(630,'grades','0011_null_edited_time','2023-02-21 13:30:59.745275'),(631,'grades','0012_computegradessetting','2023-02-21 13:31:00.998037'),(632,'grades','0013_persistentsubsectiongradeoverride','2023-02-21 13:31:01.224686'),(633,'grades','0014_persistentsubsectiongradeoverridehistory','2023-02-21 13:31:02.805902'),(634,'grades','0015_historicalpersistentsubsectiongradeoverride','2023-02-21 13:31:03.899059'),(635,'grades','0016_auto_20190703_1446','2023-02-21 13:31:05.200160'),(636,'grades','0017_delete_manual_psgoverride_table','2023-02-21 13:31:07.244124'),(637,'grades','0018_add_waffle_flag_defaults','2023-02-21 13:31:07.971538'),(638,'grades','0019_auto_20220912_0855','2023-02-21 13:31:08.761252'),(639,'instructor_task','0002_gradereportsetting','2023-02-21 13:31:09.500065'),(640,'instructor_task','0003_alter_task_input_field','2023-02-21 13:31:10.112142'),(641,'instructor_task','0004_historicalinstructortaskschedule_instructortaskschedule','2023-02-21 13:31:11.634923'),(642,'instructor_task','0005_alter_instructortaskschedule_task','2023-02-21 13:31:13.907848'),(643,'integrated_channel','0022_alter_contentmetadataitemtransmission_index_together','2023-02-21 13:31:14.117988'),(644,'integrated_channel','0023_auto_20221021_0159','2023-02-21 13:31:14.384081'),(645,'integrated_channel','0024_genericenterprisecustomerpluginconfiguration_deleted_at','2023-02-21 13:31:14.522826'),(646,'integrated_channel','0025_auto_20230105_2122','2023-02-21 13:31:15.338522'),(647,'integrated_channel','0026_genericenterprisecustomerpluginconfiguration_last_modified_at','2023-02-21 13:31:15.465456'),(648,'learner_pathway_progress','0001_initial','2023-02-21 13:31:16.091789'),(649,'learner_pathway_progress','0002_historicallearnerpathwayprogress_learnerpathwayprogress','2023-02-21 13:31:17.152875'),(650,'learner_pathway_progress','0003_auto_20220901_0616','2023-02-21 13:31:18.314082'),(651,'learner_pathway_progress','0004_auto_20220907_0316','2023-02-21 13:31:19.037070'),(652,'learner_pathway_progress','0005_auto_20221007_0758','2023-02-21 13:31:19.568836'),(653,'learning_sequences','0001_initial','2023-02-21 13:31:20.402621'),(654,'learning_sequences','0002_coursesectionsequence_inaccessible_after_due','2023-02-21 13:31:20.487304'),(655,'learning_sequences','0003_create_course_context_for_course_specific_models','2023-02-21 13:31:21.122249'),(656,'learning_sequences','0004_coursecontext_self_paced','2023-02-21 13:31:21.200705'),(657,'learning_sequences','0005_coursecontext_days_early_for_beta','2023-02-21 13:31:21.263386'),(658,'learning_sequences','0006_coursecontext_entrance_exam_id','2023-02-21 13:31:21.319152'),(659,'learning_sequences','0007_coursesequenceexam','2023-02-21 13:31:21.411621'),(660,'learning_sequences','0008_add_learning_context_title_index','2023-02-21 13:31:21.460786'),(661,'learning_sequences','0009_contenterror_publishreport','2023-02-21 13:31:21.652050'),(662,'learning_sequences','0010_add_publishreport_indexes','2023-02-21 13:31:21.790076'),(663,'learning_sequences','0011_course_meta_names','2023-02-21 13:31:21.852784'),(664,'learning_sequences','0012_add_user_partition_group','2023-02-21 13:31:22.234122'),(665,'learning_sequences','0013_through_model_for_user_partition_groups_1','2023-02-21 13:31:22.621786'),(666,'learning_sequences','0014_remove_user_partition_group_duplicates','2023-02-21 13:31:23.112303'),(667,'learning_sequences','0015_add_user_partition_group_unique_constraint','2023-02-21 13:31:23.158032'),(668,'learning_sequences','0016_through_model_for_user_partition_groups_2','2023-02-21 13:31:23.252987'),(669,'lms_xblock','0001_initial','2023-02-21 13:31:24.190432'),(670,'lti_consumer','0014_adds_external_id','2023-02-21 13:31:24.269804'),(671,'lti_consumer','0015_add_additional_1p3_fields','2023-02-21 13:31:24.779537'),(672,'lti_consumer','0016_lticonfiguration_lti_1p3_proctoring_enabled','2023-02-21 13:31:24.849247'),(673,'milestones','0001_initial','2023-02-21 13:31:25.613678'),(674,'milestones','0002_data__seed_relationship_types','2023-02-21 13:31:26.117524'),(675,'milestones','0003_coursecontentmilestone_requirements','2023-02-21 13:31:26.187665'),(676,'milestones','0004_auto_20151221_1445','2023-02-21 13:31:26.343048'),(677,'mobile_api','0001_initial','2023-02-21 13:31:26.876745'),(678,'mobile_api','0002_auto_20160406_0904','2023-02-21 13:31:27.038271'),(679,'mobile_api','0003_ignore_mobile_available_flag','2023-02-21 13:31:27.868075'),(680,'mobile_api','0004_mobileconfig','2023-02-21 13:31:27.917278'),(681,'moodle','0001_initial','2023-02-21 13:31:29.824384'),(682,'moodle','0002_moodlelearnerdatatransmissionaudit','2023-02-21 13:31:29.873964'),(683,'moodle','0003_auto_20201006_1706','2023-02-21 13:31:30.263844'),(684,'moodle','0004_auto_20201105_1921','2023-02-21 13:31:30.713189'),(685,'moodle','0005_auto_20210708_1446','2023-02-21 13:31:31.094816'),(686,'moodle','0006_auto_20210909_1536','2023-02-21 13:31:31.617750'),(687,'moodle','0007_auto_20210923_1727','2023-02-21 13:31:32.119807'),(688,'moodle','0008_alter_moodleenterprisecustomerconfiguration_enterprise_customer','2023-02-21 13:31:33.175241'),(689,'moodle','0009_auto_20220126_1837','2023-02-21 13:31:38.299647'),(690,'moodle','0010_auto_20220131_1539','2023-02-21 13:31:39.437324'),(691,'moodle','0011_auto_20220302_2231','2023-02-21 13:31:40.567101'),(692,'moodle','0012_alter_moodlelearnerdatatransmissionaudit_completed_timestamp','2023-02-21 13:31:40.707533'),(693,'moodle','0013_auto_20220324_1550','2023-02-21 13:31:41.666180'),(694,'moodle','0014_auto_20220325_1757','2023-02-21 13:31:41.863793'),(695,'moodle','0015_auto_20220405_2311','2023-02-21 13:31:42.167398'),(696,'moodle','0016_auto_20220523_1625','2023-02-21 13:31:43.150225'),(697,'moodle','0017_moodlelearnerdatatransmissionaudit_friendly_status_message','2023-02-21 13:31:43.272426'),(698,'moodle','0018_moodlelearnerdatatransmissionaudit_api_record','2023-02-21 13:31:45.318206'),(699,'moodle','0019_auto_20221021_0159','2023-02-21 13:31:45.979698'),(700,'moodle','0020_auto_20221031_1855','2023-02-21 13:31:46.935863'),(701,'moodle','0021_move_and_recrete_completed_timestamp','2023-02-21 13:31:47.097900'),(702,'moodle','0022_auto_20221220_1527','2023-02-21 13:31:48.361092'),(703,'moodle','0023_alter_moodlelearnerdatatransmissionaudit_index_together','2023-02-21 13:31:48.467938'),(704,'moodle','0024_auto_20230105_2122','2023-02-21 13:31:52.137578'),(705,'moodle','0025_auto_20230112_2002','2023-02-21 13:31:52.591638'),(706,'oauth2_provider','0001_initial','2023-02-21 13:31:55.988452'),(707,'oauth2_provider','0002_auto_20190406_1805','2023-02-21 13:31:56.766355'),(708,'oauth_dispatch','0001_initial','2023-02-21 13:31:57.246115'),(709,'oauth_dispatch','0002_scopedapplication_scopedapplicationorganization','2023-02-21 13:31:58.854739'),(710,'oauth_dispatch','0003_application_data','2023-02-21 13:31:59.835459'),(711,'oauth_dispatch','0004_auto_20180626_1349','2023-02-21 13:32:02.797766'),(712,'oauth_dispatch','0005_applicationaccess_type','2023-02-21 13:32:03.926387'),(713,'oauth_dispatch','0006_drop_application_id_constraints','2023-02-21 13:32:05.487720'),(714,'oauth_dispatch','0007_restore_application_id_constraints','2023-02-21 13:32:07.619338'),(715,'oauth_dispatch','0008_applicationaccess_filters','2023-02-21 13:32:07.699250'),(716,'oauth_dispatch','0009_delete_enable_scopes_waffle_switch','2023-02-21 13:32:08.314658'),(717,'oauth_dispatch','0010_noop_migration_to_test_rollback','2023-02-21 13:32:08.336086'),(718,'oauth_dispatch','0011_noop_migration_to_test_rollback','2023-02-21 13:32:08.358385'),(719,'oauth_dispatch','0012_noop_migration_to_test_rollback','2023-02-21 13:32:08.379724'),(720,'organizations','0002_unique_short_name','2023-02-21 13:32:08.798633'),(721,'organizations','0003_historicalorganizationcourse','2023-02-21 13:32:09.414523'),(722,'outcome_surveys','0001_initial','2023-02-21 13:32:09.564751'),(723,'outcome_surveys','0002_learnercourseevent_already_sent','2023-02-21 13:32:09.650779'),(724,'outcome_surveys','0003_auto_20230130_0352','2023-02-21 13:32:10.231579'),(725,'outcome_surveys','0004_auto_20230203_0147','2023-02-21 13:32:10.865118'),(726,'program_enrollments','0001_initial','2023-02-21 13:32:13.809959'),(727,'program_enrollments','0002_historicalprogramcourseenrollment_programcourseenrollment','2023-02-21 13:32:16.017503'),(728,'program_enrollments','0003_auto_20190424_1622','2023-02-21 13:32:16.508229'),(729,'program_enrollments','0004_add_programcourseenrollment_relatedname','2023-02-21 13:32:17.502682'),(730,'program_enrollments','0005_canceled_not_withdrawn','2023-02-21 13:32:18.971444'),(731,'program_enrollments','0006_add_the_correct_constraints','2023-02-21 13:32:19.810833'),(732,'program_enrollments','0007_waiting_programcourseenrollment_constraint','2023-02-21 13:32:19.945335'),(733,'program_enrollments','0008_add_ended_programenrollment_status','2023-02-21 13:32:22.050233'),(734,'program_enrollments','0009_update_course_enrollment_field_to_foreign_key','2023-02-21 13:32:23.092716'),(735,'program_enrollments','0010_add_courseaccessroleassignment','2023-02-21 13:32:24.347493'),(736,'programs','0001_initial','2023-02-21 13:32:25.277602'),(737,'programs','0002_programsapiconfig_cache_ttl','2023-02-21 13:32:25.847180'),(738,'programs','0003_auto_20151120_1613','2023-02-21 13:32:30.848753'),(739,'programs','0004_programsapiconfig_enable_certification','2023-02-21 13:32:31.280048'),(740,'programs','0005_programsapiconfig_max_retries','2023-02-21 13:32:31.952805'),(741,'programs','0006_programsapiconfig_xseries_ad_enabled','2023-02-21 13:32:32.348092'),(742,'programs','0007_programsapiconfig_program_listing_enabled','2023-02-21 13:32:32.674958'),(743,'programs','0008_programsapiconfig_program_details_enabled','2023-02-21 13:32:32.982953'),(744,'programs','0009_programsapiconfig_marketing_path','2023-02-21 13:32:33.412048'),(745,'programs','0010_auto_20170204_2332','2023-02-21 13:32:34.717929'),(746,'programs','0011_auto_20170301_1844','2023-02-21 13:32:40.663707'),(747,'programs','0012_auto_20170419_0018','2023-02-21 13:32:41.023871'),(748,'programs','0013_customprogramsconfig','2023-02-21 13:32:41.765965'),(749,'programs','0014_delete_customprogramsconfig','2023-02-21 13:32:41.802969'),(750,'programs','0015_historicalprogramdiscussionsconfiguration_historicalprogramliveconfiguration_programdiscussionsconfi','2023-02-21 13:32:45.256858'),(751,'redirects','0001_initial','2023-02-21 13:32:45.923158'),(752,'redirects','0002_alter_redirect_new_path_help_text','2023-02-21 13:32:46.010499'),(753,'rss_proxy','0001_initial','2023-02-21 13:32:46.049805'),(754,'sap_success_factors','0001_squashed_0022_auto_20200206_1046','2023-02-21 13:32:47.985654'),(755,'sap_success_factors','0002_sapsuccessfactorslearnerdatatransmissionaudit_credit_hours','2023-02-21 13:32:47.995587'),(756,'sap_success_factors','0003_auto_20210701_1556','2023-02-21 13:32:48.006286'),(757,'sap_success_factors','0004_auto_20210708_1639','2023-02-21 13:32:48.015277'),(758,'sap_success_factors','0005_sapsuccessfactorsenterprisecustomerconfiguration_prevent_learner_self_submit_grades','2023-02-21 13:32:48.026394'),(759,'sap_success_factors','0006_sapsuccessfactorsenterprisecustomerconfiguration_idp_id','2023-02-21 13:32:48.036515'),(760,'sap_success_factors','0007_sapsuccessfactorsenterprisecustomerconfiguration_disable_learner_data_transmissions','2023-02-21 13:32:48.048715'),(761,'sap_success_factors','0008_alter_sapsuccessfactorsenterprisecustomerconfiguration_enterprise_customer','2023-02-21 13:32:48.057603'),(762,'sap_success_factors','0009_auto_20220126_1837','2023-02-21 13:32:48.066139'),(763,'sap_success_factors','0010_sapsuccessfactorsenterprisecustomerconfiguration_display_name','2023-02-21 13:32:48.074574'),(764,'sap_success_factors','0011_alter_sapsuccessfactorslearnerdatatransmissionaudit_enterprise_course_enrollment_id','2023-02-21 13:32:48.083163'),(765,'sap_success_factors','0002_alter_sapsuccessfactorsenterprisecustomerconfiguration_display_name','2023-02-21 13:32:48.231857'),(766,'sap_success_factors','0003_alter_sapsuccessfactorslearnerdatatransmissionaudit_completed_timestamp','2023-02-21 13:32:48.291908'),(767,'sap_success_factors','0004_auto_20220324_1550','2023-02-21 13:32:48.971190'),(768,'sap_success_factors','0005_auto_20220325_1757','2023-02-21 13:32:48.983820'),(769,'sap_success_factors','0006_auto_20220330_1157','2023-02-21 13:32:48.994768'),(770,'sap_success_factors','0005_sapsuccessfactorsenterprisecustomerconfiguration_dry_run_mode_enabled','2023-02-21 13:32:49.162235'),(771,'sap_success_factors','0006_sapsuccessfactorslearnerdatatransmissionaudit_friendly_status_message','2023-02-21 13:32:49.920952'),(772,'sap_success_factors','0007_sapsuccessfactorslearnerdatatransmissionaudit_api_record','2023-02-21 13:32:50.609389'),(773,'sap_success_factors','0008_auto_20221021_0159','2023-02-21 13:32:50.972687'),(774,'sap_success_factors','0009_sapsuccessfactorsenterprisecustomerconfiguration_deleted_at','2023-02-21 13:32:51.145926'),(775,'sap_success_factors','0010_move_and_recrete_completed_timestamp','2023-02-21 13:32:51.362970'),(776,'sap_success_factors','0011_alter_sapsuccessfactorslearnerdatatransmissionaudit_index_together','2023-02-21 13:32:51.531850'),(777,'sap_success_factors','0012_auto_20230105_2122','2023-02-21 13:32:52.645546'),(778,'sap_success_factors','0013_sapsuccessfactorsenterprisecustomerconfiguration_last_modified_at','2023-02-21 13:32:52.801849'),(779,'save_for_later','0001_initial','2023-02-21 13:32:52.918717'),(780,'save_for_later','0002_auto_20220322_1621','2023-02-21 13:32:53.482988'),(781,'schedules','0001_initial','2023-02-21 13:32:54.230119'),(782,'schedules','0002_auto_20170816_1532','2023-02-21 13:32:54.351707'),(783,'schedules','0003_scheduleconfig','2023-02-21 13:32:55.491223'),(784,'schedules','0004_auto_20170922_1428','2023-02-21 13:32:56.245603'),(785,'schedules','0005_auto_20171010_1722','2023-02-21 13:32:57.106924'),(786,'schedules','0006_scheduleexperience','2023-02-21 13:32:57.858943'),(787,'schedules','0007_scheduleconfig_hold_back_ratio','2023-02-21 13:32:58.323136'),(788,'schedules','0008_add_new_start_date_field','2023-02-21 13:32:58.428949'),(789,'schedules','0009_schedule_copy_column_values','2023-02-21 13:32:59.684998'),(790,'schedules','0010_remove_null_blank_from_schedules_date','2023-02-21 13:32:59.766597'),(791,'schedules','0011_auto_20200228_2018','2023-02-21 13:33:00.343625'),(792,'schedules','0012_auto_20200302_1914','2023-02-21 13:33:00.949962'),(793,'schedules','0013_historicalschedule','2023-02-21 13:33:01.591467'),(794,'schedules','0014_historicalschedule_drop_fk','2023-02-21 13:33:02.156121'),(795,'schedules','0015_schedules_start_nullable','2023-02-21 13:33:02.675453'),(796,'schedules','0016_remove_start_from_schedules','2023-02-21 13:33:02.775714'),(797,'schedules','0017_remove_start_from_historicalschedule','2023-02-21 13:33:03.225790'),(798,'schedules','0018_readd_historicalschedule_fks','2023-02-21 13:33:04.980123'),(799,'schedules','0019_auto_20200316_1935','2023-02-21 13:33:06.263128'),(800,'schedules','0020_remove_config_rollout_fields','2023-02-21 13:33:07.157752'),(801,'sessions','0001_initial','2023-02-21 13:33:07.239613'),(802,'site_configuration','0001_initial','2023-02-21 13:33:09.217142'),(803,'site_configuration','0002_auto_20160720_0231','2023-02-21 13:33:09.591052'),(804,'site_configuration','0003_auto_20200217_1058','2023-02-21 13:33:09.918713'),(805,'site_configuration','0004_add_site_values_field','2023-02-21 13:33:10.241872'),(806,'site_configuration','0005_populate_siteconfig_history_site_values','2023-02-21 13:33:10.278027'),(807,'site_configuration','0006_copy_values_to_site_values','2023-02-21 13:33:11.242068'),(808,'site_configuration','0007_remove_values_field','2023-02-21 13:33:11.478036'),(809,'site_configuration','0008_auto_20210910_0940','2023-02-21 13:33:11.660046'),(810,'default','0001_initial','2023-02-21 13:33:12.838816'),(811,'social_auth','0001_initial','2023-02-21 13:33:12.850773'),(812,'default','0002_add_related_name','2023-02-21 13:33:13.338829'),(813,'social_auth','0002_add_related_name','2023-02-21 13:33:13.347587'),(814,'default','0003_alter_email_max_length','2023-02-21 13:33:13.455902'),(815,'social_auth','0003_alter_email_max_length','2023-02-21 13:33:13.465163'),(816,'default','0004_auto_20160423_0400','2023-02-21 13:33:14.475355'),(817,'social_auth','0004_auto_20160423_0400','2023-02-21 13:33:14.488613'),(818,'social_auth','0005_auto_20160727_2333','2023-02-21 13:33:14.545730'),(819,'social_django','0006_partial','2023-02-21 13:33:14.610483'),(820,'social_django','0007_code_timestamp','2023-02-21 13:33:14.704075'),(821,'social_django','0008_partial_timestamp','2023-02-21 13:33:14.799950'),(822,'social_django','0009_auto_20191118_0520','2023-02-21 13:33:15.623973'),(823,'social_django','0010_uid_db_index','2023-02-21 13:33:16.082527'),(824,'splash','0001_initial','2023-02-21 13:33:16.766738'),(825,'split_modulestore_django','0001_initial','2023-02-21 13:33:17.731081'),(826,'split_modulestore_django','0002_data_migration','2023-02-21 14:10:20.881045'),(827,'staffgrader','0001_initial','2023-02-21 14:10:20.916647'),(828,'static_replace','0001_initial','2023-02-21 14:10:21.301704'),(829,'static_replace','0002_assetexcludedextensionsconfig','2023-02-21 14:10:21.756292'),(830,'status','0001_initial','2023-02-21 14:10:22.870588'),(831,'status','0002_update_help_text','2023-02-21 14:10:23.102211'),(832,'student','0032_removed_logout_view_configuration','2023-02-21 14:10:23.475584'),(833,'student','0033_userprofile_state','2023-02-21 14:10:23.749998'),(834,'student','0034_courseenrollmentcelebration','2023-02-21 14:10:24.125040'),(835,'student','0035_bulkchangeenrollmentconfiguration','2023-02-21 14:10:24.868911'),(836,'student','0036_userpasswordtogglehistory','2023-02-21 14:10:25.273793'),(837,'student','0037_linkedinaddtoprofileconfiguration_updates','2023-02-21 14:10:25.961403'),(838,'student','0038_auto_20201021_1256','2023-02-21 14:10:26.218616'),(839,'student','0039_anon_id_context','2023-02-21 14:10:26.460312'),(840,'student','0040_usercelebration','2023-02-21 14:10:27.219142'),(841,'student','0041_registration_activation_timestamp','2023-02-21 14:10:27.471997'),(842,'student','0042_allow_certificate_null_20210427_1519','2023-02-21 14:10:27.727679'),(843,'student','0043_remove_userprofile_allow_certificate','2023-02-21 14:10:27.991614'),(844,'student','0044_courseenrollmentcelebration_celebrate_weekly_goal','2023-02-21 14:10:28.053153'),(845,'submissions','0001_initial','2023-02-21 14:10:29.610191'),(846,'submissions','0002_auto_20151119_0913','2023-02-21 14:10:29.618239'),(847,'submissions','0003_submission_status','2023-02-21 14:10:29.626122'),(848,'submissions','0004_remove_django_extensions','2023-02-21 14:10:29.634702'),(849,'submissions','0005_CreateTeamModel','2023-02-21 14:10:29.643844'),(850,'submissions','0002_team_submission_optional','2023-02-21 14:10:29.990975'),(851,'submissions','0003_ensure_ascii','2023-02-21 14:10:30.028478'),(852,'super_csv','0001_initial','2023-02-21 14:10:30.077884'),(853,'super_csv','0002_csvoperation_user','2023-02-21 14:10:30.448776'),(854,'super_csv','0003_csvoperation_original_filename','2023-02-21 14:10:30.732477'),(855,'support','0001_initial','2023-02-21 14:10:31.503512'),(856,'survey','0001_initial','2023-02-21 14:10:32.010787'),(857,'survey_report','0001_initial','2023-02-21 14:10:32.047023'),(858,'survey_report','0002_auto_20221130_1533','2023-02-21 14:10:32.183084'),(859,'survey_report','0003_add_state_field_and_add_default_values_to_fields','2023-02-21 14:10:32.332036'),(860,'system_wide_roles','0001_SystemWideRole_SystemWideRoleAssignment','2023-02-21 14:10:32.765748'),(861,'system_wide_roles','0002_add_system_wide_student_support_role','2023-02-21 14:10:33.275684'),(862,'system_wide_roles','0003_systemwideroleassignment_applies_to_all_contexts','2023-02-21 14:10:33.905984'),(863,'teams','0001_initial','2023-02-21 14:10:35.039510'),(864,'teams','0002_slug_field_ids','2023-02-21 14:10:35.555941'),(865,'teams','0003_courseteam_organization_protected','2023-02-21 14:10:36.224064'),(866,'teams','0004_alter_defaults','2023-02-21 14:10:37.235544'),(867,'theming','0001_initial','2023-02-21 14:10:37.663130'),(868,'third_party_auth','0001_squashed_0026_auto_20200401_1932','2023-02-21 14:10:39.967730'),(869,'third_party_auth','0002_samlproviderconfig_country','2023-02-21 14:10:40.627800'),(870,'third_party_auth','0002_auto_20200721_1650','2023-02-21 14:10:41.773551'),(871,'third_party_auth','0003_samlconfiguration_is_public','2023-02-21 14:10:42.079806'),(872,'third_party_auth','0004_auto_20200919_0955','2023-02-21 14:10:43.526877'),(873,'third_party_auth','0005_auto_20210723_1527','2023-02-21 14:10:44.457979'),(874,'third_party_auth','0006_auto_20220314_1551','2023-02-21 14:10:47.770521'),(875,'third_party_auth','0007_samlproviderconfig_was_valid_at','2023-02-21 14:10:48.079123'),(876,'third_party_auth','0008_auto_20220324_1422','2023-02-21 14:10:48.672412'),(877,'third_party_auth','0009_historicalusersocialauth','2023-02-21 14:10:49.468870'),(878,'third_party_auth','0010_delete_historicalusersocialauth','2023-02-21 14:10:49.494847'),(879,'thumbnail','0001_initial','2023-02-21 14:10:49.526935'),(880,'track','0001_initial','2023-02-21 14:10:49.561379'),(881,'track','0002_delete_trackinglog','2023-02-21 14:10:49.587183'),(882,'user_api','0003_userretirementrequest','2023-02-21 14:10:50.014807'),(883,'user_api','0004_userretirementpartnerreportingstatus','2023-02-21 14:10:50.455161'),(884,'user_authn','0001_data__add_login_service','2023-02-21 14:10:50.974710'),(885,'user_tours','0001_initial','2023-02-21 14:10:51.755505'),(886,'user_tours','0002_auto_20230110_0905','2023-02-21 14:10:52.427559'),(887,'util','0001_initial','2023-02-21 14:10:52.875374'),(888,'util','0002_data__default_rate_limit_config','2023-02-21 14:10:53.731957'),(889,'verify_student','0001_initial','2023-02-21 14:10:58.168830'),(890,'verify_student','0002_auto_20151124_1024','2023-02-21 14:10:58.511158'),(891,'verify_student','0003_auto_20151113_1443','2023-02-21 14:10:58.800255'),(892,'verify_student','0004_delete_historical_records','2023-02-21 14:10:59.248141'),(893,'verify_student','0005_remove_deprecated_models','2023-02-21 14:11:03.203469'),(894,'verify_student','0006_ssoverification','2023-02-21 14:11:03.643558'),(895,'verify_student','0007_idverificationaggregate','2023-02-21 14:11:04.562794'),(896,'verify_student','0008_populate_idverificationaggregate','2023-02-21 14:11:05.020978'),(897,'verify_student','0009_remove_id_verification_aggregate','2023-02-21 14:11:05.850684'),(898,'verify_student','0010_manualverification','2023-02-21 14:11:06.624210'),(899,'verify_student','0011_add_fields_to_sspv','2023-02-21 14:11:07.258092'),(900,'verify_student','0012_sspverificationretryconfig','2023-02-21 14:11:07.662944'),(901,'verify_student','0013_add_expiration_date_field','2023-02-21 14:11:08.891581'),(902,'verify_student','0014_remove_softwaresecurephotoverification_expiry_date','2023-02-21 14:11:09.200409'),(903,'video_config','0001_initial','2023-02-21 14:11:10.038916'),(904,'video_config','0002_coursevideotranscriptenabledflag_videotranscriptenabledflag','2023-02-21 14:11:11.223934'),(905,'video_config','0003_transcriptmigrationsetting','2023-02-21 14:11:11.668173'),(906,'video_config','0004_transcriptmigrationsetting_command_run','2023-02-21 14:11:11.952099'),(907,'video_config','0005_auto_20180719_0752','2023-02-21 14:11:12.606497'),(908,'video_config','0006_videothumbnailetting_updatedcoursevideos','2023-02-21 14:11:13.119594'),(909,'video_config','0007_videothumbnailsetting_offset','2023-02-21 14:11:13.422260'),(910,'video_config','0008_courseyoutubeblockedflag','2023-02-21 14:11:13.868743'),(911,'video_pipeline','0001_initial','2023-02-21 14:11:14.705048'),(912,'video_pipeline','0002_auto_20171114_0704','2023-02-21 14:11:15.294207'),(913,'video_pipeline','0003_coursevideouploadsenabledbydefault_videouploadsenabledbydefault','2023-02-21 14:11:16.134650'),(914,'video_pipeline','0004_vempipelineintegration','2023-02-21 14:11:16.952185'),(915,'video_pipeline','0005_add_vem_course_percentage','2023-02-21 14:11:17.242518'),(916,'video_pipeline','0006_remove_vempipelineintegration_vem_enabled_courses_percentage','2023-02-21 14:11:17.566297'),(917,'video_pipeline','0007_delete_videopipelineintegration','2023-02-21 14:11:17.594962'),(918,'waffle','0002_auto_20161201_0958','2023-02-21 14:11:17.624685'),(919,'waffle','0003_update_strings_for_i18n','2023-02-21 14:11:23.292034'),(920,'waffle','0004_update_everyone_nullbooleanfield','2023-02-21 14:11:23.578121'),(921,'waffle_utils','0001_initial','2023-02-21 14:11:24.006111'),(922,'waffle_utils','0002_waffleflagcourseoverridemodel_note','2023-02-21 14:11:24.314659'),(923,'waffle_utils','0003_add_org_level_waffle_override','2023-02-21 14:11:25.410227'),(924,'wiki','0001_initial','2023-02-21 14:11:37.902916'),(925,'wiki','0002_remove_article_subscription','2023-02-21 14:11:37.961869'),(926,'wiki','0003_ip_address_conv','2023-02-21 14:11:38.867136'),(927,'wiki','0004_increase_slug_size','2023-02-21 14:11:38.983566'),(928,'wiki','0005_remove_attachments_and_images','2023-02-21 14:11:41.199279'),(929,'wiki','0006_auto_20200110_1003','2023-02-21 14:11:41.500053'),(930,'workflow','0001_initial','2023-02-21 14:11:41.701847'),(931,'workflow','0002_remove_django_extensions','2023-02-21 14:11:41.747989'),(932,'workflow','0003_TeamWorkflows','2023-02-21 14:11:41.832405'),(933,'workflow','0004_assessmentworkflowstep_skipped','2023-02-21 14:11:41.898662'),(934,'xapi','0001_initial','2023-02-21 14:11:42.760106'),(935,'xapi','0002_auto_20180726_0142','2023-02-21 14:11:43.019627'),(936,'xapi','0003_auto_20190807_1006','2023-02-21 14:11:43.761012'),(937,'xapi','0004_auto_20190830_0710','2023-02-21 14:11:44.056852'),(938,'xapi','0005_auto_20220324_1550','2023-02-21 14:11:47.137287'),(939,'xapi','0006_auto_20220325_1757','2023-02-21 14:11:47.731109'),(940,'xapi','0007_auto_20220405_2311','2023-02-21 14:11:48.330598'),(941,'xapi','0008_xapilearnerdatatransmissionaudit_friendly_status_message','2023-02-21 14:11:49.003812'),(942,'xapi','0009_xapilearnerdatatransmissionaudit_api_record','2023-02-21 14:11:49.453709'),(943,'xapi','0010_auto_20221021_0159','2023-02-21 14:11:50.386209'),(944,'xapi','0011_alter_xapilearnerdatatransmissionaudit_index_together','2023-02-21 14:11:51.088828'),(945,'xblock_django','0001_initial','2023-02-21 14:11:51.520782'),(946,'xblock_django','0002_auto_20160204_0809','2023-02-21 14:11:51.831989'),(947,'xblock_django','0003_add_new_config_models','2023-02-21 14:11:53.469781'),(948,'xblock_django','0004_delete_xblock_disable_config','2023-02-21 14:11:53.936302'),(949,'social_django','0004_auto_20160423_0400','2023-02-21 14:11:53.968948'),(950,'social_django','0001_initial','2023-02-21 14:11:53.978002'),(951,'social_django','0003_alter_email_max_length','2023-02-21 14:11:53.986483'),(952,'social_django','0002_add_related_name','2023-02-21 14:11:53.995365'),(953,'social_django','0005_auto_20160727_2333','2023-02-21 14:11:54.004187'),(954,'submissions','0001_squashed_0005_CreateTeamModel','2023-02-21 14:11:54.012795'),(955,'organizations','0001_squashed_0007_historicalorganization','2023-02-21 14:11:54.022870'),(956,'sap_success_factors','0004_auto_20220324_1550_squashed_0006_auto_20220330_1157','2023-02-21 14:11:54.030905'),(957,'sap_success_factors','0001_squashed_0022_auto_20200206_1046_squashed_0011_alter_sapsuccessfactorslearnerdatatransmissionaudit_enterprise_course_enrollment_id','2023-02-21 14:11:54.039666'),(958,'blackboard','0001_initial_squashed_0014_alter_blackboardlearnerassessmentdatatransmissionaudit_enterprise_course_enrollment_id','2023-02-21 14:11:54.047924'),(959,'contentstore','0001_initial','2023-02-21 14:18:20.728696'),(960,'contentstore','0002_add_assets_page_flag','2023-02-21 14:18:21.758959'),(961,'contentstore','0003_remove_assets_page_flag','2023-02-21 14:18:22.616383'),(962,'contentstore','0004_remove_push_notification_configmodel_table','2023-02-21 14:18:23.311983'),(963,'contentstore','0005_add_enable_checklists_quality_waffle_flag','2023-02-21 14:18:23.339689'),(964,'contentstore','0006_courseoutlineregenerate','2023-02-21 14:18:23.363687'),(965,'contentstore','0007_backfillcoursetabsconfig','2023-02-21 14:18:23.906393'),(966,'contentstore','0008_cleanstalecertificateavailabilitydatesconfig','2023-02-21 14:18:24.319837'),(967,'course_creators','0001_initial','2023-02-21 14:18:24.750847'),(968,'course_creators','0002_add_org_support_for_course_creators','2023-02-21 14:18:25.716990'),(969,'tagging','0001_initial','2023-02-21 14:18:25.828483'),(970,'tagging','0002_auto_20170116_1541','2023-02-21 14:18:25.870431'),(971,'user_tasks','0001_initial','2023-02-21 14:18:26.657025'),(972,'user_tasks','0002_artifact_file_storage','2023-02-21 14:18:26.693002'),(973,'user_tasks','0003_url_max_length','2023-02-21 14:18:26.731443'),(974,'user_tasks','0004_url_textfield','2023-02-21 14:18:26.789843'),(975,'xblock_config','0001_initial','2023-02-21 14:18:27.169784'),(976,'xblock_config','0002_courseeditltifieldsenabledflag','2023-02-21 14:18:27.179255'),(977,'xblock_config','0003_move_course_edit_lti_fields_enabled_flag_model_to_lti_consumer','2023-02-21 14:18:27.187571'),(978,'xblock_config','0001_squashed_0003_move_course_edit_lti_fields_enabled_flag_model_to_lti_consumer','2023-02-21 14:18:27.222866'); +/*!40000 ALTER TABLE `django_migrations` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `course_overviews_courseoverview` +-- Table structure for table `django_redirect` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `course_overviews_courseoverview` ( - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, - `version` int(11) NOT NULL, - `id` varchar(255) NOT NULL, - `_location` varchar(255) NOT NULL, - `display_name` longtext, - `display_number_with_default` longtext NOT NULL, - `display_org_with_default` longtext NOT NULL, - `start` datetime(6) DEFAULT NULL, - `end` datetime(6) DEFAULT NULL, - `advertised_start` longtext, - `course_image_url` longtext NOT NULL, - `social_sharing_url` longtext, - `end_of_course_survey_url` longtext, - `certificates_display_behavior` longtext, - `certificates_show_before_end` tinyint(1) NOT NULL, - `cert_html_view_enabled` tinyint(1) NOT NULL, - `has_any_active_web_certificate` tinyint(1) NOT NULL, - `cert_name_short` longtext NOT NULL, - `cert_name_long` longtext NOT NULL, - `lowest_passing_grade` decimal(5,2) DEFAULT NULL, - `days_early_for_beta` double DEFAULT NULL, - `mobile_available` tinyint(1) NOT NULL, - `visible_to_staff_only` tinyint(1) NOT NULL, - `_pre_requisite_courses_json` longtext NOT NULL, - `enrollment_start` datetime(6) DEFAULT NULL, - `enrollment_end` datetime(6) DEFAULT NULL, - `enrollment_domain` longtext, - `invitation_only` tinyint(1) NOT NULL, - `max_student_enrollments_allowed` int(11) DEFAULT NULL, - `announcement` datetime(6) DEFAULT NULL, - `catalog_visibility` longtext, - `course_video_url` longtext, - `effort` longtext, - `short_description` longtext, - `org` longtext NOT NULL, - `self_paced` tinyint(1) NOT NULL, - `marketing_url` longtext, - `eligible_for_financial_aid` tinyint(1) NOT NULL, - `language` longtext, - `certificate_available_date` datetime(6) DEFAULT NULL, - PRIMARY KEY (`id`) +CREATE TABLE `django_redirect` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `site_id` int(11) NOT NULL, + `old_path` varchar(200) NOT NULL, + `new_path` varchar(200) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `django_redirect_site_id_old_path_ac5dd16b_uniq` (`site_id`,`old_path`), + KEY `django_redirect_old_path_c6cc94d3` (`old_path`), + CONSTRAINT `django_redirect_site_id_c3e37341_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `course_overviews_courseoverview` +-- Dumping data for table `django_redirect` -- -LOCK TABLES `course_overviews_courseoverview` WRITE; -/*!40000 ALTER TABLE `course_overviews_courseoverview` DISABLE KEYS */; -INSERT INTO `course_overviews_courseoverview` VALUES ('2017-06-07 00:43:57.033186','2018-01-31 21:14:10.555509',6,'course-v1:edX+DemoX+Demo_Course','block-v1:edX+DemoX+Demo_Course+type@course+block@course','edX Demonstration Course','DemoX','edX','2013-02-05 05:00:00.000000',NULL,NULL,'/asset-v1:edX+DemoX+Demo_Course+type@asset+block@images_course_image.jpg',NULL,NULL,'end',0,1,0,'','',0.60,NULL,0,0,'[]',NULL,NULL,NULL,0,NULL,NULL,'both',NULL,NULL,NULL,'edX',0,NULL,1,NULL,NULL),('2018-01-31 21:27:05.925175','2018-01-31 21:27:06.172514',6,'course-v1:edX+E2E-101+course','block-v1:edX+E2E-101+course+type@course+block@course','Manual Smoke Test Course 1 - Auto','E2E-101','edX','2016-01-01 00:00:00.000000','2018-12-31 00:00:00.000000',NULL,'/static/studio/images/pencils.jpg',NULL,NULL,'end',0,1,0,'','',0.50,NULL,0,0,'[]',NULL,NULL,NULL,0,NULL,NULL,'both',NULL,NULL,'','edX',0,NULL,1,NULL,'2019-01-02 00:00:00.000000'); -/*!40000 ALTER TABLE `course_overviews_courseoverview` ENABLE KEYS */; +LOCK TABLES `django_redirect` WRITE; +/*!40000 ALTER TABLE `django_redirect` DISABLE KEYS */; +/*!40000 ALTER TABLE `django_redirect` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `course_overviews_courseoverviewimageconfig` +-- Table structure for table `django_session` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `course_overviews_courseoverviewimageconfig` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `small_width` int(11) NOT NULL, - `small_height` int(11) NOT NULL, - `large_width` int(11) NOT NULL, - `large_height` int(11) NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `course_overviews__changed_by_id_54b19ba1c134af6a_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `course_overviews__changed_by_id_54b19ba1c134af6a_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +CREATE TABLE `django_session` ( + `session_key` varchar(40) NOT NULL, + `session_data` longtext NOT NULL, + `expire_date` datetime(6) NOT NULL, + PRIMARY KEY (`session_key`), + KEY `django_session_expire_date_a5c62663` (`expire_date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `course_overviews_courseoverviewimageconfig` +-- Dumping data for table `django_session` -- -LOCK TABLES `course_overviews_courseoverviewimageconfig` WRITE; -/*!40000 ALTER TABLE `course_overviews_courseoverviewimageconfig` DISABLE KEYS */; -/*!40000 ALTER TABLE `course_overviews_courseoverviewimageconfig` ENABLE KEYS */; +LOCK TABLES `django_session` WRITE; +/*!40000 ALTER TABLE `django_session` DISABLE KEYS */; +/*!40000 ALTER TABLE `django_session` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `course_overviews_courseoverviewimageset` +-- Table structure for table `django_site` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `course_overviews_courseoverviewimageset` ( +CREATE TABLE `django_site` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, - `small_url` longtext NOT NULL, - `large_url` longtext NOT NULL, - `course_overview_id` varchar(255) NOT NULL, + `domain` varchar(100) NOT NULL, + `name` varchar(50) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `course_overview_id` (`course_overview_id`), - CONSTRAINT `D47baf904f8952eb0e1fafefd558a718` FOREIGN KEY (`course_overview_id`) REFERENCES `course_overviews_courseoverview` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + UNIQUE KEY `django_site_domain_a2e37b91_uniq` (`domain`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `course_overviews_courseoverviewimageset` +-- Dumping data for table `django_site` -- -LOCK TABLES `course_overviews_courseoverviewimageset` WRITE; -/*!40000 ALTER TABLE `course_overviews_courseoverviewimageset` DISABLE KEYS */; -/*!40000 ALTER TABLE `course_overviews_courseoverviewimageset` ENABLE KEYS */; +LOCK TABLES `django_site` WRITE; +/*!40000 ALTER TABLE `django_site` DISABLE KEYS */; +INSERT INTO `django_site` VALUES (1,'example.com','example.com'); +/*!40000 ALTER TABLE `django_site` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `course_overviews_courseoverviewtab` +-- Table structure for table `edx_name_affirmation_historicalverifiedname` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `course_overviews_courseoverviewtab` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `tab_id` varchar(50) NOT NULL, - `course_overview_id` varchar(255) NOT NULL, - PRIMARY KEY (`id`), - KEY `D298658de1d4c8777e046eed658fc94e` (`course_overview_id`), - CONSTRAINT `D298658de1d4c8777e046eed658fc94e` FOREIGN KEY (`course_overview_id`) REFERENCES `course_overviews_courseoverview` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=56 DEFAULT CHARSET=utf8; +CREATE TABLE `edx_name_affirmation_historicalverifiedname` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `verified_name` varchar(255) NOT NULL, + `profile_name` varchar(255) DEFAULT NULL, + `verification_attempt_id` int(10) unsigned DEFAULT NULL, + `proctored_exam_attempt_id` int(10) unsigned DEFAULT NULL, + `status` varchar(32) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `edx_name_affirmation_history_user_id_00f2a1d8_fk_auth_user` (`history_user_id`), + KEY `edx_name_affirmation_historicalverifiedname_id_18379bb4` (`id`), + KEY `edx_name_affirmation_histor_verified_name_9a18834a` (`verified_name`), + KEY `edx_name_affirmation_historicalverifiedname_user_id_b0ad4bb5` (`user_id`), + CONSTRAINT `edx_name_affirmation_history_user_id_00f2a1d8_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `course_overviews_courseoverviewtab` +-- Dumping data for table `edx_name_affirmation_historicalverifiedname` -- -LOCK TABLES `course_overviews_courseoverviewtab` WRITE; -/*!40000 ALTER TABLE `course_overviews_courseoverviewtab` DISABLE KEYS */; -INSERT INTO `course_overviews_courseoverviewtab` VALUES (37,'info','course-v1:edX+DemoX+Demo_Course'),(38,'courseware','course-v1:edX+DemoX+Demo_Course'),(39,'discussion','course-v1:edX+DemoX+Demo_Course'),(40,'wiki','course-v1:edX+DemoX+Demo_Course'),(41,'textbooks','course-v1:edX+DemoX+Demo_Course'),(42,'progress','course-v1:edX+DemoX+Demo_Course'),(49,'info','course-v1:edX+E2E-101+course'),(50,'courseware','course-v1:edX+E2E-101+course'),(51,'discussion','course-v1:edX+E2E-101+course'),(52,'wiki','course-v1:edX+E2E-101+course'),(53,'progress','course-v1:edX+E2E-101+course'),(54,'textbooks','course-v1:edX+E2E-101+course'),(55,'pdf_textbooks','course-v1:edX+E2E-101+course'); -/*!40000 ALTER TABLE `course_overviews_courseoverviewtab` ENABLE KEYS */; +LOCK TABLES `edx_name_affirmation_historicalverifiedname` WRITE; +/*!40000 ALTER TABLE `edx_name_affirmation_historicalverifiedname` DISABLE KEYS */; +/*!40000 ALTER TABLE `edx_name_affirmation_historicalverifiedname` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `course_structures_coursestructure` +-- Table structure for table `edx_when_contentdate` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `course_structures_coursestructure` ( +CREATE TABLE `edx_when_contentdate` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, `course_id` varchar(255) NOT NULL, - `structure_json` longtext, - `discussion_id_map_json` longtext, + `location` varchar(255) DEFAULT NULL, + `policy_id` int(11) NOT NULL, + `active` tinyint(1) NOT NULL, + `field` varchar(255) NOT NULL, + `block_type` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `course_id` (`course_id`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; + UNIQUE KEY `edx_when_contentdate_policy_id_location_field_a26790ec_uniq` (`policy_id`,`location`,`field`), + KEY `edx_when_contentdate_course_id_e6c39fdc` (`course_id`), + KEY `edx_when_contentdate_location_485206ea` (`location`), + KEY `edx_when_contentdate_policy_id_af2bcaf4` (`policy_id`), + KEY `edx_when_course_block_type_idx` (`course_id`,`block_type`), + CONSTRAINT `edx_when_contentdate_policy_id_af2bcaf4_fk_edx_when_` FOREIGN KEY (`policy_id`) REFERENCES `edx_when_datepolicy` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `course_structures_coursestructure` +-- Dumping data for table `edx_when_contentdate` -- -LOCK TABLES `course_structures_coursestructure` WRITE; -/*!40000 ALTER TABLE `course_structures_coursestructure` DISABLE KEYS */; -INSERT INTO `course_structures_coursestructure` VALUES (1,'2017-06-07 00:43:57.067140','2018-01-31 21:14:10.600977','course-v1:edX+DemoX+Demo_Course','H4sIAKIxcloC/81dWXNct3L+KxO95CG5VVgam15uZFm+dsqLYjlx1mJhaUhTGnJ0Z4aWlVv572nM\nUBSXQwMHZ4aHJZVF0hycPo1G99cr/vYsrNbx/fbZ88XfDl/+6Tf+HNO//8PXeL4+/Pfs5fpys8V/\n2H36gP8UD1/vf/Xqmy+fPSu/Qt8+u/of/7h49nbjEyb6WfarLdIP8npz7nf0g4vL1Yq+v9z6t3j2\nHj+Vz/VSQOvEd8tV2uAFLfNfbeu88x92uLlaKFmvuRNErOQARnpjBYiUEVMOWYXyiPGrLi/oax93\ny9/wLNGvXmx3G79b0r996x24eXa9bPdC23Vc+tV+obcHivrW4cAh56Q4yABBMZuNdEFp6QNoG0zf\nqi5Hryw4YxIDa1WIjnP0RnuHWTh89j+0bFpuP6z8p7MLf76XOVp98fVNHi8OD3j2f400/LZMuL6i\nwGeTkUupMFjgMVkeSTCiQbQYmHYDMr//+GlEfhRld87CEKv+bU9qK1+2+NdLvNiRvHzedKPQ6AhO\ncTorXrgEWnAuNRdaIxtSCF/WOA2HxtPYozJ+w81uGa+fkYNxKQafpCJp195GLTVkm0lrOKbYoJh+\nuz7Hj+vN+8WfFq+2W/9p27wP73bnn5+MSaUYMwePDqSSTvMMOntmBDfg+MAOlE+fhvdj6GoQzvbz\nens3QEUTMZEaykjPBK9tNJb+cMVjDmroyF6tcKJTO5K+Bt78iB8X/3qx3DXziBaIl9stacMrKqxh\n0nDBRfAMUsxOSZ1MNMFmyZkbOrtf1rjFp93m8ihsGk/iMYXow2YdVnj+WX5/P/uwN6wRz1bL8+WO\njG18h7cA0jVfrj56EqY0k9XAi+8Pn1i8PHyiW+0XrZVX64/t6v0uN569+t3v+TVdv18TcwQ97iTE\nKEXkhDeAB2VZJNMqUWkuQQfZCmLuLPv527PMwGf0kXHJO9cKWmsRCBFF5iDE6AKdkmSFYdHR314S\ns+PJJsmziRlsROdYtskaUB4hZj/1zX2UjjAKWu963/x6LUlmOxDEkZn10sUDQxEF7a61EJwKPDqX\ngzaWOKohdi5L4MvZnKTz2gGQitdBWE0ShZwrlnPnskmj98S/JAICT+gFCzbwkEMkwkE9iILLKWs/\n52N51GhGj6UJO7ZwtD64gWDILksnuDMgOLhsLPc8JU/2WnotZLOI3LNq3FvOAvcyCPIvgyOJYY6T\ng4PKWybC4G7+RG/vV6vFXwpXF69xs2fnRWx3au7RAT54JQ35t8ZASPRwLcDSP+S0RQlDMOmxAUCV\nxGMCgBt778iPZcWLFVkA+VMuyiQykFpMEkhDzoWqq3Q18OPXd3ixeLHBxX/QMw4a4s+LHiZxsB5t\n9kaiB80w6MyUYip5FrxG3cKkY0nOGLIaePQX3O2WF28PLCqK9GXRPZm0z679wN2gSQQHWtkkEBES\nCTD57dnKEAXZ1uiHggiPwaoqWad00rKOPABKrj1w54MiY5klQx0NszgYV3lUJ61G30Tzogm7xSiS\nkSCBa3RIeIa+EyrQ4ZaiGSrciAgR+gi0GuqEtKryZFtCkjnQmoS8WHMM7r4e5iJFmwKBTwOMTpgW\nQppAVpBnDTIPmqxfCZiXQ/RxuXu32AeaRkCRm3Gu4CzZemkVaoACSJ1BIwlOpczpqxkjcDXKGs7P\nV8v1av320+2AZb9rlgLpvsiEIWgIGZ3PwQDQCSc/Rlk1ZNQfPSJXpfEInpzQybpQotAqEUAUhMil\nEgwTbRiTJtUict8sL9JB/b/ZXaZPi68uU/rUq+tkilynYBOdHBAkL5KstyPCmCQg79ncuq5K30Rd\nxwjrkhvtsuIeCOp66XMuWMYFjmSge3SdKu5uzhgT6TxyhqyNgVxrbkhLm3zQz126zgjBrAooDLkW\nPmonY8YQrY8EIQwbjuUe1NtifVHQQq+YCK5EAg/epwgxMJ+VIKDryBFJPMdBRfeIDleVvB4puR3e\nikqBktYrozVkH8lmERxxLrmkifn9Phcq9OScc6+8gKwIHWIyhuxZ4lIrxwc39fV6ebGHgbStfvF6\nGXeXm3b4NzKrOJA6PSxwotzp6Jzn6K29p/cx/V7yjJt1utxnLAeZ/t3NX+g8SIklywCtJS8RvFOe\ntjgyQrheBBHi7Pq2St9EfWtsMklqEFl6SMGHkHhg3FjNvVdZDDL+e9xuSdAFGb/vcff32wU5QYvv\nvqSt/67dSWxOfc8q9H+ckp8u7uQ0SGYIB+asgL4itZZcyYcl8izom1Zldm/h4LfLeEY/3B6oHdrN\n4td/WOHiV8T3C/588dmjfbPzmx1xtTtqpLPx5AWwbA0H+uuipxfUvqT2vBJDXv8DUaOjbet4Gk/o\n115HqQnfskyeGLDcHCo9lcIZJmoqqiNnWKoIRpGHnIp/CCw4lUPIOUOCHlRHCyAhCmNilqBot4wH\nwvAQCJTynIZh+02T8fzgaS48wfc3+4MTsTsCDqic0NYRyhFAqprwYCbiQBOawMzS3Ntapa/LkRpT\nYnKU1PQYyzVT4LVKV0v29crAPn/AvvbwK+eYyLHlnPxdiN5ZAOa4ZSVNxIOarfyjSlcDv179Hpd7\nm/W9D9v9gf5lvV61H+bbrgU91kKKSbrAQMjkUFibhcmMZJzA7gCnHi+tXyWugV3f0LEbmdi/TcRq\n/ZZgxVu/w7PPbz4nTwbIOabZrnsnTyBSdo+mI0TGhrHAEC/LSlelk4uSf/xtiR+PUE4jZxWr25Q0\nSNTPpHnW58v/xbT4l2vIPZ0L8yqc25Q0cOG783NMSzqMi28QyQDG9/0uRM5eWW4SOOSQMVrpk+bW\nxICcjIZ9Ci5ElcYWyUGf9j7X3hXrjgpa61Lg2pDrAo6QByc0BslanZ1KfO4yjCp506OCRtFSWkRj\nAmFcZYPm2TETguUsOdPsaNzbZMW4x+SSY0LSRmMQ3HHaeKYU2ITDcZIfL89xUxhA4O3DZTvKvf1O\nWnFkDlQwJoNA5iFaF2yUqLMKcige+HjaoUpcg/C/uNh+JD6R+P+w3uDil3f+YvHTmHqVh8wWz5gV\nRBHEIJceU/aHaZou8AeFcUZo7vwbIvly5c9ef9n8LlGHpI2IyjpZcm48+cQSapMEY1YJMdxIUQjY\nS/qrv176cYZvbGHlvBvZUvc5JVRihZNckqqSWYI0plgWJU3QznGu5HBO6dXoAr6bpR3KQFRCojMB\nSDe7ZEQOgZ6Zg3NqtgqmKl0NquUX/H1C3bvywdoi+qAZuOB8qdWMQQCL0kUc4sxjl71VSXyM+GVk\n0mRplEl5KIwwi569RdPEM5mUV9H7LBVawBCdN2CYtKBVijk0o4rbqjtvEM/K+59tl0Vxj2moa/F/\n+5R/ZqTElPVOZ0ik/JE4qJPlPiamH8gHvVph3BHQWbxcbuLlcrd4c3ih9ab/7FVLX+c/e1UST3j2\nqnXe8x7DKnkTT2RL5ebIJXXQARFkNFEDV8wlb3h0wrkYXVZ+UPKPUv15T7AS7Q0anbLhDBT5l1wn\ndKXkhhjK+VDB42PLfpXEY8r+eC01P4OqJD6GYXY2Zi1KIbhpNswnTyzeImqiHjCM/X72we/efSxN\nsb3ihCwZEJJz6wNIoaxITKJFS76PRakHj/5/rtfn5eh/vfTEuz7oHUWmN7CRVEyGkEjnqGQZi2RJ\nAjNithxWla5jCu8YoDVP8XsL/qumqPYYaX0xCSXdi/ozE8gZBfIWLcF/EYOEbDSq7JLzXD6JGt4q\njUfIVFT7pB/KPr+5DFucVEFWLR+eWe9W6ZuogjXjxGhlnHIOjNBOMc0hIuHgLG0cZv3RyqfHl1I9\ngRPRUu419URYbVJKhIsVbTtnpL68ixyDi5pOIva2rbb0unQs21JW3kOt5yF44WmZDCxErzAKUFgC\n1mTz26vJ73RA0+smx4jSCBCj8YrlxD1tHfHc2faGnDsnVenMjQdwVoJwmVxLzciRFARGELCXCQRg\nGI/Mk3ejQZhkI0meTjrbTBKSenusvSFU4GIyRB5wS+/Ok7Q2g1Okflkvb7mElJWOqgiYZymQc52S\nyj5iNqCxty/a8eCQUEwg7y4pQ4ZHEsoj2RVZcCf/qM6Vk5bqLYocjNa/WL3FsPHLeB2rnzOF8yBR\nDajmB4LeSMQcQv+/f9jgHld3B/+vnYQkRcguCEFnbG4LOkzURLP5vQ9n6quzH9bbjLuzF7QFy7zE\nzRkxETfLc7IX3e5MmXageHbeWlKn5HFKY2Uij4trLr0fdmdu4NM360syyTcI6UDy5EIRHgiMA51f\nsg3eBZVyNIqlyGxbG+spPJsqXQ1C36sL7uEAsBiDI/1mCLUGrb2QjEujBakl7+STmIlVpfEIWEVG\nCMooekogd9MoL8jVKk0lKtK/uRerfJkCYq1Ngey/sL1mSXJRsqEeEzdA6NkKHyQ3NkeJdLJ6h4sQ\nBIyGXtqDCWQ1Y9DKqZJeTGgMF8NBxyuzJMksfYV0WstUvv5YWjX48QRKbKo0nigeYWhxwx1aDQgq\nS4JQrrj9PMso02xzC6pkNbCDjPwOlxfkbtHvYXsI4jZ2AILopR1MGILCWZcpNqXkSZODGULKQwGb\nxwM2VeJG6PpDjUpvNZ+TAnUWkdSGAWaEl0p5ckI0E+T2kPZoY9PRDthI6lrECTfxXRkys9itF19v\n0J/3QsDqeKl5M1st068m1vS01FR1qVFag/xfT5qDTI6W2bGYyMBCNE6YwIYreyZXZ92p0NtH7A/K\n59y/H8I4j6ch7hHTIOlf43b59qLw40qFbhekRn/5SGJf0PI49+feFrnskOCVjNEKkMFZFS2B01ia\nyjEORhMf3RpXaWzg4qH1qjzrRi9lj59hstckvsm4XGaNBDo5FhXXjkyilPP5GTW6Gnj01cpfvF98\n+8sP3y9eEyU97KkGZ2diT5WuBvZMCxzfVgQfPu3erS/O9u+8mVUl3abkmLh25BDuWRuuW0aET2+7\nvp4HOmj3wvpyd6iq3HeU3ajsmB7e8h7J5FpNKmHuUp1hmiZGt6zjgnPkJjtybYVwzKtMLnRpthY6\nNY+XqpyNLvMVdUwQ0IMEBfTSXjOfGC9jQmMWfDgU/HKd8DBRsd1VGsOPeRzJlm2q6Z8ezlTnFPRP\nC/6cWXx2lOjXXbqOEOxqmY3TsSyYFJLKVmoC9Fj6j0o/vIwsGHLkdG8MTUEILnAQdGogCuFzJDAT\ngxa2ZMHs1NAci05IMF5F1pvferC1omdzGlqUOpZFSy9InhcmELQp1iqZMPtgAoJC6E0Y5hLREClg\nJF1mlSCc6UiFCSmC1aTYaqn3z02KBKA+rUZYtRsapHx5Bi4AOEhe5CZNdgpEeZ+QFl/u2jYsvllv\nLvsHIFeToTOnsFqStZMmIDc08XcZa15mhZgIQhnyNUHTi2ibPQ/RgEpxeMrH1HEAN+da6KJQuY/B\nI4BNrkSgLQQmbCkDy4M7+zgjJauUNRnvi4tS/kS88td1aYVhX767qm/sD2lUo07zF+tWSTymH3Zf\nxoVPkGXOEMnv4VAK2IULjCFjzJknkYGp0tgUI8bNHimSuE3IV9Xm880vTlUSjylO9zCr9sFFII3J\nOKlOES2W1k2U2gTANBhAf/SscpXGIwBtmUXk3AfvyqBjUE4bMh/J+BghOT3cSbmPcf/qP21LHuNK\nO3bGlAb7u+YMLT3UcHaKzGm1jXUmh7dGVgM7xjfb1u/jmzXY9sAFgdPja1/ErLk3494aV8QdY6nq\n9W7V6Yji+d1RXL0J4YhIPiYhb/RkUT15m0CmFL1KLJPz3qgnTpUQrlHXcEpu8KhjGM7NNvAkyVUu\n9TsF/yuwISmkMwulREaLIVY9Tnt6ja4GJo1qT3+w7WmuQXd3e69qb9vdMTW2qnvuWYsNVedTnO2W\nCxO7cGs1sXv0TO7YKru5p983VAFOSpuEILiNtLllQqrizjvDc2YIjnH66R/2IH+Lqw9dUK320LlS\n6DW6GlROF2/GdtLMLJQtnT7TJtJUSqaPWSM9rkJ+Jslsq90f0RHaXXE/6kqf2SKVLZcN1bj1Ji7L\ngOZDKn693l8X9PId5lKFlZcrfL7455/e/PdlaVJevPjx658PX77p7uqs9WLN3dXZ0Cs25dC3dICf\nImDdF28jq0z+iXOQy3o+ZK8yoSMQZWQfwB/gltcb3NKB8xPTYNVra2bSVC3X6TSV6k29sKbaMjnz\neWpp6ZyE2QNohxGYzR48nVYXrI5almRZaaTpOU8td4od26k9tQcwXBjwRCqk7hYrHGd242DjZZce\nrF6CfpIWzvuzga5/cKYSKRlmuRaDVyA8ehrrIdIa1GB/rcBAzTmm5e58vfpq1nzAbUoaWPDDmiDr\n5QoXr+hDU4a7VS+JfAKiUqWxgWFT7rW8R5CQqDF5sCKSdiYYnQV5yFoF9NFn9RSmglVJPGa26d7T\nq9fxPQGpqtJ4MkA2fqT1/PJUJfGk8iS5dtk6zPQkUMI5WYZFJFdqj7IKIxh0Onmq0nhMDo26fmm2\naEOVshbFjau4Ph9x0c6DrecaWaksl5nN3bk4TNN0GHvvmow+ZFYbKDm0TZMu3Lg/N8OTqMiQAnLy\nA41xKrBIPiBBaBmDG9q/x1aIVRJPqhBj4nSqvNeC3M0cIp0r7222hIbIu/BDkfDHZlCVxGMy6GYB\nrMvSC4UmlA4lVFbmxHMIyXiR9eC9zY9zu1aNrgZ+jB8ycZMA8NKR2TYgOLhsbJHW5HUGSZskh2Tm\nMQqBqmQ18KVcdORXq0PzS3fxPDNJgVFcCjtbO+Z9Qhpe/8XFzUKYxc+YcbMP0f/iw4g7bMaXfD8B\n2FWlsYF/vcXpD1h1Qa4qY0YYq4ZKqueZmHWLqIkh1EEh7dq96qWvJxT3URfTz4ahq5S1uqnd+YJa\na9PMU0Bq5E2H1cmkIpVkuyEDEzqkJLTzqB0yiWz4JobvSgT+Mu7Wm5IXLVVW54SNf8btB0LGfakt\npWKIzmVRIJUsrXCEJyIhKuUAfR66iOFRbFaVrgYRnXY9TAbLUoaIjksyBmUAjGSEIrLmQBhixOV0\nJ4PDVRKPCYf/sP73CTQd3KkhntpfkFiyDJAET0bwTnmtXGSQrBdBhDi5nfWu7Zyy1t2Z+1PWujsF\ns2Ot6m3UfzD2Tiz+NPVW5PEjAeY/yVUST3qSB6rwn0qL/nCDwOTDrSMiKMFUqbGR2iWD2WauiuCH\nlCf3vWcftCewyXUzjm0d3DFlrbvXZk1ZK0RdxkpEnX2vArPZOu4AOHMK0GgbEhIIBWdVOQam1uF+\n7WOVB00JDdZG6j4Bn7RK41FTAS17/kTi3XflcNKFMw2jN8dj/aE5dF0ygMUkxMSJOg1MWm+s0+C5\nRh8lpuHLuz+PAn25wWl3tmkTyU/haIVGMN574UiT5DIwJHGyVk/AjFZJPOEhqSqzec9LlbzpPq0L\nTlvDjETHwCN3xjiXInCV6OFuuL/huurkzd61vdz0z9+qXoUwc9ys5aqGqVvQ0NvXdbKqmeiTdgky\nyVCqCEZpD6kU7gALTuUQcs6Qmm6OOkkBbo2ulvxL5xzIh+xhprOXySAwLp/Mda23aJou5Tdz0s21\n6vdLwHzwShoyosZASMpbLcDSP+S3RvLDhkW6hNyWfoeLbxBT8PF9v0El5peKU5myTOCU9EC6QXoS\nI8uUdE+ioqlKY4OE/2W9fksK/lt/8XZ9OaL7pWXe/1NJhdy9hGByKuTusKuu3XuoIPaUFbBREaAg\nbKqM1pB9tIwclUBAwCWdvBlKCT9eUWyVuAZxfr1eXuy734hTfvF6uQctPVat2jUwk1Vr6WY4Ve97\n9Z7eeQoKqmSd0NDfN1xJGxGVdbK0K/NEjk0ql8QLxqwS4imM3KqSeExH7E5mTRRIxpNwECB4FmTg\nDKzmSjOVROttDKfRP1XiGvjy9ca/PUS9Nuv2tufB5pSX7/CclH2JrT6ly8qGyGpgTPnYoc/lr5cj\n+5TuRxIEWV9utTSYgLB8UNmBt4R+DNLWPYWcQZXEY56xm/flgiLH3ieZmICCBxl9Y2OU3ETmzGzF\ncFW6Tmi2kAkFwXGevShjh2xIzoZAei9nzIMTQh/HlNfoauDJz7if6bd4sS1XY5QG9r5KA2TMSWMz\nCxqUVcF75jkErpQj/6sJ7ZzAslfJakGEnlhzGLK5f0jn6DCXo1cWnDGJbAKREmnj0BvtHWbhhuz6\nI84Rq1LX4/WMv056iP/v1qu9hI6963lk+HJOy1glrkFMp4Rab1MjGf0pvqlSAqyxXqDWOShDMhHz\nYKXrIw44q1LXwKsXu91mGS73fh4B9/PuuFz19sO5hx413M44aXZ0rUT9ODXpYxP88wZGW+oPpjBd\nkLNqY5lGjxbK5OPgOZLuSDaB0HE4Wt+ZTR/z2HlMfJWsBn3QyZw7+x4NOpuTdF47ACx3FgqryeAh\n54rlucWySt5EsWzBWl2uULUz+aiobewlGvNuassdHxPzMZ5hzsEpiNED2ZIyqof76MoAw2JW+kv5\na/n8QZhzudoty1DXl+/Wy9iTeXywFCtKQhAJrR8cRD7PvU43aZq+lTdTa6vl+XKH6Sy+w/i+eTDv\nnYAXDxZSJJ0SGAiZHAprszCZZZNF+90o41sBB7X44Y3KaLHyRq3ysP6AF6QscLst3u8VAUFAlBK9\nVEXwjbUO93E9SDKjdEP1HrfXOQ2866O1wQL+RAtf9xqUYMDn1+g8VUFrOsfkT0bmIMToAvk3yQrD\nSneKG4qwPeYBq5I3/ay13GDcdTaqfQF/NNNx7F3IY+88n9nfqdI3EeNUrwat1LROu/dy7LVh856x\nllvNpvZZNSRcus6Y8sHaktICzcAF5wtmjqRoGRnkiMPFbn2pm/ETEZ9A4UiVxgaTc9QhjpqUeIx0\nLiWBUq6xNNpl+k6oILKQTc7pSS7LrdF1zDTO2EtU5g5O1eibqKxbUkZjfdyGxsWuA1WtxDpi6dWd\n+nWVndIiGhMiWGWD5tkxE4LlLJHjPmtgvEpcw/H58fIcN/vM8XcXH45QoXar/eeJ+Il3W5KmhRcd\naGXJtiJCsoQvuSQrHiK5GTm2jzutDCzsOibVGTrHHH14r2/cuBQD6RMVQGtvo5aa7F/OiI6p2dVp\nlb4eueh2OLu2t3pT3WCkr1xNd/BYyfl/td2WK036crTbfVpif5vS281Dl349YlZ2gJ6j5GHBIp0W\nAclkBPKFvSAPUhotdKkAlM09TPcWpoNpc2SC1HWAjI5MoiGxEGiBK9ve4jj+0rkhybh1/5N8vhif\neBo51mHW4rMacQ2m8ssIij9NGkFxRzNxCSkrHclP9uBZCqRAErmGnjwpA3r2kTdV+iZa1JY6nbFG\nWhmISkh0dADIsXbJiByCNCEH51Rzj/OdOgQpUBMqRysMMCNIwytC5+RNE7BIvNmfHp+x74uEkddZ\nbgEEsj+kbaIlwFziDJHgQYm1Dc8dnFDwNL5nc/5CwiqJJ/RAk+PBoUo2RA1JGc+lFImRlSHnl7dH\ngU918Kv0TTz45bYGBkExWg4QrYsyiX3oNpXQ7XAY6dd3eLF4scFDnHB/W+WfF91dk7Xb6+d1YKrk\nTY8RsmSUS+TKZJfITY9lcgmXOoWESmXWn6OqVug+VIK6WI7yQ0e+zpwYpIXXLUW6Iz31kfnqOTnU\nkkyvVvo9nAIvHNus17tmd+Pw9YG2eFUo8f/upOD2JOgAAA==\n','H4sIAKIxcloC/6VX3Y4dNQx+lWpvC1Ls2HHcq0rwENxVTuxIFZRFlCIQ4t35ZirB/bBn9/zMHsWJ\n/f3NXy8eSUNnmzaPeNI63HbR2to7/lMv7968rJ9e94/f/k7vKn94+319ev36/OG71y+/fq63v/35\nS73Pj5/3l8+fP77+/Pb++vtqacKdaMaSzjo5W69ZMyNn9fHyzZuXPM2bVsnEQ2z4EDm9N3xg7WWP\nix+ZLY/scupiW6OkN8o8g2Rwn1fxZdZIWhCzCZ2KoRTa+uCsshqPi0sO463T+15yCOdtWcOSW5vK\nXFdx7GdoRPLuLj5zsuzjU1Y/vtrsz9ueDcPD5KSGtD7DJroamGTsXrnvttsao0RJZUkcmug5U+/d\nxlS07HHxcSzGsHamkeDXd9Q5I040C+V75phs645jnoHjnsKJKZWkSNU5nxc/J3SSpXiRnNqzRw6a\ntlfR6HrPvNN1uQ522aXwtu/Z1qSjgB+358Ujy7lLz9OxAe0BYC1sYM/ZtHu7imvfMsdqXZdIt+3k\n6Iqg7VTttOczHyziNEe3SjlHlh6XmNiCFSbcr+JROxYGrWo46uQ4Gi5gwNTTWtPHxRXLzgveMpr4\n8ojhshdLA7R3nRtwon72UnNeeLujYQaYEtXofe/9uHhmZdnIY9REgQAaGESSTEom8vvkCqy3cUAJ\nk5FzrXNsqGiNdIz+cXHuNSpDJu+GKWocXouHLlAN7b2LFy7I9um+DBvckzZksekCRMCV520vRRUr\nKFawHD0YdZqtNZKgLOAwilOS9gymS1CNPCjGvqYSzYf15233A451rLChW3351D1NGz7Grm15y+si\nMN55Wm2RNYIPgCGWAGROeX7yFuhcXwlaT2Ez19U2BaVtCK7HVXyUQu0npI3ANeACo6beelzbyf58\n5sQBinWQbAO+JDFqMBS7FUjkdivcPKdxCjdZC8/qufCd6u6wl+DnxgLxSrgZFNTQdhlhPiYwvzaw\nlftuO/C3gxOGPknSBjTQmqsFr9Hsf6C9eC+c0l0OdBvqBrk9AmPlSk+Rq7jbIeg6Ny6FC4ZXgPgQ\nOevGGs/lFYZmtiEtUDo5a4N0ERMb6UgQIMJdHC4KO1G/tIACXquYVjGv7nPQc3k1Ziy2im1PiT3g\n66hzYV0zrN3anqCEtcC4B8IEcLigbAdsP4sYwvg8TBDDRBLrYWHklTmYuy3um87A8W+RyT8+5LVS\nfVp1SeKH/5Z5Lq3/XvigWQDPJAz2xlixAt8QWgPweNRcw85RwsB9gOaPa64J+eAgr3VkICO0nR3W\nvGEcBvTduoLAtrku1y4EvDMLCRITEjjPyfF8zBST2iJIC0Bmy30CW8gTrTRm43Wzq3sdZeg+Qiu4\nt4ZPcJwsbMXZz0++x06BcYDWKhEIoy2uJFfQtoNs9nXMHR6WxF2HgFLegYjL6MkYGW89Lj6tIYMw\n8YomiRyqfUBN7coLBH5dxbf4QaTGpQ17d0DS8bO3K2FK+vzk2iguBfGG/OQFwyQnaEtTlZnFX9t+\npfgFPysTGIwLshTuIaj6rEXzcXE01M/ETFFIlB25lA+nX4p6dN3FNwK84x6hnyvjMCQFRtuWZU2d\nfT13UTltLATT8HEw1oxSSwQUip3IK1+Lr+iAOdwrm4wBe9vaHJxDyFw2nsv5sM1jUc1rLYsIdlOD\ndl83D4DeTTUYHLIdttgYd0hQABl77bMR8Tq2+NzCIdtKx+MyKfxFt9mTlQg6DZW/isOskBywu4EQ\n64vDT2/JuE3YAlbm87bHCu1g7DSTlSA3XGXiRUffoN/L3/8Aj/DDlBYPAAA=\n'),(2,'2018-01-31 21:27:05.942570','2018-01-31 21:27:06.185813','course-v1:edX+E2E-101+course','H4sIAKo0cloC/81TTWsbMRD9K2Kva8PqayX55FJy7Ck9FEoxI2mUGK93XUkbMMH/vbLXIZC6BIek\n5KY3YmbemzfzWNlucJtULcjj9Jw/0AX6H/UNu5nThtZuGGPC2kbo3f3SRwh5PoH6AWNaD/1SgmJc\nANhWmsY00hgjgoCmzvsdLt097DLG+lR9KbHlKnBGFVOCmWAl50o4G6wIgWl4JrI6ZhdYnQtUM1Ld\nRfDoSzBAl7AEwhC3kEugH7uu4DHBHa42uD8mfgo9s6OAdecj9oXTzw8ilfD3iH1eQ3fmxTljQnFk\nHKjgrdEtcm0oc15q6htT/SrE/DrtOtivetieJn2LLpdeZKGkcBK1NuC40AZLL2WhZdbQ1nqw1WH2\nUeO9XsnfG/Nc47MszfWqXuzNRbtGm54ck62j1rHGM9UIKqxWCo2jShspbFvkv+bYtNtnnSeKE7h0\nkNPHu472n+3/z/1cedSX3PgG/Qgdud0OGyTfMWXy9cSKUDInX8Y8VIejB3EY8puHcfgDSIktU7AF\nAAA=\n','H4sIAKo0cloC/6uuBQBDv6ajAgAAAA==\n'); -/*!40000 ALTER TABLE `course_structures_coursestructure` ENABLE KEYS */; +LOCK TABLES `edx_when_contentdate` WRITE; +/*!40000 ALTER TABLE `edx_when_contentdate` DISABLE KEYS */; +/*!40000 ALTER TABLE `edx_when_contentdate` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `coursetalk_coursetalkwidgetconfiguration` +-- Table structure for table `edx_when_datepolicy` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `coursetalk_coursetalkwidgetconfiguration` ( +CREATE TABLE `edx_when_datepolicy` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `platform_key` varchar(50) NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `abs_date` datetime(6) DEFAULT NULL, + `rel_date` bigint(20) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `coursetalk_course_changed_by_id_18bd24020c1b37d5_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `coursetalk_course_changed_by_id_18bd24020c1b37d5_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `edx_when_datepolicy_abs_date_1a510cd3` (`abs_date`), + KEY `edx_when_datepolicy_rel_date_836d6051` (`rel_date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `coursetalk_coursetalkwidgetconfiguration` +-- Dumping data for table `edx_when_datepolicy` -- -LOCK TABLES `coursetalk_coursetalkwidgetconfiguration` WRITE; -/*!40000 ALTER TABLE `coursetalk_coursetalkwidgetconfiguration` DISABLE KEYS */; -/*!40000 ALTER TABLE `coursetalk_coursetalkwidgetconfiguration` ENABLE KEYS */; +LOCK TABLES `edx_when_datepolicy` WRITE; +/*!40000 ALTER TABLE `edx_when_datepolicy` DISABLE KEYS */; +/*!40000 ALTER TABLE `edx_when_datepolicy` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `courseware_coursedynamicupgradedeadlineconfiguration` +-- Table structure for table `edx_when_userdate` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `courseware_coursedynamicupgradedeadlineconfiguration` ( +CREATE TABLE `edx_when_userdate` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `course_id` varchar(255) NOT NULL, - `deadline_days` smallint(5) unsigned NOT NULL, - `opt_out` tinyint(1) NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `abs_date` datetime(6) DEFAULT NULL, + `rel_date` bigint(20) DEFAULT NULL, + `reason` longtext NOT NULL, + `actor_id` int(11) DEFAULT NULL, + `user_id` int(11) NOT NULL, + `content_date_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `courseware_course_changed_by_id_71dd51ee4b44e9e1_fk_auth_user_id` (`changed_by_id`), - KEY `courseware_coursedynamicupgradedeadlineconfiguration_ea134da7` (`course_id`), - CONSTRAINT `courseware_course_changed_by_id_71dd51ee4b44e9e1_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `edx_when_userdate_actor_id_cbef1cdc_fk_auth_user_id` (`actor_id`), + KEY `edx_when_userdate_user_id_46e8cc36_fk_auth_user_id` (`user_id`), + KEY `edx_when_userdate_content_date_id_35c5e2e2_fk_edx_when_` (`content_date_id`), + KEY `edx_when_userdate_rel_date_954ee5b4` (`rel_date`), + CONSTRAINT `edx_when_userdate_actor_id_cbef1cdc_fk_auth_user_id` FOREIGN KEY (`actor_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `edx_when_userdate_content_date_id_35c5e2e2_fk_edx_when_` FOREIGN KEY (`content_date_id`) REFERENCES `edx_when_contentdate` (`id`), + CONSTRAINT `edx_when_userdate_user_id_46e8cc36_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `courseware_coursedynamicupgradedeadlineconfiguration` +-- Dumping data for table `edx_when_userdate` -- -LOCK TABLES `courseware_coursedynamicupgradedeadlineconfiguration` WRITE; -/*!40000 ALTER TABLE `courseware_coursedynamicupgradedeadlineconfiguration` DISABLE KEYS */; -/*!40000 ALTER TABLE `courseware_coursedynamicupgradedeadlineconfiguration` ENABLE KEYS */; +LOCK TABLES `edx_when_userdate` WRITE; +/*!40000 ALTER TABLE `edx_when_userdate` DISABLE KEYS */; +/*!40000 ALTER TABLE `edx_when_userdate` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `courseware_dynamicupgradedeadlineconfiguration` +-- Table structure for table `edxval_coursevideo` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `courseware_dynamicupgradedeadlineconfiguration` ( +CREATE TABLE `edxval_coursevideo` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `deadline_days` smallint(5) unsigned NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, + `course_id` varchar(255) NOT NULL, + `video_id` int(11) NOT NULL, + `is_hidden` tinyint(1) NOT NULL, PRIMARY KEY (`id`), - KEY `courseware_dynami_changed_by_id_77da0c73df07c112_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `courseware_dynami_changed_by_id_77da0c73df07c112_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `edxval_coursevideo_course_id_video_id_ebd82f35_uniq` (`course_id`,`video_id`), + KEY `edxval_coursevideo_video_id_85dfcf76_fk_edxval_video_id` (`video_id`), + CONSTRAINT `edxval_coursevideo_video_id_85dfcf76_fk_edxval_video_id` FOREIGN KEY (`video_id`) REFERENCES `edxval_video` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `courseware_dynamicupgradedeadlineconfiguration` +-- Dumping data for table `edxval_coursevideo` -- -LOCK TABLES `courseware_dynamicupgradedeadlineconfiguration` WRITE; -/*!40000 ALTER TABLE `courseware_dynamicupgradedeadlineconfiguration` DISABLE KEYS */; -/*!40000 ALTER TABLE `courseware_dynamicupgradedeadlineconfiguration` ENABLE KEYS */; +LOCK TABLES `edxval_coursevideo` WRITE; +/*!40000 ALTER TABLE `edxval_coursevideo` DISABLE KEYS */; +/*!40000 ALTER TABLE `edxval_coursevideo` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `courseware_offlinecomputedgrade` +-- Table structure for table `edxval_encodedvideo` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `courseware_offlinecomputedgrade` ( +CREATE TABLE `edxval_encodedvideo` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `course_id` varchar(255) NOT NULL, - `created` datetime(6) DEFAULT NULL, - `updated` datetime(6) NOT NULL, - `gradeset` longtext, - `user_id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `url` varchar(200) NOT NULL, + `file_size` int(10) unsigned NOT NULL, + `bitrate` int(10) unsigned NOT NULL, + `profile_id` int(11) NOT NULL, + `video_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `courseware_offlinecomputedgrade_user_id_46133bbd0926078f_uniq` (`user_id`,`course_id`), - KEY `courseware_offlinecomputedgrade_ea134da7` (`course_id`), - KEY `courseware_offlinecomputedgrade_e2fa5388` (`created`), - KEY `courseware_offlinecomputedgrade_0f81d52e` (`updated`), - CONSTRAINT `courseware_offlinecompu_user_id_66bbccbf945dfd56_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + KEY `edxval_encodedvideo_profile_id_d9f3e086_fk_edxval_profile_id` (`profile_id`), + KEY `edxval_encodedvideo_video_id_d8857acb_fk_edxval_video_id` (`video_id`), + CONSTRAINT `edxval_encodedvideo_profile_id_d9f3e086_fk_edxval_profile_id` FOREIGN KEY (`profile_id`) REFERENCES `edxval_profile` (`id`), + CONSTRAINT `edxval_encodedvideo_video_id_d8857acb_fk_edxval_video_id` FOREIGN KEY (`video_id`) REFERENCES `edxval_video` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `courseware_offlinecomputedgrade` +-- Dumping data for table `edxval_encodedvideo` -- -LOCK TABLES `courseware_offlinecomputedgrade` WRITE; -/*!40000 ALTER TABLE `courseware_offlinecomputedgrade` DISABLE KEYS */; -/*!40000 ALTER TABLE `courseware_offlinecomputedgrade` ENABLE KEYS */; +LOCK TABLES `edxval_encodedvideo` WRITE; +/*!40000 ALTER TABLE `edxval_encodedvideo` DISABLE KEYS */; +/*!40000 ALTER TABLE `edxval_encodedvideo` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `courseware_offlinecomputedgradelog` +-- Table structure for table `edxval_profile` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `courseware_offlinecomputedgradelog` ( +CREATE TABLE `edxval_profile` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `course_id` varchar(255) NOT NULL, - `created` datetime(6) DEFAULT NULL, - `seconds` int(11) NOT NULL, - `nstudents` int(11) NOT NULL, + `profile_name` varchar(50) NOT NULL, PRIMARY KEY (`id`), - KEY `courseware_offlinecomputedgradelog_ea134da7` (`course_id`), - KEY `courseware_offlinecomputedgradelog_e2fa5388` (`created`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + UNIQUE KEY `profile_name` (`profile_name`) +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `courseware_offlinecomputedgradelog` +-- Dumping data for table `edxval_profile` -- -LOCK TABLES `courseware_offlinecomputedgradelog` WRITE; -/*!40000 ALTER TABLE `courseware_offlinecomputedgradelog` DISABLE KEYS */; -/*!40000 ALTER TABLE `courseware_offlinecomputedgradelog` ENABLE KEYS */; +LOCK TABLES `edxval_profile` WRITE; +/*!40000 ALTER TABLE `edxval_profile` DISABLE KEYS */; +INSERT INTO `edxval_profile` VALUES (1,'audio_mp3'),(3,'desktop_mp4'),(4,'desktop_webm'),(2,'hls'),(5,'mobile_high'),(6,'mobile_low'),(7,'youtube'); +/*!40000 ALTER TABLE `edxval_profile` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `courseware_orgdynamicupgradedeadlineconfiguration` +-- Table structure for table `edxval_thirdpartytranscriptcredentialsstate` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `courseware_orgdynamicupgradedeadlineconfiguration` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `org_id` varchar(255) NOT NULL, - `deadline_days` smallint(5) unsigned NOT NULL, - `opt_out` tinyint(1) NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, +CREATE TABLE `edxval_thirdpartytranscriptcredentialsstate` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `org` varchar(32) NOT NULL, + `provider` varchar(20) NOT NULL, + `has_creds` tinyint(1) NOT NULL, PRIMARY KEY (`id`), - KEY `courseware_orgdyn_changed_by_id_700576c3bbcdc12f_fk_auth_user_id` (`changed_by_id`), - KEY `courseware_orgdynamicupgradedeadlineconfiguration_9cf869aa` (`org_id`), - CONSTRAINT `courseware_orgdyn_changed_by_id_700576c3bbcdc12f_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `edxval_thirdpartytranscr_org_provider_188f7ddf_uniq` (`org`,`provider`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `courseware_orgdynamicupgradedeadlineconfiguration` +-- Dumping data for table `edxval_thirdpartytranscriptcredentialsstate` -- -LOCK TABLES `courseware_orgdynamicupgradedeadlineconfiguration` WRITE; -/*!40000 ALTER TABLE `courseware_orgdynamicupgradedeadlineconfiguration` DISABLE KEYS */; -/*!40000 ALTER TABLE `courseware_orgdynamicupgradedeadlineconfiguration` ENABLE KEYS */; +LOCK TABLES `edxval_thirdpartytranscriptcredentialsstate` WRITE; +/*!40000 ALTER TABLE `edxval_thirdpartytranscriptcredentialsstate` DISABLE KEYS */; +/*!40000 ALTER TABLE `edxval_thirdpartytranscriptcredentialsstate` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `courseware_studentfieldoverride` +-- Table structure for table `edxval_transcriptpreference` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `courseware_studentfieldoverride` ( +CREATE TABLE `edxval_transcriptpreference` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, `course_id` varchar(255) NOT NULL, - `location` varchar(255) NOT NULL, - `field` varchar(255) NOT NULL, - `value` longtext NOT NULL, - `student_id` int(11) NOT NULL, + `provider` varchar(20) NOT NULL, + `cielo24_fidelity` varchar(20) DEFAULT NULL, + `cielo24_turnaround` varchar(20) DEFAULT NULL, + `three_play_turnaround` varchar(20) DEFAULT NULL, + `preferred_languages` longtext NOT NULL, + `video_source_language` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `courseware_studentfieldoverride_course_id_39dd7eaeac5623d2_uniq` (`course_id`,`field`,`location`,`student_id`), - KEY `courseware_studentfi_student_id_70e7c0f5a4f91b65_fk_auth_user_id` (`student_id`), - KEY `courseware_studentfieldoverride_ea134da7` (`course_id`), - KEY `courseware_studentfieldoverride_d5189de0` (`location`), - CONSTRAINT `courseware_studentfi_student_id_70e7c0f5a4f91b65_fk_auth_user_id` FOREIGN KEY (`student_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `course_id` (`course_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `courseware_studentfieldoverride` +-- Dumping data for table `edxval_transcriptpreference` -- -LOCK TABLES `courseware_studentfieldoverride` WRITE; -/*!40000 ALTER TABLE `courseware_studentfieldoverride` DISABLE KEYS */; -/*!40000 ALTER TABLE `courseware_studentfieldoverride` ENABLE KEYS */; +LOCK TABLES `edxval_transcriptpreference` WRITE; +/*!40000 ALTER TABLE `edxval_transcriptpreference` DISABLE KEYS */; +/*!40000 ALTER TABLE `edxval_transcriptpreference` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `courseware_studentmodule` +-- Table structure for table `edxval_video` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `courseware_studentmodule` ( +CREATE TABLE `edxval_video` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `module_type` varchar(32) NOT NULL, - `module_id` varchar(255) NOT NULL, - `course_id` varchar(255) NOT NULL, - `state` longtext, - `grade` double DEFAULT NULL, - `max_grade` double DEFAULT NULL, - `done` varchar(8) NOT NULL, `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, - `student_id` int(11) NOT NULL, + `edx_video_id` varchar(100) NOT NULL, + `client_video_id` varchar(255) NOT NULL, + `duration` double NOT NULL, + `status` varchar(255) NOT NULL, + `error_description` longtext, PRIMARY KEY (`id`), - UNIQUE KEY `courseware_studentmodule_student_id_635d77aea1256de5_uniq` (`student_id`,`module_id`,`course_id`), - KEY `courseware_studentmodule_82bd5515` (`module_type`), - KEY `courseware_studentmodule_c9799665` (`module_id`), - KEY `courseware_studentmodule_ea134da7` (`course_id`), - KEY `courseware_studentmodule_de6a20aa` (`grade`), - KEY `courseware_studentmodule_6b2ded51` (`done`), - KEY `courseware_studentmodule_e2fa5388` (`created`), - KEY `courseware_studentmodule_9ae73c65` (`modified`), - CONSTRAINT `courseware_studentmo_student_id_57005a9a97046500_fk_auth_user_id` FOREIGN KEY (`student_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `edx_video_id` (`edx_video_id`), + KEY `edxval_video_client_video_id_2b668312` (`client_video_id`), + KEY `edxval_video_status_5f33a104` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `courseware_studentmodule` +-- Dumping data for table `edxval_video` -- -LOCK TABLES `courseware_studentmodule` WRITE; -/*!40000 ALTER TABLE `courseware_studentmodule` DISABLE KEYS */; -/*!40000 ALTER TABLE `courseware_studentmodule` ENABLE KEYS */; +LOCK TABLES `edxval_video` WRITE; +/*!40000 ALTER TABLE `edxval_video` DISABLE KEYS */; +/*!40000 ALTER TABLE `edxval_video` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `courseware_studentmodulehistory` +-- Table structure for table `edxval_videoimage` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `courseware_studentmodulehistory` ( +CREATE TABLE `edxval_videoimage` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `version` varchar(255) DEFAULT NULL, `created` datetime(6) NOT NULL, - `state` longtext, - `grade` double DEFAULT NULL, - `max_grade` double DEFAULT NULL, - `student_module_id` int(11) NOT NULL, + `modified` datetime(6) NOT NULL, + `image` varchar(500) DEFAULT NULL, + `generated_images` longtext NOT NULL, + `course_video_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `D45b867f7277556beb93bff02eba5f03` (`student_module_id`), - KEY `courseware_studentmodulehistory_2af72f10` (`version`), - KEY `courseware_studentmodulehistory_e2fa5388` (`created`), - CONSTRAINT `D45b867f7277556beb93bff02eba5f03` FOREIGN KEY (`student_module_id`) REFERENCES `courseware_studentmodule` (`id`) + UNIQUE KEY `course_video_id` (`course_video_id`), + CONSTRAINT `edxval_videoimage_course_video_id_06855d34_fk_edxval_co` FOREIGN KEY (`course_video_id`) REFERENCES `edxval_coursevideo` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `courseware_studentmodulehistory` +-- Dumping data for table `edxval_videoimage` -- -LOCK TABLES `courseware_studentmodulehistory` WRITE; -/*!40000 ALTER TABLE `courseware_studentmodulehistory` DISABLE KEYS */; -/*!40000 ALTER TABLE `courseware_studentmodulehistory` ENABLE KEYS */; +LOCK TABLES `edxval_videoimage` WRITE; +/*!40000 ALTER TABLE `edxval_videoimage` DISABLE KEYS */; +/*!40000 ALTER TABLE `edxval_videoimage` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `courseware_xmodulestudentinfofield` +-- Table structure for table `edxval_videotranscript` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `courseware_xmodulestudentinfofield` ( +CREATE TABLE `edxval_videotranscript` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `field_name` varchar(64) NOT NULL, - `value` longtext NOT NULL, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `student_id` int(11) NOT NULL, + `transcript` varchar(255) DEFAULT NULL, + `language_code` varchar(50) NOT NULL, + `provider` varchar(30) NOT NULL, + `file_format` varchar(20) NOT NULL, + `video_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `courseware_xmodulestudentinfofi_student_id_33f2f772c49db067_uniq` (`student_id`,`field_name`), - KEY `courseware_xmodulestudentinfofield_73f329f1` (`field_name`), - KEY `courseware_xmodulestudentinfofield_e2fa5388` (`created`), - KEY `courseware_xmodulestudentinfofield_9ae73c65` (`modified`), - CONSTRAINT `courseware_xmodulestu_student_id_fb4c5883b541e28_fk_auth_user_id` FOREIGN KEY (`student_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `edxval_videotranscript_video_id_language_code_37532906_uniq` (`video_id`,`language_code`), + KEY `edxval_videotranscript_language_code_d78ce3d1` (`language_code`), + KEY `edxval_videotranscript_file_format_3adddaf7` (`file_format`), + CONSTRAINT `edxval_videotranscript_video_id_6ffdfb56_fk_edxval_video_id` FOREIGN KEY (`video_id`) REFERENCES `edxval_video` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `courseware_xmodulestudentinfofield` +-- Dumping data for table `edxval_videotranscript` -- -LOCK TABLES `courseware_xmodulestudentinfofield` WRITE; -/*!40000 ALTER TABLE `courseware_xmodulestudentinfofield` DISABLE KEYS */; -/*!40000 ALTER TABLE `courseware_xmodulestudentinfofield` ENABLE KEYS */; +LOCK TABLES `edxval_videotranscript` WRITE; +/*!40000 ALTER TABLE `edxval_videotranscript` DISABLE KEYS */; +/*!40000 ALTER TABLE `edxval_videotranscript` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `courseware_xmodulestudentprefsfield` +-- Table structure for table `embargo_country` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `courseware_xmodulestudentprefsfield` ( +CREATE TABLE `embargo_country` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `field_name` varchar(64) NOT NULL, - `value` longtext NOT NULL, - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, - `module_type` varchar(64) NOT NULL, - `student_id` int(11) NOT NULL, + `country` varchar(2) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `courseware_xmodulestudentprefsf_student_id_2a5d275498b7a407_uniq` (`student_id`,`module_type`,`field_name`), - KEY `courseware_xmodulestudentprefsfield_73f329f1` (`field_name`), - KEY `courseware_xmodulestudentprefsfield_e2fa5388` (`created`), - KEY `courseware_xmodulestudentprefsfield_9ae73c65` (`modified`), - KEY `courseware_xmodulestudentprefsfield_82bd5515` (`module_type`), - CONSTRAINT `courseware_xmodulest_student_id_48b35c14cbc17185_fk_auth_user_id` FOREIGN KEY (`student_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + UNIQUE KEY `country` (`country`) +) ENGINE=InnoDB AUTO_INCREMENT=251 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `courseware_xmodulestudentprefsfield` +-- Dumping data for table `embargo_country` -- -LOCK TABLES `courseware_xmodulestudentprefsfield` WRITE; -/*!40000 ALTER TABLE `courseware_xmodulestudentprefsfield` DISABLE KEYS */; -/*!40000 ALTER TABLE `courseware_xmodulestudentprefsfield` ENABLE KEYS */; +LOCK TABLES `embargo_country` WRITE; +/*!40000 ALTER TABLE `embargo_country` DISABLE KEYS */; +INSERT INTO `embargo_country` VALUES (6,'AD'),(235,'AE'),(1,'AF'),(10,'AG'),(8,'AI'),(3,'AL'),(12,'AM'),(7,'AO'),(9,'AQ'),(11,'AR'),(5,'AS'),(15,'AT'),(14,'AU'),(13,'AW'),(2,'AX'),(16,'AZ'),(29,'BA'),(20,'BB'),(19,'BD'),(22,'BE'),(36,'BF'),(35,'BG'),(18,'BH'),(37,'BI'),(24,'BJ'),(186,'BL'),(25,'BM'),(34,'BN'),(27,'BO'),(28,'BQ'),(32,'BR'),(17,'BS'),(26,'BT'),(31,'BV'),(30,'BW'),(21,'BY'),(23,'BZ'),(41,'CA'),(48,'CC'),(52,'CD'),(43,'CF'),(51,'CG'),(217,'CH'),(55,'CI'),(53,'CK'),(45,'CL'),(40,'CM'),(46,'CN'),(49,'CO'),(54,'CR'),(57,'CU'),(38,'CV'),(58,'CW'),(47,'CX'),(59,'CY'),(60,'CZ'),(84,'DE'),(62,'DJ'),(61,'DK'),(63,'DM'),(64,'DO'),(4,'DZ'),(65,'EC'),(70,'EE'),(66,'EG'),(247,'EH'),(69,'ER'),(211,'ES'),(72,'ET'),(76,'FI'),(75,'FJ'),(73,'FK'),(144,'FM'),(74,'FO'),(77,'FR'),(81,'GA'),(236,'GB'),(89,'GD'),(83,'GE'),(78,'GF'),(93,'GG'),(85,'GH'),(86,'GI'),(88,'GL'),(82,'GM'),(94,'GN'),(90,'GP'),(68,'GQ'),(87,'GR'),(208,'GS'),(92,'GT'),(91,'GU'),(95,'GW'),(96,'GY'),(101,'HK'),(98,'HM'),(100,'HN'),(56,'HR'),(97,'HT'),(102,'HU'),(105,'ID'),(108,'IE'),(110,'IL'),(109,'IM'),(104,'IN'),(33,'IO'),(107,'IQ'),(106,'IR'),(103,'IS'),(111,'IT'),(114,'JE'),(112,'JM'),(115,'JO'),(113,'JP'),(117,'KE'),(121,'KG'),(39,'KH'),(118,'KI'),(50,'KM'),(188,'KN'),(164,'KP'),(209,'KR'),(120,'KW'),(42,'KY'),(116,'KZ'),(122,'LA'),(124,'LB'),(189,'LC'),(128,'LI'),(212,'LK'),(126,'LR'),(125,'LS'),(129,'LT'),(130,'LU'),(123,'LV'),(127,'LY'),(150,'MA'),(146,'MC'),(145,'MD'),(148,'ME'),(190,'MF'),(132,'MG'),(138,'MH'),(165,'MK'),(136,'ML'),(152,'MM'),(147,'MN'),(131,'MO'),(166,'MP'),(139,'MQ'),(140,'MR'),(149,'MS'),(137,'MT'),(141,'MU'),(135,'MV'),(133,'MW'),(143,'MX'),(134,'MY'),(151,'MZ'),(153,'NA'),(157,'NC'),(160,'NE'),(163,'NF'),(161,'NG'),(159,'NI'),(156,'NL'),(167,'NO'),(155,'NP'),(154,'NR'),(162,'NU'),(158,'NZ'),(168,'OM'),(172,'PA'),(175,'PE'),(79,'PF'),(173,'PG'),(176,'PH'),(169,'PK'),(178,'PL'),(191,'PM'),(177,'PN'),(180,'PR'),(171,'PS'),(179,'PT'),(170,'PW'),(174,'PY'),(181,'QA'),(182,'RE'),(183,'RO'),(198,'RS'),(184,'RU'),(185,'RW'),(196,'SA'),(205,'SB'),(199,'SC'),(213,'SD'),(216,'SE'),(201,'SG'),(187,'SH'),(204,'SI'),(215,'SJ'),(203,'SK'),(200,'SL'),(194,'SM'),(197,'SN'),(206,'SO'),(214,'SR'),(210,'SS'),(195,'ST'),(67,'SV'),(202,'SX'),(218,'SY'),(71,'SZ'),(231,'TC'),(44,'TD'),(80,'TF'),(224,'TG'),(222,'TH'),(220,'TJ'),(225,'TK'),(223,'TL'),(230,'TM'),(228,'TN'),(226,'TO'),(229,'TR'),(227,'TT'),(232,'TV'),(219,'TW'),(221,'TZ'),(234,'UA'),(233,'UG'),(237,'UM'),(238,'US'),(239,'UY'),(240,'UZ'),(99,'VA'),(192,'VC'),(242,'VE'),(244,'VG'),(245,'VI'),(243,'VN'),(241,'VU'),(246,'WF'),(193,'WS'),(119,'XK'),(248,'YE'),(142,'YT'),(207,'ZA'),(249,'ZM'),(250,'ZW'); +/*!40000 ALTER TABLE `embargo_country` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `courseware_xmoduleuserstatesummaryfield` +-- Table structure for table `embargo_countryaccessrule` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `courseware_xmoduleuserstatesummaryfield` ( +CREATE TABLE `embargo_countryaccessrule` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `field_name` varchar(64) NOT NULL, - `value` longtext NOT NULL, - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, - `usage_id` varchar(255) NOT NULL, + `rule_type` varchar(255) NOT NULL, + `country_id` int(11) NOT NULL, + `restricted_course_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `courseware_xmoduleuserstatesummar_usage_id_5cc7ed48d6e2e021_uniq` (`usage_id`,`field_name`), - KEY `courseware_xmoduleuserstatesummaryfield_73f329f1` (`field_name`), - KEY `courseware_xmoduleuserstatesummaryfield_e2fa5388` (`created`), - KEY `courseware_xmoduleuserstatesummaryfield_9ae73c65` (`modified`), - KEY `courseware_xmoduleuserstatesummaryfield_0528eb2a` (`usage_id`) + UNIQUE KEY `embargo_countryaccessrul_restricted_course_id_cou_477b6bb1_uniq` (`restricted_course_id`,`country_id`), + KEY `embargo_countryacces_country_id_6af33e89_fk_embargo_c` (`country_id`), + CONSTRAINT `embargo_countryacces_country_id_6af33e89_fk_embargo_c` FOREIGN KEY (`country_id`) REFERENCES `embargo_country` (`id`), + CONSTRAINT `embargo_countryacces_restricted_course_id_eedb3d21_fk_embargo_r` FOREIGN KEY (`restricted_course_id`) REFERENCES `embargo_restrictedcourse` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `courseware_xmoduleuserstatesummaryfield` +-- Dumping data for table `embargo_countryaccessrule` -- -LOCK TABLES `courseware_xmoduleuserstatesummaryfield` WRITE; -/*!40000 ALTER TABLE `courseware_xmoduleuserstatesummaryfield` DISABLE KEYS */; -/*!40000 ALTER TABLE `courseware_xmoduleuserstatesummaryfield` ENABLE KEYS */; +LOCK TABLES `embargo_countryaccessrule` WRITE; +/*!40000 ALTER TABLE `embargo_countryaccessrule` DISABLE KEYS */; +/*!40000 ALTER TABLE `embargo_countryaccessrule` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `crawlers_crawlersconfig` +-- Table structure for table `embargo_courseaccessrulehistory` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `crawlers_crawlersconfig` ( +CREATE TABLE `embargo_courseaccessrulehistory` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `known_user_agents` longtext NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, + `timestamp` datetime(6) NOT NULL, + `course_key` varchar(255) NOT NULL, + `snapshot` longtext, PRIMARY KEY (`id`), - KEY `crawlers_crawlers_changed_by_id_7014349920284aa4_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `crawlers_crawlers_changed_by_id_7014349920284aa4_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `embargo_courseaccessrulehistory_timestamp_0267f0e6` (`timestamp`), + KEY `embargo_courseaccessrulehistory_course_key_6f7a7a06` (`course_key`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `crawlers_crawlersconfig` +-- Dumping data for table `embargo_courseaccessrulehistory` -- -LOCK TABLES `crawlers_crawlersconfig` WRITE; -/*!40000 ALTER TABLE `crawlers_crawlersconfig` DISABLE KEYS */; -/*!40000 ALTER TABLE `crawlers_crawlersconfig` ENABLE KEYS */; +LOCK TABLES `embargo_courseaccessrulehistory` WRITE; +/*!40000 ALTER TABLE `embargo_courseaccessrulehistory` DISABLE KEYS */; +/*!40000 ALTER TABLE `embargo_courseaccessrulehistory` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `credentials_credentialsapiconfig` +-- Table structure for table `embargo_embargoedcourse` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `credentials_credentialsapiconfig` ( +CREATE TABLE `embargo_embargoedcourse` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `internal_service_url` varchar(200) NOT NULL, - `public_service_url` varchar(200) NOT NULL, - `enable_learner_issuance` tinyint(1) NOT NULL, - `enable_studio_authoring` tinyint(1) NOT NULL, - `cache_ttl` int(10) unsigned NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, + `course_id` varchar(255) NOT NULL, + `embargoed` tinyint(1) NOT NULL, PRIMARY KEY (`id`), - KEY `credentials_crede_changed_by_id_273a2e6b0649c861_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `credentials_crede_changed_by_id_273a2e6b0649c861_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `course_id` (`course_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `credentials_credentialsapiconfig` +-- Dumping data for table `embargo_embargoedcourse` -- -LOCK TABLES `credentials_credentialsapiconfig` WRITE; -/*!40000 ALTER TABLE `credentials_credentialsapiconfig` DISABLE KEYS */; -/*!40000 ALTER TABLE `credentials_credentialsapiconfig` ENABLE KEYS */; +LOCK TABLES `embargo_embargoedcourse` WRITE; +/*!40000 ALTER TABLE `embargo_embargoedcourse` DISABLE KEYS */; +/*!40000 ALTER TABLE `embargo_embargoedcourse` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `credit_creditconfig` +-- Table structure for table `embargo_embargoedstate` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `credit_creditconfig` ( +CREATE TABLE `embargo_embargoedstate` ( `id` int(11) NOT NULL AUTO_INCREMENT, `change_date` datetime(6) NOT NULL, `enabled` tinyint(1) NOT NULL, - `cache_ttl` int(10) unsigned NOT NULL, + `embargoed_countries` longtext NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `credit_creditconf_changed_by_id_6270a800475f6694_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `credit_creditconf_changed_by_id_6270a800475f6694_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `embargo_embargoedstate_changed_by_id_f7763260_fk_auth_user_id` (`changed_by_id`), + CONSTRAINT `embargo_embargoedstate_changed_by_id_f7763260_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `credit_creditconfig` +-- Dumping data for table `embargo_embargoedstate` -- -LOCK TABLES `credit_creditconfig` WRITE; -/*!40000 ALTER TABLE `credit_creditconfig` DISABLE KEYS */; -/*!40000 ALTER TABLE `credit_creditconfig` ENABLE KEYS */; +LOCK TABLES `embargo_embargoedstate` WRITE; +/*!40000 ALTER TABLE `embargo_embargoedstate` DISABLE KEYS */; +/*!40000 ALTER TABLE `embargo_embargoedstate` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `credit_creditcourse` +-- Table structure for table `embargo_ipfilter` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `credit_creditcourse` ( +CREATE TABLE `embargo_ipfilter` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `course_key` varchar(255) NOT NULL, + `change_date` datetime(6) NOT NULL, `enabled` tinyint(1) NOT NULL, + `whitelist` longtext NOT NULL, + `blacklist` longtext NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `course_key` (`course_key`) + KEY `embargo_ipfilter_changed_by_id_39e4eed2_fk_auth_user_id` (`changed_by_id`), + CONSTRAINT `embargo_ipfilter_changed_by_id_39e4eed2_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `credit_creditcourse` +-- Dumping data for table `embargo_ipfilter` -- -LOCK TABLES `credit_creditcourse` WRITE; -/*!40000 ALTER TABLE `credit_creditcourse` DISABLE KEYS */; -/*!40000 ALTER TABLE `credit_creditcourse` ENABLE KEYS */; +LOCK TABLES `embargo_ipfilter` WRITE; +/*!40000 ALTER TABLE `embargo_ipfilter` DISABLE KEYS */; +/*!40000 ALTER TABLE `embargo_ipfilter` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `credit_crediteligibility` +-- Table structure for table `embargo_restrictedcourse` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `credit_crediteligibility` ( +CREATE TABLE `embargo_restrictedcourse` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, - `username` varchar(255) NOT NULL, - `deadline` datetime(6) NOT NULL, - `course_id` int(11) NOT NULL, + `course_key` varchar(255) NOT NULL, + `enroll_msg_key` varchar(255) NOT NULL, + `access_msg_key` varchar(255) NOT NULL, + `disable_access_check` tinyint(1) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `credit_crediteligibility_username_936cb16677e83e_uniq` (`username`,`course_id`), - KEY `credit_cred_course_id_4218adeba258bf8b_fk_credit_creditcourse_id` (`course_id`), - KEY `credit_crediteligibility_14c4b06b` (`username`), - CONSTRAINT `credit_cred_course_id_4218adeba258bf8b_fk_credit_creditcourse_id` FOREIGN KEY (`course_id`) REFERENCES `credit_creditcourse` (`id`) + UNIQUE KEY `course_key` (`course_key`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `credit_crediteligibility` +-- Dumping data for table `embargo_restrictedcourse` -- -LOCK TABLES `credit_crediteligibility` WRITE; -/*!40000 ALTER TABLE `credit_crediteligibility` DISABLE KEYS */; -/*!40000 ALTER TABLE `credit_crediteligibility` ENABLE KEYS */; +LOCK TABLES `embargo_restrictedcourse` WRITE; +/*!40000 ALTER TABLE `embargo_restrictedcourse` DISABLE KEYS */; +/*!40000 ALTER TABLE `embargo_restrictedcourse` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `credit_creditprovider` +-- Table structure for table `enterprise_adminnotification` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `credit_creditprovider` ( +CREATE TABLE `enterprise_adminnotification` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `provider_id` varchar(255) NOT NULL, - `active` tinyint(1) NOT NULL, - `display_name` varchar(255) NOT NULL, - `enable_integration` tinyint(1) NOT NULL, - `provider_url` varchar(200) NOT NULL, - `provider_status_url` varchar(200) NOT NULL, - `provider_description` longtext NOT NULL, - `fulfillment_instructions` longtext, - `eligibility_email_message` longtext NOT NULL, - `receipt_email_message` longtext NOT NULL, - `thumbnail_url` varchar(255) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `provider_id` (`provider_id`) + `text` varchar(512) NOT NULL, + `is_active` tinyint(1) NOT NULL, + `start_date` date NOT NULL, + `expiration_date` date NOT NULL, + `title` varchar(255) NOT NULL, + PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `credit_creditprovider` +-- Dumping data for table `enterprise_adminnotification` -- -LOCK TABLES `credit_creditprovider` WRITE; -/*!40000 ALTER TABLE `credit_creditprovider` DISABLE KEYS */; -/*!40000 ALTER TABLE `credit_creditprovider` ENABLE KEYS */; +LOCK TABLES `enterprise_adminnotification` WRITE; +/*!40000 ALTER TABLE `enterprise_adminnotification` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_adminnotification` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `credit_creditrequest` +-- Table structure for table `enterprise_adminnotification_admin_notification_filter` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `credit_creditrequest` ( +CREATE TABLE `enterprise_adminnotification_admin_notification_filter` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, - `uuid` varchar(32) NOT NULL, - `username` varchar(255) NOT NULL, - `parameters` longtext NOT NULL, - `status` varchar(255) NOT NULL, - `course_id` int(11) NOT NULL, - `provider_id` int(11) NOT NULL, + `adminnotification_id` int(11) NOT NULL, + `adminnotificationfilter_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `uuid` (`uuid`), - UNIQUE KEY `credit_creditrequest_username_4f61c10bb0d67c01_uniq` (`username`,`course_id`,`provider_id`), - KEY `credit_cred_course_id_578c5f1124002bab_fk_credit_creditcourse_id` (`course_id`), - KEY `credit_c_provider_id_f2973cc3e38a483_fk_credit_creditprovider_id` (`provider_id`), - KEY `credit_creditrequest_14c4b06b` (`username`), - CONSTRAINT `credit_c_provider_id_f2973cc3e38a483_fk_credit_creditprovider_id` FOREIGN KEY (`provider_id`) REFERENCES `credit_creditprovider` (`id`), - CONSTRAINT `credit_cred_course_id_578c5f1124002bab_fk_credit_creditcourse_id` FOREIGN KEY (`course_id`) REFERENCES `credit_creditcourse` (`id`) + UNIQUE KEY `enterprise_adminnotifica_adminnotification_id_adm_d4f4da63_uniq` (`adminnotification_id`,`adminnotificationfilter_id`), + KEY `enterprise_adminnoti_adminnotificationfil_276acc56_fk_enterpris` (`adminnotificationfilter_id`), + CONSTRAINT `enterprise_adminnoti_adminnotification_id_6ab95bff_fk_enterpris` FOREIGN KEY (`adminnotification_id`) REFERENCES `enterprise_adminnotification` (`id`), + CONSTRAINT `enterprise_adminnoti_adminnotificationfil_276acc56_fk_enterpris` FOREIGN KEY (`adminnotificationfilter_id`) REFERENCES `enterprise_adminnotificationfilter` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `credit_creditrequest` +-- Dumping data for table `enterprise_adminnotification_admin_notification_filter` -- -LOCK TABLES `credit_creditrequest` WRITE; -/*!40000 ALTER TABLE `credit_creditrequest` DISABLE KEYS */; -/*!40000 ALTER TABLE `credit_creditrequest` ENABLE KEYS */; +LOCK TABLES `enterprise_adminnotification_admin_notification_filter` WRITE; +/*!40000 ALTER TABLE `enterprise_adminnotification_admin_notification_filter` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_adminnotification_admin_notification_filter` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `credit_creditrequirement` +-- Table structure for table `enterprise_adminnotificationfilter` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `credit_creditrequirement` ( +CREATE TABLE `enterprise_adminnotificationfilter` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `namespace` varchar(255) NOT NULL, - `name` varchar(255) NOT NULL, - `display_name` varchar(255) NOT NULL, - `order` int(10) unsigned NOT NULL, - `criteria` longtext NOT NULL, - `active` tinyint(1) NOT NULL, - `course_id` int(11) NOT NULL, + `filter` varchar(50) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `credit_creditrequirement_namespace_33039c83b3e69b8_uniq` (`namespace`,`name`,`course_id`), - KEY `credit_cred_course_id_1c8fb9ebd295ae19_fk_credit_creditcourse_id` (`course_id`), - CONSTRAINT `credit_cred_course_id_1c8fb9ebd295ae19_fk_credit_creditcourse_id` FOREIGN KEY (`course_id`) REFERENCES `credit_creditcourse` (`id`) + UNIQUE KEY `filter` (`filter`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `credit_creditrequirement` +-- Dumping data for table `enterprise_adminnotificationfilter` -- -LOCK TABLES `credit_creditrequirement` WRITE; -/*!40000 ALTER TABLE `credit_creditrequirement` DISABLE KEYS */; -/*!40000 ALTER TABLE `credit_creditrequirement` ENABLE KEYS */; +LOCK TABLES `enterprise_adminnotificationfilter` WRITE; +/*!40000 ALTER TABLE `enterprise_adminnotificationfilter` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_adminnotificationfilter` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `credit_creditrequirementstatus` +-- Table structure for table `enterprise_adminnotificationread` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `credit_creditrequirementstatus` ( +CREATE TABLE `enterprise_adminnotificationread` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `username` varchar(255) NOT NULL, - `status` varchar(32) NOT NULL, - `reason` longtext NOT NULL, - `requirement_id` int(11) NOT NULL, + `is_read` tinyint(1) NOT NULL, + `admin_notification_id` int(11) NOT NULL, + `enterprise_customer_user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `credit_creditrequirementstatus_username_67dcb69ebf779e3b_uniq` (`username`,`requirement_id`), - KEY `c_requirement_id_3896aa6db214f84a_fk_credit_creditrequirement_id` (`requirement_id`), - KEY `credit_creditrequirementstatus_14c4b06b` (`username`), - CONSTRAINT `c_requirement_id_3896aa6db214f84a_fk_credit_creditrequirement_id` FOREIGN KEY (`requirement_id`) REFERENCES `credit_creditrequirement` (`id`) + UNIQUE KEY `enterprise_adminnotifica_enterprise_customer_user_767d1bcc_uniq` (`enterprise_customer_user_id`,`admin_notification_id`), + KEY `enterprise_adminnoti_admin_notification_i_77267771_fk_enterpris` (`admin_notification_id`), + CONSTRAINT `enterprise_adminnoti_admin_notification_i_77267771_fk_enterpris` FOREIGN KEY (`admin_notification_id`) REFERENCES `enterprise_adminnotification` (`id`), + CONSTRAINT `enterprise_adminnoti_enterprise_customer__4a67a03f_fk_enterpris` FOREIGN KEY (`enterprise_customer_user_id`) REFERENCES `enterprise_enterprisecustomeruser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `credit_creditrequirementstatus` +-- Dumping data for table `enterprise_adminnotificationread` -- -LOCK TABLES `credit_creditrequirementstatus` WRITE; -/*!40000 ALTER TABLE `credit_creditrequirementstatus` DISABLE KEYS */; -/*!40000 ALTER TABLE `credit_creditrequirementstatus` ENABLE KEYS */; +LOCK TABLES `enterprise_adminnotificationread` WRITE; +/*!40000 ALTER TABLE `enterprise_adminnotificationread` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_adminnotificationread` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `dark_lang_darklangconfig` +-- Table structure for table `enterprise_bulkcatalogqueryupdatecommandconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `dark_lang_darklangconfig` ( +CREATE TABLE `enterprise_bulkcatalogqueryupdatecommandconfiguration` ( `id` int(11) NOT NULL AUTO_INCREMENT, `change_date` datetime(6) NOT NULL, `enabled` tinyint(1) NOT NULL, - `released_languages` longtext NOT NULL, + `arguments` longtext NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `dark_lang_darklan_changed_by_id_7e1defb1121d58b8_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `dark_lang_darklan_changed_by_id_7e1defb1121d58b8_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; + KEY `enterprise_bulkcatal_changed_by_id_accb978f_fk_auth_user` (`changed_by_id`), + CONSTRAINT `enterprise_bulkcatal_changed_by_id_accb978f_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `dark_lang_darklangconfig` +-- Dumping data for table `enterprise_bulkcatalogqueryupdatecommandconfiguration` -- -LOCK TABLES `dark_lang_darklangconfig` WRITE; -/*!40000 ALTER TABLE `dark_lang_darklangconfig` DISABLE KEYS */; -INSERT INTO `dark_lang_darklangconfig` VALUES (1,'2016-12-17 01:37:07.676065',1,'',NULL); -/*!40000 ALTER TABLE `dark_lang_darklangconfig` ENABLE KEYS */; +LOCK TABLES `enterprise_bulkcatalogqueryupdatecommandconfiguration` WRITE; +/*!40000 ALTER TABLE `enterprise_bulkcatalogqueryupdatecommandconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_bulkcatalogqueryupdatecommandconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `degreed_degreedenterprisecustomerconfiguration` +-- Table structure for table `enterprise_enrollmentnotificationemailtemplate` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `degreed_degreedenterprisecustomerconfiguration` ( +CREATE TABLE `enterprise_enrollmentnotificationemailtemplate` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `active` tinyint(1) NOT NULL, - `key` varchar(255) NOT NULL, - `secret` varchar(255) NOT NULL, - `degreed_company_id` varchar(255) NOT NULL, - `enterprise_customer_id` char(32) NOT NULL, + `plaintext_template` longtext NOT NULL, + `html_template` longtext NOT NULL, + `subject_line` varchar(100) NOT NULL, + `enterprise_customer_id` char(32) DEFAULT NULL, + `template_type` varchar(255) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `enterprise_customer_id` (`enterprise_customer_id`), - CONSTRAINT `D8dff51a65b4ed0c3cf73b425e343929` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + CONSTRAINT `enterprise_enrollmen_enterprise_customer__df17d9ff_fk_enterpris` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `degreed_degreedenterprisecustomerconfiguration` +-- Dumping data for table `enterprise_enrollmentnotificationemailtemplate` -- -LOCK TABLES `degreed_degreedenterprisecustomerconfiguration` WRITE; -/*!40000 ALTER TABLE `degreed_degreedenterprisecustomerconfiguration` DISABLE KEYS */; -/*!40000 ALTER TABLE `degreed_degreedenterprisecustomerconfiguration` ENABLE KEYS */; +LOCK TABLES `enterprise_enrollmentnotificationemailtemplate` WRITE; +/*!40000 ALTER TABLE `enterprise_enrollmentnotificationemailtemplate` DISABLE KEYS */; +INSERT INTO `enterprise_enrollmentnotificationemailtemplate` VALUES (1,'2023-02-21 13:26:14.814149','2023-02-21 13:26:14.814149','\n {% load i18n %}{% if user_name %}{% blocktrans %}Dear {{ user_name }},{% endblocktrans %}{% else %}{% blocktrans %}Hi!{% endblocktrans %}{% endif %}\n {% if enrolled_in.type == \"program\" %}\n {% blocktrans with program_url=enrolled_in.url program_name=enrolled_in.name program_branding=enrolled_in.branding start_date=enrolled_in.start|date:\"DATE_FORMAT\" %}You have been enrolled in {{ program_name }}, a {{ program_branding }} program offered by {{ organization_name }}. This program begins {{ start_date }}. For more information, see the following link:\n\n {{ program_url }}{% endblocktrans %}{% else %}\n {% blocktrans with course_url=enrolled_in.url course_name=enrolled_in.name start_date=enrolled_in.start|date:\"DATE_FORMAT\" %}You have been enrolled in {{ course_name }}, a course offered by {{ organization_name }}. This course begins {{ start_date }}. For more information, see the following link:\n\n {{ course_url }}{% endblocktrans %}{% endif %}\n {% blocktrans with enrolled_in_name=enrolled_in.name %}\n Thanks,\n\n The {{enrolled_in_name}} team{% endblocktrans %}\n ','\n {% load i18n %}\n \n

{% if user_name %}{% blocktrans %}Dear {{ user_name }},{% endblocktrans %}{% else %}{% blocktrans %}Hi!{% endblocktrans %}{% endif %}

\n

{% if enrolled_in.type == \"program\" %}\n {% blocktrans with program_url=enrolled_in.url program_name=enrolled_in.name program_branding=enrolled_in.branding start_date=enrolled_in.start|date:\"DATE_FORMAT\" %}You have been enrolled in {{ program_name }}, a {{ program_branding }} program offered by {{ organization_name }}. This program begins {{ start_date }}. For more information, see {{ program_name }}.{% endblocktrans %}{% else %}\n {% blocktrans with course_url=enrolled_in.url course_name=enrolled_in.name start_date=enrolled_in.start|date:\"DATE_FORMAT\" %}You have been enrolled in {{ course_name }}, a course offered by {{ organization_name }}. This course begins {{ start_date }}. For more information, see {{ course_name }}.{% endblocktrans %}{% endif %}\n

\n {% blocktrans with enrolled_in_name=enrolled_in.name %}

\n Thanks,\n

\n

\n The {{enrolled_in_name}} team\n

{% endblocktrans %}\n \n ','',NULL,'SELF_ENROLL'),(2,'2023-02-21 13:26:14.819248','2023-02-21 13:26:15.724587','\n Great News! You\'ve been enrolled in {{enrolled_in.name}} by {{organization_name}}\n\n This course is a free benefit offered especially for you, and we are excited for you to meet your learning community on edX.\n\n Visit this link to see and enroll in your course, {{enrolled_in.url}}\n\n The {{enrolled_in.name}} team\n ','\n\n\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n
\n \"edX\"\n \n My Dashboard \n
\n
\n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n

Congratulations, Restless Learner

\n
\n

Great News! You\'ve been Enrolled in {{enrolled_in.name}} by {{organization_name}}

\n
\n
\n
\n \n \n \n \n \n \n
\n \n \n \n \n \n \n
\n

\n This course is a free benefit offered especially for you, and we are excited for you to meet your learning community on edX.\n

\n
\n
\n
\n \n \n \n \n \n \n
Start my course
\n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n
\"facebook
\n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n
\"twitter
\n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n
\"linkedin
\n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n
\"reddit
\n
\n \n \n \n \n \n \n
\n \n \n \n \n \n \n
\"whatsapp
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
edX for Business — eLearning Solutions for Your Company
© 2021 edX Inc. All rights reserved.
141 Portland St. 9th Floor, Cambridge, MA 02139
\n
\n\n\n ','',NULL,'ADMIN_ENROLL'); +/*!40000 ALTER TABLE `enterprise_enrollmentnotificationemailtemplate` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `degreed_degreedglobalconfiguration` +-- Table structure for table `enterprise_enterprisecatalogquery` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `degreed_degreedglobalconfiguration` ( +CREATE TABLE `enterprise_enterprisecatalogquery` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `degreed_base_url` varchar(255) NOT NULL, - `completion_status_api_path` varchar(255) NOT NULL, - `course_api_path` varchar(255) NOT NULL, - `oauth_api_path` varchar(255) NOT NULL, - `degreed_user_id` varchar(255) NOT NULL, - `degreed_user_password` varchar(255) NOT NULL, - `provider_id` varchar(100) NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `title` varchar(255) DEFAULT NULL, + `content_filter` longtext, + `uuid` char(32) NOT NULL, + `include_exec_ed_2u_courses` tinyint(1) NOT NULL, PRIMARY KEY (`id`), - KEY `degreed_degreedgl_changed_by_id_3af82cf8c774e820_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `degreed_degreedgl_changed_by_id_3af82cf8c774e820_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `enterprise_enterprisecatalogquery_uuid_4fdf5c5a_uniq` (`uuid`), + UNIQUE KEY `enterprise_enterprisecatalogquery_title_7a5a0a9d_uniq` (`title`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `degreed_degreedglobalconfiguration` +-- Dumping data for table `enterprise_enterprisecatalogquery` -- -LOCK TABLES `degreed_degreedglobalconfiguration` WRITE; -/*!40000 ALTER TABLE `degreed_degreedglobalconfiguration` DISABLE KEYS */; -/*!40000 ALTER TABLE `degreed_degreedglobalconfiguration` ENABLE KEYS */; +LOCK TABLES `enterprise_enterprisecatalogquery` WRITE; +/*!40000 ALTER TABLE `enterprise_enterprisecatalogquery` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_enterprisecatalogquery` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `degreed_degreedlearnerdatatransmissionaudit` +-- Table structure for table `enterprise_enterprisecourseenrollment` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `degreed_degreedlearnerdatatransmissionaudit` ( +CREATE TABLE `enterprise_enterprisecourseenrollment` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `degreed_user_email` varchar(255) NOT NULL, - `enterprise_course_enrollment_id` int(10) unsigned NOT NULL, - `course_id` varchar(255) NOT NULL, - `course_completed` tinyint(1) NOT NULL, - `completed_timestamp` varchar(10) NOT NULL, - `status` varchar(100) NOT NULL, - `error_message` longtext NOT NULL, `created` datetime(6) NOT NULL, - PRIMARY KEY (`id`) + `modified` datetime(6) NOT NULL, + `course_id` varchar(255) NOT NULL, + `enterprise_customer_user_id` int(11) NOT NULL, + `source_id` int(11) DEFAULT NULL, + `saved_for_later` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `enterprise_enterprisecou_enterprise_customer_user_71fe301a_uniq` (`enterprise_customer_user_id`,`course_id`), + KEY `enterprise_enterpris_source_id_c347bfa6_fk_enterpris` (`source_id`), + CONSTRAINT `enterprise_enterpris_enterprise_customer__cf423e59_fk_enterpris` FOREIGN KEY (`enterprise_customer_user_id`) REFERENCES `enterprise_enterprisecustomeruser` (`id`), + CONSTRAINT `enterprise_enterpris_source_id_c347bfa6_fk_enterpris` FOREIGN KEY (`source_id`) REFERENCES `enterprise_enterpriseenrollmentsource` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `degreed_degreedlearnerdatatransmissionaudit` +-- Dumping data for table `enterprise_enterprisecourseenrollment` -- -LOCK TABLES `degreed_degreedlearnerdatatransmissionaudit` WRITE; -/*!40000 ALTER TABLE `degreed_degreedlearnerdatatransmissionaudit` DISABLE KEYS */; -/*!40000 ALTER TABLE `degreed_degreedlearnerdatatransmissionaudit` ENABLE KEYS */; +LOCK TABLES `enterprise_enterprisecourseenrollment` WRITE; +/*!40000 ALTER TABLE `enterprise_enterprisecourseenrollment` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_enterprisecourseenrollment` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `degreed_historicaldegreedenterprisecustomerconfiguration` +-- Table structure for table `enterprise_enterprisecustomer` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `degreed_historicaldegreedenterprisecustomerconfiguration` ( - `id` int(11) NOT NULL, +CREATE TABLE `enterprise_enterprisecustomer` ( `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, + `uuid` char(32) NOT NULL, + `name` varchar(255) NOT NULL, + `slug` varchar(30) NOT NULL, `active` tinyint(1) NOT NULL, - `key` varchar(255) NOT NULL, - `secret` varchar(255) NOT NULL, - `degreed_company_id` varchar(255) NOT NULL, - `history_id` int(11) NOT NULL AUTO_INCREMENT, - `history_date` datetime(6) NOT NULL, - `history_change_reason` varchar(100) DEFAULT NULL, - `history_type` varchar(1) NOT NULL, - `enterprise_customer_id` char(32) DEFAULT NULL, - `history_user_id` int(11) DEFAULT NULL, - PRIMARY KEY (`history_id`), - KEY `degreed_histori_history_user_id_20efd88dd0a8765a_fk_auth_user_id` (`history_user_id`), - KEY `degreed_historicaldegreedenterprisecustomerconfiguration_b803fed` (`id`), - CONSTRAINT `degreed_histori_history_user_id_20efd88dd0a8765a_fk_auth_user_id` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) + `country` varchar(2) DEFAULT NULL, + `hide_course_original_price` tinyint(1) NOT NULL, + `enable_data_sharing_consent` tinyint(1) NOT NULL, + `enforce_data_sharing_consent` varchar(25) NOT NULL, + `enable_audit_enrollment` tinyint(1) NOT NULL, + `enable_audit_data_reporting` tinyint(1) NOT NULL, + `replace_sensitive_sso_username` tinyint(1) NOT NULL, + `enable_autocohorting` tinyint(1) NOT NULL, + `enable_portal_code_management_screen` tinyint(1) NOT NULL, + `enable_portal_reporting_config_screen` tinyint(1) NOT NULL, + `enable_portal_subscription_management_screen` tinyint(1) NOT NULL, + `enable_learner_portal` tinyint(1) NOT NULL, + `contact_email` varchar(254) DEFAULT NULL, + `customer_type_id` int(11) NOT NULL, + `site_id` int(11) NOT NULL, + `enable_slug_login` tinyint(1) NOT NULL, + `enable_portal_saml_configuration_screen` tinyint(1) NOT NULL, + `default_contract_discount` decimal(8,5) DEFAULT NULL, + `enable_analytics_screen` tinyint(1) NOT NULL, + `enable_integrated_customer_learner_portal_search` tinyint(1) NOT NULL, + `default_language` varchar(25) DEFAULT NULL, + `enable_portal_lms_configurations_screen` tinyint(1) NOT NULL, + `sender_alias` varchar(255) DEFAULT NULL, + `reply_to` varchar(254) DEFAULT NULL, + `hide_labor_market_data` tinyint(1) NOT NULL, + `enable_universal_link` tinyint(1) NOT NULL, + `enable_browse_and_request` tinyint(1) NOT NULL, + `enable_learner_portal_offers` tinyint(1) NOT NULL, + `enable_portal_learner_credit_management_screen` tinyint(1) NOT NULL, + `enable_executive_education_2U_fulfillment` tinyint(1) NOT NULL, + PRIMARY KEY (`uuid`), + UNIQUE KEY `slug` (`slug`), + KEY `enterprise_enterpris_customer_type_id_4b1ee315_fk_enterpris` (`customer_type_id`), + KEY `enterprise_enterprisecustomer_site_id_947ed084_fk_django_site_id` (`site_id`), + CONSTRAINT `enterprise_enterpris_customer_type_id_4b1ee315_fk_enterpris` FOREIGN KEY (`customer_type_id`) REFERENCES `enterprise_enterprisecustomertype` (`id`), + CONSTRAINT `enterprise_enterprisecustomer_site_id_947ed084_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `degreed_historicaldegreedenterprisecustomerconfiguration` +-- Dumping data for table `enterprise_enterprisecustomer` -- -LOCK TABLES `degreed_historicaldegreedenterprisecustomerconfiguration` WRITE; -/*!40000 ALTER TABLE `degreed_historicaldegreedenterprisecustomerconfiguration` DISABLE KEYS */; -/*!40000 ALTER TABLE `degreed_historicaldegreedenterprisecustomerconfiguration` ENABLE KEYS */; +LOCK TABLES `enterprise_enterprisecustomer` WRITE; +/*!40000 ALTER TABLE `enterprise_enterprisecustomer` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_enterprisecustomer` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `django_admin_log` +-- Table structure for table `enterprise_enterprisecustomerbrandingconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `django_admin_log` ( +CREATE TABLE `enterprise_enterprisecustomerbrandingconfiguration` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `action_time` datetime(6) NOT NULL, - `object_id` longtext, - `object_repr` varchar(200) NOT NULL, - `action_flag` smallint(5) unsigned NOT NULL, - `change_message` longtext NOT NULL, - `content_type_id` int(11) DEFAULT NULL, - `user_id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `logo` varchar(255) DEFAULT NULL, + `enterprise_customer_id` char(32) NOT NULL, + `primary_color` varchar(7) DEFAULT NULL, + `secondary_color` varchar(7) DEFAULT NULL, + `tertiary_color` varchar(7) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `djang_content_type_id_697914295151027a_fk_django_content_type_id` (`content_type_id`), - KEY `django_admin_log_user_id_52fdd58701c5f563_fk_auth_user_id` (`user_id`), - CONSTRAINT `djang_content_type_id_697914295151027a_fk_django_content_type_id` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`), - CONSTRAINT `django_admin_log_user_id_52fdd58701c5f563_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `enterprise_customer_id` (`enterprise_customer_id`), + CONSTRAINT `enterprise_enterpris_enterprise_customer__09c1ee14_fk_enterpris` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `django_admin_log` +-- Dumping data for table `enterprise_enterprisecustomerbrandingconfiguration` -- -LOCK TABLES `django_admin_log` WRITE; -/*!40000 ALTER TABLE `django_admin_log` DISABLE KEYS */; -/*!40000 ALTER TABLE `django_admin_log` ENABLE KEYS */; +LOCK TABLES `enterprise_enterprisecustomerbrandingconfiguration` WRITE; +/*!40000 ALTER TABLE `enterprise_enterprisecustomerbrandingconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_enterprisecustomerbrandingconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `django_comment_client_permission` +-- Table structure for table `enterprise_enterprisecustomercatalog` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `django_comment_client_permission` ( - `name` varchar(30) NOT NULL, - PRIMARY KEY (`name`) +CREATE TABLE `enterprise_enterprisecustomercatalog` ( + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `uuid` char(32) NOT NULL, + `title` varchar(255) NOT NULL, + `content_filter` longtext, + `enabled_course_modes` longtext NOT NULL, + `publish_audit_enrollment_urls` tinyint(1) NOT NULL, + `enterprise_catalog_query_id` int(11) DEFAULT NULL, + `enterprise_customer_id` char(32) NOT NULL, + PRIMARY KEY (`uuid`), + KEY `enterprise_enterpris_enterprise_catalog_q_aa53eb7d_fk_enterpris` (`enterprise_catalog_query_id`), + KEY `enterprise_enterpris_enterprise_customer__3b4660ad_fk_enterpris` (`enterprise_customer_id`), + CONSTRAINT `enterprise_enterpris_enterprise_catalog_q_aa53eb7d_fk_enterpris` FOREIGN KEY (`enterprise_catalog_query_id`) REFERENCES `enterprise_enterprisecatalogquery` (`id`), + CONSTRAINT `enterprise_enterpris_enterprise_customer__3b4660ad_fk_enterpris` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `django_comment_client_permission` +-- Dumping data for table `enterprise_enterprisecustomercatalog` -- -LOCK TABLES `django_comment_client_permission` WRITE; -/*!40000 ALTER TABLE `django_comment_client_permission` DISABLE KEYS */; -INSERT INTO `django_comment_client_permission` VALUES ('create_comment'),('create_sub_comment'),('create_thread'),('delete_comment'),('delete_thread'),('edit_content'),('endorse_comment'),('follow_commentable'),('follow_thread'),('group_delete_comment'),('group_delete_thread'),('group_edit_content'),('group_endorse_comment'),('group_openclose_thread'),('manage_moderator'),('openclose_thread'),('see_all_cohorts'),('unfollow_commentable'),('unfollow_thread'),('unvote'),('update_comment'),('update_thread'),('vote'); -/*!40000 ALTER TABLE `django_comment_client_permission` ENABLE KEYS */; +LOCK TABLES `enterprise_enterprisecustomercatalog` WRITE; +/*!40000 ALTER TABLE `enterprise_enterprisecustomercatalog` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_enterprisecustomercatalog` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `django_comment_client_permission_roles` +-- Table structure for table `enterprise_enterprisecustomeridentityprovider` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `django_comment_client_permission_roles` ( +CREATE TABLE `enterprise_enterprisecustomeridentityprovider` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `permission_id` varchar(30) NOT NULL, - `role_id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `provider_id` varchar(50) NOT NULL, + `enterprise_customer_id` char(32) NOT NULL, + `default_provider` tinyint(1) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `permission_id` (`permission_id`,`role_id`), - KEY `django_role_id_558412c96ef7ba87_fk_django_comment_client_role_id` (`role_id`), - CONSTRAINT `D4e9a4067c1db9041491363f5e032121` FOREIGN KEY (`permission_id`) REFERENCES `django_comment_client_permission` (`name`), - CONSTRAINT `django_role_id_558412c96ef7ba87_fk_django_comment_client_role_id` FOREIGN KEY (`role_id`) REFERENCES `django_comment_client_role` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=159 DEFAULT CHARSET=utf8; + UNIQUE KEY `provider_id` (`provider_id`), + KEY `enterprise_enterprisecustom_enterprise_customer_id_40b39097` (`enterprise_customer_id`), + CONSTRAINT `enterprise_enterpris_enterprise_customer__40b39097_fk_enterpris` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `django_comment_client_permission_roles` +-- Dumping data for table `enterprise_enterprisecustomeridentityprovider` -- -LOCK TABLES `django_comment_client_permission_roles` WRITE; -/*!40000 ALTER TABLE `django_comment_client_permission_roles` DISABLE KEYS */; -INSERT INTO `django_comment_client_permission_roles` VALUES (47,'create_comment',1),(29,'create_comment',2),(30,'create_comment',3),(11,'create_comment',4),(79,'create_comment',5),(158,'create_comment',6),(113,'create_comment',7),(124,'create_comment',8),(141,'create_comment',9),(90,'create_comment',10),(48,'create_sub_comment',1),(24,'create_sub_comment',2),(31,'create_sub_comment',3),(6,'create_sub_comment',4),(74,'create_sub_comment',5),(153,'create_sub_comment',6),(108,'create_sub_comment',7),(119,'create_sub_comment',8),(136,'create_sub_comment',9),(85,'create_sub_comment',10),(49,'create_thread',1),(26,'create_thread',2),(32,'create_thread',3),(8,'create_thread',4),(76,'create_thread',5),(155,'create_thread',6),(110,'create_thread',7),(121,'create_thread',8),(138,'create_thread',9),(87,'create_thread',10),(50,'delete_comment',1),(16,'delete_comment',2),(33,'delete_comment',3),(146,'delete_comment',6),(95,'delete_comment',7),(129,'delete_comment',9),(51,'delete_thread',1),(13,'delete_thread',2),(34,'delete_thread',3),(143,'delete_thread',6),(92,'delete_thread',7),(126,'delete_thread',9),(52,'edit_content',1),(12,'edit_content',2),(35,'edit_content',3),(142,'edit_content',6),(91,'edit_content',7),(125,'edit_content',9),(53,'endorse_comment',1),(15,'endorse_comment',2),(36,'endorse_comment',3),(145,'endorse_comment',6),(94,'endorse_comment',7),(128,'endorse_comment',9),(54,'follow_commentable',1),(27,'follow_commentable',2),(37,'follow_commentable',3),(9,'follow_commentable',4),(77,'follow_commentable',5),(156,'follow_commentable',6),(111,'follow_commentable',7),(122,'follow_commentable',8),(139,'follow_commentable',9),(88,'follow_commentable',10),(55,'follow_thread',1),(21,'follow_thread',2),(38,'follow_thread',3),(3,'follow_thread',4),(71,'follow_thread',5),(150,'follow_thread',6),(105,'follow_thread',7),(116,'follow_thread',8),(133,'follow_thread',9),(82,'follow_thread',10),(68,'group_delete_comment',5),(101,'group_delete_comment',8),(65,'group_delete_thread',5),(98,'group_delete_thread',8),(64,'group_edit_content',5),(97,'group_edit_content',8),(67,'group_endorse_comment',5),(100,'group_endorse_comment',8),(66,'group_openclose_thread',5),(99,'group_openclose_thread',8),(18,'manage_moderator',1),(102,'manage_moderator',6),(56,'openclose_thread',1),(14,'openclose_thread',2),(39,'openclose_thread',3),(144,'openclose_thread',6),(93,'openclose_thread',7),(127,'openclose_thread',9),(57,'see_all_cohorts',1),(17,'see_all_cohorts',2),(40,'see_all_cohorts',3),(147,'see_all_cohorts',6),(96,'see_all_cohorts',7),(130,'see_all_cohorts',9),(58,'unfollow_commentable',1),(28,'unfollow_commentable',2),(41,'unfollow_commentable',3),(10,'unfollow_commentable',4),(78,'unfollow_commentable',5),(157,'unfollow_commentable',6),(112,'unfollow_commentable',7),(123,'unfollow_commentable',8),(140,'unfollow_commentable',9),(89,'unfollow_commentable',10),(59,'unfollow_thread',1),(22,'unfollow_thread',2),(42,'unfollow_thread',3),(4,'unfollow_thread',4),(72,'unfollow_thread',5),(151,'unfollow_thread',6),(106,'unfollow_thread',7),(117,'unfollow_thread',8),(134,'unfollow_thread',9),(83,'unfollow_thread',10),(60,'unvote',1),(25,'unvote',2),(43,'unvote',3),(7,'unvote',4),(75,'unvote',5),(154,'unvote',6),(109,'unvote',7),(120,'unvote',8),(137,'unvote',9),(86,'unvote',10),(61,'update_comment',1),(23,'update_comment',2),(44,'update_comment',3),(5,'update_comment',4),(73,'update_comment',5),(152,'update_comment',6),(107,'update_comment',7),(118,'update_comment',8),(135,'update_comment',9),(84,'update_comment',10),(62,'update_thread',1),(20,'update_thread',2),(45,'update_thread',3),(2,'update_thread',4),(70,'update_thread',5),(149,'update_thread',6),(104,'update_thread',7),(115,'update_thread',8),(132,'update_thread',9),(81,'update_thread',10),(63,'vote',1),(19,'vote',2),(46,'vote',3),(1,'vote',4),(69,'vote',5),(148,'vote',6),(103,'vote',7),(114,'vote',8),(131,'vote',9),(80,'vote',10); -/*!40000 ALTER TABLE `django_comment_client_permission_roles` ENABLE KEYS */; +LOCK TABLES `enterprise_enterprisecustomeridentityprovider` WRITE; +/*!40000 ALTER TABLE `enterprise_enterprisecustomeridentityprovider` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_enterprisecustomeridentityprovider` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `django_comment_client_role` +-- Table structure for table `enterprise_enterprisecustomerinvitekey` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `django_comment_client_role` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(30) NOT NULL, - `course_id` varchar(255) NOT NULL, - PRIMARY KEY (`id`), - KEY `django_comment_client_role_ea134da7` (`course_id`) -) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; +CREATE TABLE `enterprise_enterprisecustomerinvitekey` ( + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `is_removed` tinyint(1) NOT NULL, + `uuid` char(32) NOT NULL, + `usage_limit` int(10) unsigned NOT NULL, + `expiration_date` datetime(6) NOT NULL, + `enterprise_customer_id` char(32) NOT NULL, + `is_active` tinyint(1) NOT NULL, + PRIMARY KEY (`uuid`), + KEY `enterprise_enterpris_enterprise_customer__2d339ecc_fk_enterpris` (`enterprise_customer_id`), + CONSTRAINT `enterprise_enterpris_enterprise_customer__2d339ecc_fk_enterpris` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `django_comment_client_role` +-- Dumping data for table `enterprise_enterprisecustomerinvitekey` -- -LOCK TABLES `django_comment_client_role` WRITE; -/*!40000 ALTER TABLE `django_comment_client_role` DISABLE KEYS */; -INSERT INTO `django_comment_client_role` VALUES (1,'Administrator','course-v1:edX+DemoX+Demo_Course'),(2,'Moderator','course-v1:edX+DemoX+Demo_Course'),(3,'Community TA','course-v1:edX+DemoX+Demo_Course'),(4,'Student','course-v1:edX+DemoX+Demo_Course'),(5,'Group Moderator','course-v1:edX+DemoX+Demo_Course'),(6,'Administrator','course-v1:edX+E2E-101+course'),(7,'Moderator','course-v1:edX+E2E-101+course'),(8,'Group Moderator','course-v1:edX+E2E-101+course'),(9,'Community TA','course-v1:edX+E2E-101+course'),(10,'Student','course-v1:edX+E2E-101+course'); -/*!40000 ALTER TABLE `django_comment_client_role` ENABLE KEYS */; +LOCK TABLES `enterprise_enterprisecustomerinvitekey` WRITE; +/*!40000 ALTER TABLE `enterprise_enterprisecustomerinvitekey` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_enterprisecustomerinvitekey` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `django_comment_client_role_users` +-- Table structure for table `enterprise_enterprisecustomerreportingconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `django_comment_client_role_users` ( +CREATE TABLE `enterprise_enterprisecustomerreportingconfiguration` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `role_id` int(11) NOT NULL, - `user_id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `uuid` char(32) NOT NULL, + `active` tinyint(1) NOT NULL, + `include_date` tinyint(1) NOT NULL, + `delivery_method` varchar(20) NOT NULL, + `pgp_encryption_key` longtext, + `data_type` varchar(20) NOT NULL, + `report_type` varchar(20) NOT NULL, + `email` longtext NOT NULL, + `frequency` varchar(20) NOT NULL, + `day_of_month` smallint(6) DEFAULT NULL, + `day_of_week` smallint(6) DEFAULT NULL, + `hour_of_day` smallint(6) NOT NULL, + `decrypted_password` longblob, + `sftp_hostname` varchar(256) DEFAULT NULL, + `sftp_port` int(10) unsigned DEFAULT NULL, + `sftp_username` varchar(256) DEFAULT NULL, + `decrypted_sftp_password` longblob, + `sftp_file_path` varchar(256) DEFAULT NULL, + `enterprise_customer_id` char(32) NOT NULL, + `enable_compression` tinyint(1) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `role_id` (`role_id`,`user_id`), - KEY `django_comment_client_r_user_id_139843e7dcf77368_fk_auth_user_id` (`user_id`), - CONSTRAINT `django_comment_client_r_user_id_139843e7dcf77368_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`), - CONSTRAINT `django_role_id_75cf4005dc1fb11d_fk_django_comment_client_role_id` FOREIGN KEY (`role_id`) REFERENCES `django_comment_client_role` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; + UNIQUE KEY `uuid` (`uuid`), + KEY `enterprise_enterpris_enterprise_customer__d5b55543_fk_enterpris` (`enterprise_customer_id`), + CONSTRAINT `enterprise_enterpris_enterprise_customer__d5b55543_fk_enterpris` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `django_comment_client_role_users` +-- Dumping data for table `enterprise_enterprisecustomerreportingconfiguration` -- -LOCK TABLES `django_comment_client_role_users` WRITE; -/*!40000 ALTER TABLE `django_comment_client_role_users` DISABLE KEYS */; -INSERT INTO `django_comment_client_role_users` VALUES (1,4,6),(2,4,7),(3,4,8),(4,4,9); -/*!40000 ALTER TABLE `django_comment_client_role_users` ENABLE KEYS */; +LOCK TABLES `enterprise_enterprisecustomerreportingconfiguration` WRITE; +/*!40000 ALTER TABLE `enterprise_enterprisecustomerreportingconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_enterprisecustomerreportingconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `django_comment_common_coursediscussionsettings` +-- Table structure for table `enterprise_enterprisecustomerreportingconfiguration_enterpricf00` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `django_comment_common_coursediscussionsettings` ( +CREATE TABLE `enterprise_enterprisecustomerreportingconfiguration_enterpricf00` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `course_id` varchar(255) NOT NULL, - `always_divide_inline_discussions` tinyint(1) NOT NULL, - `divided_discussions` longtext, - `division_scheme` varchar(20) NOT NULL, + `enterprisecustomerreportingconfiguration_id` int(11) NOT NULL, + `enterprisecustomercatalog_id` char(32) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `course_id` (`course_id`) + UNIQUE KEY `enterprise_enterprisecus_enterprisecustomerreport_cc87ab4c_uniq` (`enterprisecustomerreportingconfiguration_id`,`enterprisecustomercatalog_id`), + KEY `enterprise_enterpris_enterprisecustomerca_ebdae525_fk_enterpris` (`enterprisecustomercatalog_id`), + CONSTRAINT `enterprise_enterpris_enterprisecustomerca_ebdae525_fk_enterpris` FOREIGN KEY (`enterprisecustomercatalog_id`) REFERENCES `enterprise_enterprisecustomercatalog` (`uuid`), + CONSTRAINT `enterprise_enterpris_enterprisecustomerre_66147101_fk_enterpris` FOREIGN KEY (`enterprisecustomerreportingconfiguration_id`) REFERENCES `enterprise_enterprisecustomerreportingconfiguration` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `django_comment_common_coursediscussionsettings` +-- Dumping data for table `enterprise_enterprisecustomerreportingconfiguration_enterpricf00` -- -LOCK TABLES `django_comment_common_coursediscussionsettings` WRITE; -/*!40000 ALTER TABLE `django_comment_common_coursediscussionsettings` DISABLE KEYS */; -/*!40000 ALTER TABLE `django_comment_common_coursediscussionsettings` ENABLE KEYS */; +LOCK TABLES `enterprise_enterprisecustomerreportingconfiguration_enterpricf00` WRITE; +/*!40000 ALTER TABLE `enterprise_enterprisecustomerreportingconfiguration_enterpricf00` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_enterprisecustomerreportingconfiguration_enterpricf00` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `django_comment_common_forumsconfig` +-- Table structure for table `enterprise_enterprisecustomertype` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `django_comment_common_forumsconfig` ( +CREATE TABLE `enterprise_enterprisecustomertype` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `connection_timeout` double NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `django_comment_co_changed_by_id_18a7f46ff6309996_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `django_comment_co_changed_by_id_18a7f46ff6309996_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `name` varchar(25) NOT NULL, + PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `django_comment_common_forumsconfig` +-- Dumping data for table `enterprise_enterprisecustomertype` -- -LOCK TABLES `django_comment_common_forumsconfig` WRITE; -/*!40000 ALTER TABLE `django_comment_common_forumsconfig` DISABLE KEYS */; -INSERT INTO `django_comment_common_forumsconfig` VALUES (1,'2016-12-17 01:37:09.941982',1,5,NULL); -/*!40000 ALTER TABLE `django_comment_common_forumsconfig` ENABLE KEYS */; +LOCK TABLES `enterprise_enterprisecustomertype` WRITE; +/*!40000 ALTER TABLE `enterprise_enterprisecustomertype` DISABLE KEYS */; +INSERT INTO `enterprise_enterprisecustomertype` VALUES (1,'2023-02-21 13:26:04.298519','2023-02-21 13:26:04.298519','Enterprise'); +/*!40000 ALTER TABLE `enterprise_enterprisecustomertype` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `django_content_type` +-- Table structure for table `enterprise_enterprisecustomeruser` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `django_content_type` ( +CREATE TABLE `enterprise_enterprisecustomeruser` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `app_label` varchar(100) NOT NULL, - `model` varchar(100) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `user_id` int(10) unsigned NOT NULL, + `active` tinyint(1) NOT NULL, + `linked` tinyint(1) NOT NULL, + `enterprise_customer_id` char(32) NOT NULL, + `invite_key_id` char(32) DEFAULT NULL, + `should_inactivate_other_customers` tinyint(1) NOT NULL, + `is_relinkable` tinyint(1) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `django_content_type_app_label_45f3b1d93ec8c61c_uniq` (`app_label`,`model`) -) ENGINE=InnoDB AUTO_INCREMENT=380 DEFAULT CHARSET=utf8; + UNIQUE KEY `enterprise_enterprisecus_enterprise_customer_id_u_ffddc29f_uniq` (`enterprise_customer_id`,`user_id`), + KEY `enterprise_enterprisecustomeruser_user_id_aa8d772f` (`user_id`), + KEY `enterprise_enterpris_invite_key_id_41c8641f_fk_enterpris` (`invite_key_id`), + CONSTRAINT `enterprise_enterpris_enterprise_customer__f0fea924_fk_enterpris` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`), + CONSTRAINT `enterprise_enterpris_invite_key_id_41c8641f_fk_enterpris` FOREIGN KEY (`invite_key_id`) REFERENCES `enterprise_enterprisecustomerinvitekey` (`uuid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `django_content_type` +-- Dumping data for table `enterprise_enterprisecustomeruser` -- -LOCK TABLES `django_content_type` WRITE; -/*!40000 ALTER TABLE `django_content_type` DISABLE KEYS */; -INSERT INTO `django_content_type` VALUES (133,'admin','logentry'),(232,'api_admin','apiaccessconfig'),(1,'api_admin','apiaccessrequest'),(233,'api_admin','catalog'),(231,'api_admin','historicalapiaccessrequest'),(261,'assessment','aiclassifier'),(260,'assessment','aiclassifierset'),(263,'assessment','aigradingworkflow'),(262,'assessment','aitrainingworkflow'),(251,'assessment','assessment'),(254,'assessment','assessmentfeedback'),(253,'assessment','assessmentfeedbackoption'),(252,'assessment','assessmentpart'),(249,'assessment','criterion'),(250,'assessment','criterionoption'),(255,'assessment','peerworkflow'),(256,'assessment','peerworkflowitem'),(248,'assessment','rubric'),(264,'assessment','staffworkflow'),(258,'assessment','studenttrainingworkflow'),(259,'assessment','studenttrainingworkflowitem'),(257,'assessment','trainingexample'),(3,'auth','group'),(2,'auth','permission'),(4,'auth','user'),(236,'badges','badgeassertion'),(235,'badges','badgeclass'),(237,'badges','coursecompleteimageconfiguration'),(238,'badges','courseeventbadgesconfiguration'),(322,'block_structure','blockstructureconfiguration'),(323,'block_structure','blockstructuremodel'),(218,'bookmarks','bookmark'),(219,'bookmarks','xblockcache'),(85,'branding','brandingapiconfig'),(84,'branding','brandinginfoconfig'),(83,'bulk_email','bulkemailflag'),(78,'bulk_email','cohorttarget'),(82,'bulk_email','courseauthorization'),(79,'bulk_email','courseemail'),(81,'bulk_email','courseemailtemplate'),(305,'bulk_email','coursemodetarget'),(80,'bulk_email','optout'),(77,'bulk_email','target'),(221,'catalog','catalogintegration'),(342,'celery_utils','chorddata'),(311,'celery_utils','failedtask'),(67,'certificates','certificategenerationconfiguration'),(66,'certificates','certificategenerationcoursesetting'),(62,'certificates','certificategenerationhistory'),(68,'certificates','certificatehtmlviewconfiguration'),(63,'certificates','certificateinvalidation'),(69,'certificates','certificatetemplate'),(70,'certificates','certificatetemplateasset'),(60,'certificates','certificatewhitelist'),(65,'certificates','examplecertificate'),(64,'certificates','examplecertificateset'),(61,'certificates','generatedcertificate'),(203,'commerce','commerceconfiguration'),(360,'completion','blockcompletion'),(366,'consent','datasharingconsent'),(365,'consent','historicaldatasharingconsent'),(22,'contentserver','cdnuseragentsconfig'),(21,'contentserver','courseassetcachettlconfig'),(379,'contentstore','coursenewassetspageflag'),(378,'contentstore','newassetspageflag'),(295,'contentstore','pushnotificationconfig'),(294,'contentstore','videouploadconfig'),(5,'contenttypes','contenttype'),(201,'corsheaders','corsmodel'),(202,'cors_csrf','xdomainproxyconfiguration'),(230,'coursetalk','coursetalkwidgetconfiguration'),(349,'courseware','coursedynamicupgradedeadlineconfiguration'),(348,'courseware','dynamicupgradedeadlineconfiguration'),(31,'courseware','offlinecomputedgrade'),(32,'courseware','offlinecomputedgradelog'),(350,'courseware','orgdynamicupgradedeadlineconfiguration'),(33,'courseware','studentfieldoverride'),(26,'courseware','studentmodule'),(27,'courseware','studentmodulehistory'),(30,'courseware','xmodulestudentinfofield'),(29,'courseware','xmodulestudentprefsfield'),(28,'courseware','xmoduleuserstatesummaryfield'),(293,'coursewarehistoryextended','studentmodulehistoryextended'),(186,'course_action_state','coursererunstate'),(296,'course_creators','coursecreator'),(359,'course_goals','coursegoal'),(73,'course_groups','cohortmembership'),(76,'course_groups','coursecohort'),(75,'course_groups','coursecohortssettings'),(72,'course_groups','courseusergroup'),(74,'course_groups','courseusergrouppartitiongroup'),(336,'course_groups','unregisteredlearnercohortassignments'),(160,'course_modes','coursemode'),(162,'course_modes','coursemodeexpirationconfig'),(161,'course_modes','coursemodesarchive'),(196,'course_overviews','courseoverview'),(199,'course_overviews','courseoverviewimageconfig'),(198,'course_overviews','courseoverviewimageset'),(197,'course_overviews','courseoverviewtab'),(200,'course_structures','coursestructure'),(312,'crawlers','crawlersconfig'),(224,'credentials','credentialsapiconfig'),(212,'credit','creditconfig'),(205,'credit','creditcourse'),(209,'credit','crediteligibility'),(204,'credit','creditprovider'),(211,'credit','creditrequest'),(206,'credit','creditrequirement'),(208,'credit','creditrequirementstatus'),(210,'credit','historicalcreditrequest'),(207,'credit','historicalcreditrequirementstatus'),(171,'dark_lang','darklangconfig'),(309,'default','association'),(310,'default','code'),(308,'default','nonce'),(307,'default','usersocialauth'),(371,'degreed','degreedenterprisecustomerconfiguration'),(369,'degreed','degreedglobalconfiguration'),(372,'degreed','degreedlearnerdatatransmissionaudit'),(370,'degreed','historicaldegreedenterprisecustomerconfiguration'),(334,'django_comment_common','coursediscussionsettings'),(136,'django_comment_common','forumsconfig'),(135,'django_comment_common','permission'),(134,'django_comment_common','role'),(132,'django_notify','notification'),(129,'django_notify','notificationtype'),(130,'django_notify','settings'),(131,'django_notify','subscription'),(93,'django_openid_auth','association'),(92,'django_openid_auth','nonce'),(94,'django_openid_auth','useropenid'),(12,'djcelery','crontabschedule'),(11,'djcelery','intervalschedule'),(14,'djcelery','periodictask'),(13,'djcelery','periodictasks'),(9,'djcelery','taskmeta'),(10,'djcelery','tasksetmeta'),(16,'djcelery','taskstate'),(15,'djcelery','workerstate'),(270,'edxval','coursevideo'),(271,'edxval','encodedvideo'),(268,'edxval','profile'),(272,'edxval','subtitle'),(357,'edxval','thirdpartytranscriptcredentialsstate'),(356,'edxval','transcriptpreference'),(269,'edxval','video'),(354,'edxval','videoimage'),(355,'edxval','videotranscript'),(99,'edx_oauth2_provider','trustedclient'),(273,'edx_proctoring','proctoredexam'),(274,'edx_proctoring','proctoredexamreviewpolicy'),(275,'edx_proctoring','proctoredexamreviewpolicyhistory'),(282,'edx_proctoring','proctoredexamsoftwaresecurecomment'),(280,'edx_proctoring','proctoredexamsoftwaresecurereview'),(281,'edx_proctoring','proctoredexamsoftwaresecurereviewhistory'),(278,'edx_proctoring','proctoredexamstudentallowance'),(279,'edx_proctoring','proctoredexamstudentallowancehistory'),(276,'edx_proctoring','proctoredexamstudentattempt'),(277,'edx_proctoring','proctoredexamstudentattempthistory'),(239,'email_marketing','emailmarketingconfiguration'),(182,'embargo','country'),(183,'embargo','countryaccessrule'),(184,'embargo','courseaccessrulehistory'),(179,'embargo','embargoedcourse'),(180,'embargo','embargoedstate'),(185,'embargo','ipfilter'),(181,'embargo','restrictedcourse'),(319,'enterprise','enrollmentnotificationemailtemplate'),(317,'enterprise','enterprisecourseenrollment'),(286,'enterprise','enterprisecustomer'),(289,'enterprise','enterprisecustomerbrandingconfiguration'),(363,'enterprise','enterprisecustomercatalog'),(315,'enterprise','enterprisecustomerentitlement'),(290,'enterprise','enterprisecustomeridentityprovider'),(364,'enterprise','enterprisecustomerreportingconfiguration'),(287,'enterprise','enterprisecustomeruser'),(318,'enterprise','historicalenrollmentnotificationemailtemplate'),(316,'enterprise','historicalenterprisecourseenrollment'),(285,'enterprise','historicalenterprisecustomer'),(362,'enterprise','historicalenterprisecustomercatalog'),(314,'enterprise','historicalenterprisecustomerentitlement'),(291,'enterprise','historicaluserdatasharingconsentaudit'),(313,'enterprise','pendingenrollment'),(288,'enterprise','pendingenterprisecustomeruser'),(292,'enterprise','userdatasharingconsentaudit'),(353,'entitlements','courseentitlement'),(352,'entitlements','courseentitlementpolicy'),(335,'experiments','experimentdata'),(361,'experiments','experimentkeyvalue'),(91,'external_auth','externalauthmap'),(321,'grades','computegradessetting'),(90,'grades','coursepersistentgradesflag'),(88,'grades','persistentcoursegrade'),(89,'grades','persistentgradesenabledflag'),(87,'grades','persistentsubsectiongrade'),(374,'grades','persistentsubsectiongradeoverride'),(86,'grades','visibleblocks'),(320,'instructor_task','gradereportsetting'),(71,'instructor_task','instructortask'),(368,'integrated_channel','catalogtransmissionaudit'),(327,'integrated_channel','enterpriseintegratedchannel'),(367,'integrated_channel','learnerdatatransmissionaudit'),(195,'lms_xblock','xblockasidesconfig'),(240,'mentoring','answer'),(174,'microsite_configuration','historicalmicrositeorganizationmapping'),(176,'microsite_configuration','historicalmicrositetemplate'),(172,'microsite_configuration','microsite'),(173,'microsite_configuration','micrositehistory'),(175,'microsite_configuration','micrositeorganizationmapping'),(177,'microsite_configuration','micrositetemplate'),(228,'milestones','coursecontentmilestone'),(227,'milestones','coursemilestone'),(225,'milestones','milestone'),(226,'milestones','milestonerelationshiptype'),(229,'milestones','usermilestone'),(188,'mobile_api','appversionconfig'),(306,'mobile_api','ignoremobileavailableflagconfig'),(187,'mobile_api','mobileapiconfig'),(137,'notes','note'),(97,'oauth2','accesstoken'),(95,'oauth2','client'),(96,'oauth2','grant'),(98,'oauth2','refreshtoken'),(102,'oauth2_provider','accesstoken'),(100,'oauth2_provider','application'),(101,'oauth2_provider','grant'),(103,'oauth2_provider','refreshtoken'),(104,'oauth_dispatch','restrictedapplication'),(113,'oauth_provider','consumer'),(111,'oauth_provider','nonce'),(115,'oauth_provider','resource'),(112,'oauth_provider','scope'),(114,'oauth_provider','token'),(283,'organizations','organization'),(284,'organizations','organizationcourse'),(241,'problem_builder','answer'),(242,'problem_builder','share'),(220,'programs','programsapiconfig'),(6,'redirects','redirect'),(178,'rss_proxy','whitelistedrssurl'),(332,'sap_success_factors','catalogtransmissionaudit'),(329,'sap_success_factors','historicalsapsuccessfactorsenterprisecustomerconfiguration'),(331,'sap_success_factors','learnerdatatransmissionaudit'),(330,'sap_success_factors','sapsuccessfactorsenterprisecustomerconfiguration'),(328,'sap_success_factors','sapsuccessfactorsglobalconfiguration'),(373,'sap_success_factors','sapsuccessfactorslearnerdatatransmissionaudit'),(375,'schedules','schedule'),(376,'schedules','scheduleconfig'),(377,'schedules','scheduleexperience'),(222,'self_paced','selfpacedconfiguration'),(7,'sessions','session'),(157,'shoppingcart','certificateitem'),(151,'shoppingcart','coupon'),(152,'shoppingcart','couponredemption'),(154,'shoppingcart','courseregcodeitem'),(155,'shoppingcart','courseregcodeitemannotation'),(149,'shoppingcart','courseregistrationcode'),(147,'shoppingcart','courseregistrationcodeinvoiceitem'),(159,'shoppingcart','donation'),(158,'shoppingcart','donationconfiguration'),(144,'shoppingcart','invoice'),(148,'shoppingcart','invoicehistory'),(146,'shoppingcart','invoiceitem'),(145,'shoppingcart','invoicetransaction'),(142,'shoppingcart','order'),(143,'shoppingcart','orderitem'),(153,'shoppingcart','paidcourseregistration'),(156,'shoppingcart','paidcourseregistrationannotation'),(150,'shoppingcart','registrationcoderedemption'),(8,'sites','site'),(24,'site_configuration','siteconfiguration'),(25,'site_configuration','siteconfigurationhistory'),(191,'social_auth','association'),(192,'social_auth','code'),(190,'social_auth','nonce'),(189,'social_auth','usersocialauth'),(339,'social_django','association'),(340,'social_django','code'),(338,'social_django','nonce'),(341,'social_django','partial'),(337,'social_django','usersocialauth'),(138,'splash','splashconfig'),(19,'static_replace','assetbaseurlconfig'),(20,'static_replace','assetexcludedextensionsconfig'),(18,'status','coursemessage'),(17,'status','globalstatusmessage'),(34,'student','anonymoususerid'),(48,'student','courseaccessrole'),(45,'student','courseenrollment'),(47,'student','courseenrollmentallowed'),(53,'student','courseenrollmentattribute'),(49,'student','dashboardconfiguration'),(54,'student','enrollmentrefundconfiguration'),(51,'student','entranceexamconfiguration'),(44,'student','historicalcourseenrollment'),(52,'student','languageproficiency'),(50,'student','linkedinaddtoprofileconfiguration'),(43,'student','loginfailures'),(57,'student','logoutviewconfiguration'),(46,'student','manualenrollmentaudit'),(42,'student','passwordhistory'),(41,'student','pendingemailchange'),(40,'student','pendingnamechange'),(39,'student','registration'),(55,'student','registrationcookieconfiguration'),(351,'student','sociallink'),(56,'student','userattribute'),(36,'student','userprofile'),(37,'student','usersignupsource'),(35,'student','userstanding'),(38,'student','usertestgroup'),(245,'submissions','score'),(247,'submissions','scoreannotation'),(246,'submissions','scoresummary'),(243,'submissions','studentitem'),(244,'submissions','submission'),(194,'survey','surveyanswer'),(193,'survey','surveyform'),(299,'tagging','tagavailablevalues'),(298,'tagging','tagcategories'),(213,'teams','courseteam'),(214,'teams','courseteammembership'),(23,'theming','sitetheme'),(109,'third_party_auth','ltiproviderconfig'),(105,'third_party_auth','oauth2providerconfig'),(110,'third_party_auth','providerapipermissions'),(107,'third_party_auth','samlconfiguration'),(106,'third_party_auth','samlproviderconfig'),(108,'third_party_auth','samlproviderdata'),(223,'thumbnail','kvstore'),(58,'track','trackinglog'),(140,'user_api','usercoursetag'),(141,'user_api','userorgtag'),(139,'user_api','userpreference'),(301,'user_tasks','usertaskartifact'),(300,'user_tasks','usertaskstatus'),(59,'util','ratelimitconfiguration'),(358,'verified_track_content','migrateverifiedtrackcohortssetting'),(234,'verified_track_content','verifiedtrackcohortedcourse'),(164,'verify_student','historicalverificationdeadline'),(169,'verify_student','icrvstatusemailsconfiguration'),(168,'verify_student','incoursereverificationconfiguration'),(170,'verify_student','skippedreverification'),(163,'verify_student','softwaresecurephotoverification'),(166,'verify_student','verificationcheckpoint'),(165,'verify_student','verificationdeadline'),(167,'verify_student','verificationstatus'),(325,'video_config','coursehlsplaybackenabledflag'),(344,'video_config','coursevideotranscriptenabledflag'),(324,'video_config','hlsplaybackenabledflag'),(343,'video_config','videotranscriptenabledflag'),(347,'video_pipeline','coursevideouploadsenabledbydefault'),(345,'video_pipeline','videopipelineintegration'),(346,'video_pipeline','videouploadsenabledbydefault'),(302,'waffle','flag'),(304,'waffle','sample'),(303,'waffle','switch'),(326,'waffle_utils','waffleflagcourseoverridemodel'),(116,'wiki','article'),(117,'wiki','articleforobject'),(120,'wiki','articleplugin'),(118,'wiki','articlerevision'),(127,'wiki','attachment'),(128,'wiki','attachmentrevision'),(125,'wiki','image'),(126,'wiki','imagerevision'),(121,'wiki','reusableplugin'),(123,'wiki','revisionplugin'),(124,'wiki','revisionpluginrevision'),(122,'wiki','simpleplugin'),(119,'wiki','urlpath'),(265,'workflow','assessmentworkflow'),(267,'workflow','assessmentworkflowcancellation'),(266,'workflow','assessmentworkflowstep'),(333,'xblock_config','courseeditltifieldsenabledflag'),(297,'xblock_config','studioconfig'),(215,'xblock_django','xblockconfiguration'),(217,'xblock_django','xblockstudioconfiguration'),(216,'xblock_django','xblockstudioconfigurationflag'); -/*!40000 ALTER TABLE `django_content_type` ENABLE KEYS */; +LOCK TABLES `enterprise_enterprisecustomeruser` WRITE; +/*!40000 ALTER TABLE `enterprise_enterprisecustomeruser` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_enterprisecustomeruser` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `django_migrations` +-- Table structure for table `enterprise_enterpriseenrollmentsource` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `django_migrations` ( +CREATE TABLE `enterprise_enterpriseenrollmentsource` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `app` varchar(255) NOT NULL, - `name` varchar(255) NOT NULL, - `applied` datetime(6) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=395 DEFAULT CHARSET=utf8; + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `name` varchar(64) NOT NULL, + `slug` varchar(30) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `slug` (`slug`) +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `django_migrations` +-- Dumping data for table `enterprise_enterpriseenrollmentsource` -- -LOCK TABLES `django_migrations` WRITE; -/*!40000 ALTER TABLE `django_migrations` DISABLE KEYS */; -INSERT INTO `django_migrations` VALUES (1,'contenttypes','0001_initial','2016-12-17 01:36:06.599911'),(2,'auth','0001_initial','2016-12-17 01:36:09.155420'),(3,'admin','0001_initial','2016-12-17 01:36:09.689101'),(4,'sites','0001_initial','2016-12-17 01:36:09.777106'),(5,'contenttypes','0002_remove_content_type_name','2016-12-17 01:36:10.113280'),(6,'api_admin','0001_initial','2016-12-17 01:36:10.826004'),(7,'api_admin','0002_auto_20160325_1604','2016-12-17 01:36:10.870018'),(8,'api_admin','0003_auto_20160404_1618','2016-12-17 01:36:12.173622'),(9,'api_admin','0004_auto_20160412_1506','2016-12-17 01:36:13.225912'),(10,'api_admin','0005_auto_20160414_1232','2016-12-17 01:36:13.492670'),(11,'api_admin','0006_catalog','2016-12-17 01:36:13.516312'),(12,'assessment','0001_initial','2016-12-17 01:36:25.565632'),(13,'assessment','0002_staffworkflow','2016-12-17 01:36:26.143411'),(14,'auth','0002_alter_permission_name_max_length','2016-12-17 01:36:26.373907'),(15,'auth','0003_alter_user_email_max_length','2016-12-17 01:36:26.629350'),(16,'auth','0004_alter_user_username_opts','2016-12-17 01:36:26.699767'),(17,'auth','0005_alter_user_last_login_null','2016-12-17 01:36:26.894658'),(18,'auth','0006_require_contenttypes_0002','2016-12-17 01:36:26.907706'),(19,'instructor_task','0001_initial','2016-12-17 01:36:27.514373'),(20,'certificates','0001_initial','2016-12-17 01:36:30.718895'),(21,'certificates','0002_data__certificatehtmlviewconfiguration_data','2016-12-17 01:36:30.760294'),(22,'certificates','0003_data__default_modes','2016-12-17 01:36:30.859714'),(23,'certificates','0004_certificategenerationhistory','2016-12-17 01:36:31.363536'),(24,'certificates','0005_auto_20151208_0801','2016-12-17 01:36:31.517857'),(25,'certificates','0006_certificatetemplateasset_asset_slug','2016-12-17 01:36:31.679085'),(26,'certificates','0007_certificateinvalidation','2016-12-17 01:36:32.242909'),(27,'badges','0001_initial','2016-12-17 01:36:33.602314'),(28,'badges','0002_data__migrate_assertions','2016-12-17 01:36:33.647621'),(29,'badges','0003_schema__add_event_configuration','2016-12-17 01:36:34.126910'),(30,'bookmarks','0001_initial','2016-12-17 01:36:35.456888'),(31,'branding','0001_initial','2016-12-17 01:36:36.153792'),(32,'course_groups','0001_initial','2016-12-17 01:36:39.237579'),(33,'bulk_email','0001_initial','2016-12-17 01:36:40.641357'),(34,'bulk_email','0002_data__load_course_email_template','2016-12-17 01:36:40.797656'),(35,'bulk_email','0003_config_model_feature_flag','2016-12-17 01:36:41.197060'),(36,'bulk_email','0004_add_email_targets','2016-12-17 01:36:42.585897'),(37,'bulk_email','0005_move_target_data','2016-12-17 01:36:42.617283'),(38,'catalog','0001_initial','2016-12-17 01:36:43.054060'),(39,'certificates','0008_schema__remove_badges','2016-12-17 01:36:43.651994'),(40,'commerce','0001_data__add_ecommerce_service_user','2016-12-17 01:36:43.696482'),(41,'commerce','0002_commerceconfiguration','2016-12-17 01:36:44.140663'),(42,'commerce','0003_auto_20160329_0709','2016-12-17 01:36:44.313419'),(43,'commerce','0004_auto_20160531_0950','2016-12-17 01:36:44.931167'),(44,'contentserver','0001_initial','2016-12-17 01:36:45.338371'),(45,'contentserver','0002_cdnuseragentsconfig','2016-12-17 01:36:45.766142'),(46,'cors_csrf','0001_initial','2016-12-17 01:36:46.295651'),(47,'course_action_state','0001_initial','2016-12-17 01:36:50.214331'),(48,'course_modes','0001_initial','2016-12-17 01:36:50.829229'),(49,'course_modes','0002_coursemode_expiration_datetime_is_explicit','2016-12-17 01:36:50.997245'),(50,'course_modes','0003_auto_20151113_1443','2016-12-17 01:36:51.067479'),(51,'course_modes','0004_auto_20151113_1457','2016-12-17 01:36:51.483744'),(52,'course_modes','0005_auto_20151217_0958','2016-12-17 01:36:51.523950'),(53,'course_modes','0006_auto_20160208_1407','2016-12-17 01:36:51.681200'),(54,'course_modes','0007_coursemode_bulk_sku','2016-12-17 01:36:51.851762'),(55,'course_overviews','0001_initial','2016-12-17 01:36:52.253410'),(56,'course_overviews','0002_add_course_catalog_fields','2016-12-17 01:36:52.937745'),(57,'course_overviews','0003_courseoverviewgeneratedhistory','2016-12-17 01:36:53.042014'),(58,'course_overviews','0004_courseoverview_org','2016-12-17 01:36:53.199918'),(59,'course_overviews','0005_delete_courseoverviewgeneratedhistory','2016-12-17 01:36:53.271407'),(60,'course_overviews','0006_courseoverviewimageset','2016-12-17 01:36:53.659175'),(61,'course_overviews','0007_courseoverviewimageconfig','2016-12-17 01:36:54.025056'),(62,'course_overviews','0008_remove_courseoverview_facebook_url','2016-12-17 01:36:54.040854'),(63,'course_overviews','0009_readd_facebook_url','2016-12-17 01:36:54.055373'),(64,'course_overviews','0010_auto_20160329_2317','2016-12-17 01:36:54.366767'),(65,'course_structures','0001_initial','2016-12-17 01:36:54.477885'),(66,'coursetalk','0001_initial','2016-12-17 01:36:54.896706'),(67,'coursetalk','0002_auto_20160325_0631','2016-12-17 01:36:55.058698'),(68,'courseware','0001_initial','2016-12-17 01:37:00.640124'),(69,'coursewarehistoryextended','0001_initial','2016-12-17 01:37:00.903534'),(70,'coursewarehistoryextended','0002_force_studentmodule_index','2016-12-17 01:37:01.130788'),(71,'credentials','0001_initial','2016-12-17 01:37:01.618453'),(72,'credentials','0002_auto_20160325_0631','2016-12-17 01:37:01.853090'),(73,'credit','0001_initial','2016-12-17 01:37:06.301021'),(74,'credit','0002_creditconfig','2016-12-17 01:37:06.824183'),(75,'credit','0003_auto_20160511_2227','2016-12-17 01:37:07.103029'),(76,'dark_lang','0001_initial','2016-12-17 01:37:07.645056'),(77,'dark_lang','0002_data__enable_on_install','2016-12-17 01:37:07.691466'),(78,'django_comment_common','0001_initial','2016-12-17 01:37:09.349106'),(79,'django_comment_common','0002_forumsconfig','2016-12-17 01:37:09.907256'),(80,'django_comment_common','0003_enable_forums','2016-12-17 01:37:09.959809'),(81,'django_comment_common','0004_auto_20161117_1209','2016-12-17 01:37:10.284701'),(82,'django_notify','0001_initial','2016-12-17 01:37:13.028205'),(83,'django_openid_auth','0001_initial','2016-12-17 01:37:13.819524'),(84,'oauth2','0001_initial','2016-12-17 01:37:17.857484'),(85,'edx_oauth2_provider','0001_initial','2016-12-17 01:37:18.525068'),(86,'edx_proctoring','0001_initial','2016-12-17 01:37:31.827214'),(87,'edx_proctoring','0002_proctoredexamstudentattempt_is_status_acknowledged','2016-12-17 01:37:32.696124'),(88,'edx_proctoring','0003_auto_20160101_0525','2016-12-17 01:37:34.166324'),(89,'edx_proctoring','0004_auto_20160201_0523','2016-12-17 01:37:34.919334'),(90,'edx_proctoring','0005_proctoredexam_hide_after_due','2016-12-17 01:37:38.316319'),(91,'edxval','0001_initial','2016-12-17 01:37:40.727619'),(92,'edxval','0002_data__default_profiles','2016-12-17 01:37:40.801289'),(93,'edxval','0003_coursevideo_is_hidden','2016-12-17 01:37:41.000113'),(94,'email_marketing','0001_initial','2016-12-17 01:37:41.590373'),(95,'email_marketing','0002_auto_20160623_1656','2016-12-17 01:37:45.731159'),(96,'email_marketing','0003_auto_20160715_1145','2016-12-17 01:37:47.905611'),(97,'embargo','0001_initial','2016-12-17 01:37:50.816752'),(98,'embargo','0002_data__add_countries','2016-12-17 01:37:51.428897'),(99,'enterprise','0001_initial','2016-12-17 01:37:52.676832'),(100,'enterprise','0002_enterprisecustomerbrandingconfiguration','2016-12-17 01:37:52.991185'),(101,'enterprise','0003_auto_20161104_0937','2016-12-17 01:37:55.325661'),(102,'enterprise','0004_auto_20161114_0434','2016-12-17 01:37:57.048358'),(103,'enterprise','0005_pendingenterprisecustomeruser','2016-12-17 01:37:58.015592'),(104,'enterprise','0006_auto_20161121_0241','2016-12-17 01:37:58.815567'),(105,'enterprise','0007_auto_20161109_1511','2016-12-17 01:38:00.585867'),(106,'enterprise','0008_auto_20161124_2355','2016-12-17 01:38:03.518493'),(107,'enterprise','0009_auto_20161130_1651','2016-12-17 01:38:09.315609'),(108,'external_auth','0001_initial','2016-12-17 01:38:11.538009'),(109,'grades','0001_initial','2016-12-17 01:38:12.299969'),(110,'grades','0002_rename_last_edited_field','2016-12-17 01:38:12.389072'),(111,'grades','0003_coursepersistentgradesflag_persistentgradesenabledflag','2016-12-17 01:38:14.587694'),(112,'grades','0004_visibleblocks_course_id','2016-12-17 01:38:14.852239'),(113,'grades','0005_multiple_course_flags','2016-12-17 01:38:17.991203'),(114,'grades','0006_persistent_course_grades','2016-12-17 01:38:18.286869'),(115,'grades','0007_add_passed_timestamp_column','2016-12-17 01:38:18.569279'),(116,'grades','0008_persistentsubsectiongrade_first_attempted','2016-12-17 01:38:18.761806'),(117,'lms_xblock','0001_initial','2016-12-17 01:38:19.425467'),(118,'microsite_configuration','0001_initial','2016-12-17 01:38:25.662192'),(119,'microsite_configuration','0002_auto_20160202_0228','2016-12-17 01:38:27.129548'),(120,'milestones','0001_initial','2016-12-17 01:38:31.163648'),(121,'milestones','0002_data__seed_relationship_types','2016-12-17 01:38:31.236648'),(122,'milestones','0003_coursecontentmilestone_requirements','2016-12-17 01:38:31.480397'),(123,'milestones','0004_auto_20151221_1445','2016-12-17 01:38:32.009316'),(124,'mobile_api','0001_initial','2016-12-17 01:38:32.928271'),(125,'mobile_api','0002_auto_20160406_0904','2016-12-17 01:38:33.142806'),(126,'notes','0001_initial','2016-12-17 01:38:34.508850'),(127,'oauth2','0002_auto_20160404_0813','2016-12-17 01:38:37.690514'),(128,'oauth2','0003_client_logout_uri','2016-12-17 01:38:38.699174'),(129,'oauth2','0004_add_index_on_grant_expires','2016-12-17 01:38:39.640959'),(130,'oauth2_provider','0001_initial','2016-12-17 01:38:45.116729'),(131,'oauth2_provider','0002_08_updates','2016-12-17 01:38:49.786552'),(132,'oauth_dispatch','0001_initial','2016-12-17 01:38:51.121396'),(133,'oauth_provider','0001_initial','2016-12-17 01:38:54.733164'),(134,'organizations','0001_initial','2016-12-17 01:38:55.562660'),(135,'problem_builder','0001_initial','2016-12-17 01:38:56.040050'),(136,'problem_builder','0002_auto_20160121_1525','2016-12-17 01:38:59.389089'),(137,'problem_builder','0003_auto_20161124_0755','2016-12-17 01:38:59.809157'),(138,'programs','0001_initial','2016-12-17 01:39:01.624132'),(139,'programs','0002_programsapiconfig_cache_ttl','2016-12-17 01:39:05.775532'),(140,'programs','0003_auto_20151120_1613','2016-12-17 01:39:09.312390'),(141,'programs','0004_programsapiconfig_enable_certification','2016-12-17 01:39:10.238624'),(142,'programs','0005_programsapiconfig_max_retries','2016-12-17 01:39:11.212038'),(143,'programs','0006_programsapiconfig_xseries_ad_enabled','2016-12-17 01:39:12.253625'),(144,'programs','0007_programsapiconfig_program_listing_enabled','2016-12-17 01:39:13.503624'),(145,'programs','0008_programsapiconfig_program_details_enabled','2016-12-17 01:39:14.849992'),(146,'programs','0009_programsapiconfig_marketing_path','2016-12-17 01:39:16.273841'),(147,'redirects','0001_initial','2016-12-17 01:39:17.985115'),(148,'rss_proxy','0001_initial','2016-12-17 01:39:18.161442'),(149,'self_paced','0001_initial','2016-12-17 01:39:19.778329'),(150,'sessions','0001_initial','2016-12-17 01:39:20.015206'),(151,'student','0001_initial','2016-12-17 01:40:00.987487'),(152,'shoppingcart','0001_initial','2016-12-17 01:40:27.040292'),(153,'shoppingcart','0002_auto_20151208_1034','2016-12-17 01:40:29.848974'),(154,'shoppingcart','0003_auto_20151217_0958','2016-12-17 01:40:32.642524'),(155,'site_configuration','0001_initial','2016-12-17 01:40:35.979557'),(156,'site_configuration','0002_auto_20160720_0231','2016-12-17 01:40:39.343270'),(157,'default','0001_initial','2016-12-17 01:40:44.990397'),(158,'default','0002_add_related_name','2016-12-17 01:40:46.032495'),(159,'default','0003_alter_email_max_length','2016-12-17 01:40:46.317830'),(160,'default','0004_auto_20160423_0400','2016-12-17 01:40:46.964896'),(161,'social_auth','0005_auto_20160727_2333','2016-12-17 01:40:47.095986'),(162,'splash','0001_initial','2016-12-17 01:40:47.961326'),(163,'static_replace','0001_initial','2016-12-17 01:40:48.859594'),(164,'static_replace','0002_assetexcludedextensionsconfig','2016-12-17 01:40:49.757400'),(165,'status','0001_initial','2016-12-17 01:40:51.931130'),(166,'student','0002_auto_20151208_1034','2016-12-17 01:40:53.439054'),(167,'student','0003_auto_20160516_0938','2016-12-17 01:40:55.641900'),(168,'student','0004_auto_20160531_1422','2016-12-17 01:40:56.898809'),(169,'student','0005_auto_20160531_1653','2016-12-17 01:40:58.213621'),(170,'student','0006_logoutviewconfiguration','2016-12-17 01:40:59.783439'),(171,'student','0007_registrationcookieconfiguration','2016-12-17 01:41:01.350652'),(172,'student','0008_auto_20161117_1209','2016-12-17 01:41:02.711010'),(173,'submissions','0001_initial','2016-12-17 01:41:05.593297'),(174,'submissions','0002_auto_20151119_0913','2016-12-17 01:41:06.129881'),(175,'submissions','0003_submission_status','2016-12-17 01:41:06.395818'),(176,'survey','0001_initial','2016-12-17 01:41:08.882086'),(177,'teams','0001_initial','2016-12-17 01:41:14.538311'),(178,'theming','0001_initial','2016-12-17 01:41:16.331941'),(179,'third_party_auth','0001_initial','2016-12-17 01:41:26.011127'),(180,'third_party_auth','0002_schema__provider_icon_image','2016-12-17 01:41:33.750573'),(181,'third_party_auth','0003_samlproviderconfig_debug_mode','2016-12-17 01:41:35.196831'),(182,'third_party_auth','0004_add_visible_field','2016-12-17 01:41:43.861295'),(183,'third_party_auth','0005_add_site_field','2016-12-17 01:41:53.375038'),(184,'track','0001_initial','2016-12-17 01:41:53.542227'),(185,'user_api','0001_initial','2016-12-17 01:42:05.863461'),(186,'util','0001_initial','2016-12-17 01:42:09.703202'),(187,'util','0002_data__default_rate_limit_config','2016-12-17 01:42:09.796661'),(188,'verified_track_content','0001_initial','2016-12-17 01:42:09.998990'),(189,'verified_track_content','0002_verifiedtrackcohortedcourse_verified_cohort_name','2016-12-17 01:42:10.235800'),(190,'verify_student','0001_initial','2016-12-17 01:42:24.000396'),(191,'verify_student','0002_auto_20151124_1024','2016-12-17 01:42:25.762475'),(192,'verify_student','0003_auto_20151113_1443','2016-12-17 01:42:27.335813'),(193,'wiki','0001_initial','2016-12-17 01:43:15.421067'),(194,'wiki','0002_remove_article_subscription','2016-12-17 01:43:15.523293'),(195,'wiki','0003_ip_address_conv','2016-12-17 01:43:21.325409'),(196,'wiki','0004_increase_slug_size','2016-12-17 01:43:23.407350'),(197,'workflow','0001_initial','2016-12-17 01:43:24.380325'),(198,'xblock_django','0001_initial','2016-12-17 01:43:26.679803'),(199,'xblock_django','0002_auto_20160204_0809','2016-12-17 01:43:28.994528'),(200,'xblock_django','0003_add_new_config_models','2016-12-17 01:43:36.524582'),(201,'xblock_django','0004_delete_xblock_disable_config','2016-12-17 01:43:40.319712'),(202,'social_auth','0001_initial','2016-12-17 01:43:40.353184'),(203,'social_auth','0003_alter_email_max_length','2016-12-17 01:43:40.373388'),(204,'social_auth','0002_add_related_name','2016-12-17 01:43:40.393151'),(205,'social_auth','0004_auto_20160423_0400','2016-12-17 01:43:40.412988'),(206,'contentstore','0001_initial','2016-12-17 01:52:51.013580'),(207,'course_creators','0001_initial','2016-12-17 01:52:51.311061'),(208,'tagging','0001_initial','2016-12-17 01:52:51.891243'),(209,'user_tasks','0001_initial','2016-12-17 01:52:53.613189'),(210,'user_tasks','0002_artifact_file_storage','2016-12-17 01:52:53.898169'),(211,'xblock_config','0001_initial','2016-12-17 01:52:54.444481'),(212,'bulk_email','0006_course_mode_targets','2017-02-24 14:36:23.719337'),(213,'catalog','0002_catalogintegration_username','2017-02-24 14:36:24.490286'),(214,'celery_utils','0001_initial','2017-02-24 14:36:24.825828'),(215,'commerce','0005_commerceconfiguration_enable_automatic_refund_approval','2017-02-24 14:36:25.166899'),(216,'crawlers','0001_initial','2017-02-24 14:36:25.613555'),(217,'database_fixups','0001_initial','2017-02-24 14:36:25.733481'),(218,'email_marketing','0004_emailmarketingconfiguration_welcome_email_send_delay','2017-02-24 14:36:26.207683'),(219,'enterprise','0010_auto_20161222_1212','2017-02-24 14:36:27.350496'),(220,'enterprise','0011_enterprisecustomerentitlement_historicalenterprisecustomerentitlement','2017-02-24 14:36:28.964161'),(221,'enterprise','0012_auto_20170125_1033','2017-02-24 14:36:29.758403'),(222,'enterprise','0013_auto_20170125_1157','2017-02-24 14:36:32.344638'),(223,'enterprise','0014_enrollmentnotificationemailtemplate_historicalenrollmentnotificationemailtemplate','2017-02-24 14:36:33.913008'),(224,'enterprise','0015_auto_20170130_0003','2017-02-24 14:36:35.225065'),(225,'grades','0009_auto_20170111_1507','2017-02-24 14:36:35.519391'),(226,'grades','0010_auto_20170112_1156','2017-02-24 14:36:35.645242'),(227,'grades','0011_null_edited_time','2017-02-24 14:36:36.143239'),(228,'mobile_api','0003_ignore_mobile_available_flag','2017-02-24 14:36:37.535629'),(229,'organizations','0002_auto_20170117_1434','2017-02-24 14:36:37.595301'),(230,'programs','0010_auto_20170204_2332','2017-02-24 14:36:38.906037'),(231,'student','0009_auto_20170111_0422','2017-02-24 14:36:40.086964'),(232,'student','0010_auto_20170207_0458','2017-02-24 14:36:40.108819'),(233,'waffle','0001_initial','2017-02-24 14:36:42.930396'),(234,'tagging','0002_auto_20170116_1541','2017-02-24 14:40:24.563494'),(235,'block_structure','0001_config','2017-06-07 00:37:30.343993'),(236,'block_structure','0002_blockstructuremodel','2017-06-07 00:37:30.391358'),(237,'block_structure','0003_blockstructuremodel_storage','2017-06-07 00:37:30.419870'),(238,'block_structure','0004_blockstructuremodel_usagekeywithrun','2017-06-07 00:37:30.448817'),(239,'catalog','0003_catalogintegration_page_size','2017-06-07 00:37:30.602706'),(240,'commerce','0006_auto_20170424_1734','2017-06-07 00:37:30.740048'),(241,'course_groups','0002_change_inline_default_cohort_value','2017-06-07 00:37:30.778006'),(242,'course_overviews','0011_courseoverview_marketing_url','2017-06-07 00:37:30.845672'),(243,'course_overviews','0012_courseoverview_eligible_for_financial_aid','2017-06-07 00:37:30.899639'),(244,'crawlers','0002_auto_20170419_0018','2017-06-07 00:37:31.070971'),(245,'credentials','0003_auto_20170525_1109','2017-06-07 00:37:31.401834'),(246,'edxval','0004_data__add_hls_profile','2017-06-07 00:37:31.444213'),(247,'enterprise','0016_auto_20170405_0647','2017-06-07 00:37:37.503430'),(248,'enterprise','0017_auto_20170508_1341','2017-06-07 00:37:39.032610'),(249,'enterprise','0018_auto_20170511_1357','2017-06-07 00:37:40.093513'),(250,'grades','0012_computegradessetting','2017-06-07 00:37:40.674807'),(251,'instructor_task','0002_gradereportsetting','2017-06-07 00:37:41.262790'),(252,'integrated_channel','0001_initial','2017-06-07 00:37:42.180309'),(253,'organizations','0003_auto_20170221_1138','2017-06-07 00:37:42.310695'),(254,'organizations','0004_auto_20170413_2315','2017-06-07 00:37:42.434738'),(255,'programs','0011_auto_20170301_1844','2017-06-07 00:37:51.550330'),(256,'programs','0012_auto_20170419_0018','2017-06-07 00:37:52.112932'),(257,'sap_success_factors','0001_initial','2017-06-07 00:37:53.983983'),(258,'sap_success_factors','0002_auto_20170224_1545','2017-06-07 00:37:58.463119'),(259,'sap_success_factors','0003_auto_20170317_1402','2017-06-07 00:37:59.852698'),(260,'sap_success_factors','0004_catalogtransmissionaudit_audit_summary','2017-06-07 00:37:59.921348'),(261,'third_party_auth','0006_samlproviderconfig_automatic_refresh_enabled','2017-06-07 00:38:00.871273'),(262,'third_party_auth','0007_auto_20170406_0912','2017-06-07 00:38:03.066662'),(263,'third_party_auth','0008_auto_20170413_1455','2017-06-07 00:38:07.526124'),(264,'third_party_auth','0009_auto_20170415_1144','2017-06-07 00:38:11.039117'),(265,'third_party_auth','0010_add_skip_hinted_login_dialog_field','2017-06-07 00:38:15.035132'),(266,'video_config','0001_initial','2017-06-07 00:38:18.650519'),(267,'waffle_utils','0001_initial','2017-06-07 00:38:19.757784'),(268,'xblock_config','0002_courseeditltifieldsenabledflag','2017-06-07 00:42:52.632305'),(269,'assessment','0003_expand_course_id','2017-06-21 15:56:49.626427'),(270,'course_overviews','0013_courseoverview_language','2017-06-21 15:56:49.686469'),(271,'django_comment_common','0005_coursediscussionsettings','2017-06-21 15:56:49.737238'),(272,'enterprise','0019_auto_20170606_1853','2017-06-21 15:56:50.595767'),(273,'experiments','0001_initial','2017-06-21 15:56:51.802549'),(274,'third_party_auth','0011_auto_20170616_0112','2017-06-21 15:56:52.421575'),(275,'catalog','0004_auto_20170616_0618','2017-06-21 16:21:00.587994'),(276,'djcelery','0001_initial','2017-06-21 16:21:00.978433'),(277,'celery_utils','0002_chordable_django_backend','2017-06-21 16:21:01.100695'),(278,'course_groups','0003_auto_20170609_1455','2017-06-21 16:21:01.800797'),(279,'social_django','0006_partial','2017-06-21 16:21:01.891205'),(280,'social_django','0002_add_related_name','2017-06-21 16:21:01.924189'),(281,'social_django','0003_alter_email_max_length','2017-06-21 16:21:01.953674'),(282,'social_django','0001_initial','2017-06-21 16:21:01.969848'),(283,'social_django','0004_auto_20160423_0400','2017-06-21 16:21:01.981097'),(284,'social_django','0005_auto_20160727_2333','2017-06-21 16:21:01.993158'),(285,'api_admin','0007_delete_historical_api_records','2018-01-31 21:01:44.604042'),(286,'catalog','0005_catalogintegration_long_term_cache_ttl','2018-01-31 21:01:44.742139'),(287,'certificates','0009_certificategenerationcoursesetting_language_self_generation','2018-01-31 21:01:44.837709'),(288,'certificates','0010_certificatetemplate_language','2018-01-31 21:01:44.879450'),(289,'certificates','0011_certificatetemplate_alter_unique','2018-01-31 21:01:44.929486'),(290,'certificates','0012_certificategenerationcoursesetting_include_hours_of_effort','2018-01-31 21:01:44.967558'),(291,'certificates','0013_remove_certificategenerationcoursesetting_enabled','2018-01-31 21:01:45.003982'),(292,'completion','0001_initial','2018-01-31 21:01:45.417693'),(293,'enterprise','0020_auto_20170624_2316','2018-01-31 21:01:46.385829'),(294,'enterprise','0021_auto_20170711_0712','2018-01-31 21:01:47.333992'),(295,'enterprise','0022_auto_20170720_1543','2018-01-31 21:01:47.726621'),(296,'enterprise','0023_audit_data_reporting_flag','2018-01-31 21:01:48.145327'),(297,'enterprise','0024_enterprisecustomercatalog_historicalenterprisecustomercatalog','2018-01-31 21:01:48.610337'),(298,'consent','0001_initial','2018-01-31 21:01:49.321638'),(299,'consent','0002_migrate_to_new_data_sharing_consent','2018-01-31 21:01:49.351643'),(300,'consent','0003_historicaldatasharingconsent_history_change_reason','2018-01-31 21:01:49.589455'),(301,'course_goals','0001_initial','2018-01-31 21:01:50.084210'),(302,'course_goals','0002_auto_20171010_1129','2018-01-31 21:01:50.330423'),(303,'course_modes','0008_course_key_field_to_foreign_key','2018-01-31 21:01:53.209890'),(304,'course_modes','0009_suggested_prices_to_charfield','2018-01-31 21:01:53.414164'),(305,'course_modes','0010_archived_suggested_prices_to_charfield','2018-01-31 21:01:53.449534'),(306,'course_overviews','0014_courseoverview_certificate_available_date','2018-01-31 21:01:53.672627'),(307,'courseware','0002_coursedynamicupgradedeadlineconfiguration_dynamicupgradedeadlineconfiguration','2018-01-31 21:01:54.153350'),(308,'courseware','0003_auto_20170825_0935','2018-01-31 21:01:54.383133'),(309,'courseware','0004_auto_20171010_1639','2018-01-31 21:01:54.616064'),(310,'courseware','0005_orgdynamicupgradedeadlineconfiguration','2018-01-31 21:01:55.097014'),(311,'credit','0004_delete_historical_credit_records','2018-01-31 21:01:56.309356'),(312,'enterprise','0025_auto_20170828_1412','2018-01-31 21:01:57.886273'),(313,'enterprise','0026_make_require_account_level_consent_nullable','2018-01-31 21:01:58.439892'),(314,'enterprise','0027_remove_account_level_consent','2018-01-31 21:02:00.565936'),(315,'enterprise','0028_link_enterprise_to_enrollment_template','2018-01-31 21:02:01.607377'),(316,'enterprise','0029_auto_20170925_1909','2018-01-31 21:02:01.959689'),(317,'enterprise','0030_auto_20171005_1600','2018-01-31 21:02:02.664205'),(318,'enterprise','0031_auto_20171012_1249','2018-01-31 21:02:03.456703'),(319,'enterprise','0032_reporting_model','2018-01-31 21:02:03.898842'),(320,'enterprise','0033_add_history_change_reason_field','2018-01-31 21:02:06.085068'),(321,'enterprise','0034_auto_20171023_0727','2018-01-31 21:02:08.772191'),(322,'degreed','0001_initial','2018-01-31 21:02:09.672452'),(323,'degreed','0002_auto_20180104_0103','2018-01-31 21:02:10.546526'),(324,'degreed','0003_auto_20180109_0712','2018-01-31 21:02:11.120021'),(325,'edxval','0005_videoimage','2018-01-31 21:02:11.201849'),(326,'edxval','0006_auto_20171009_0725','2018-01-31 21:02:11.332744'),(327,'edxval','0007_transcript_credentials_state','2018-01-31 21:02:11.419269'),(328,'edxval','0008_remove_subtitles','2018-01-31 21:02:11.520396'),(329,'edxval','0009_auto_20171127_0406','2018-01-31 21:02:11.562866'),(330,'edxval','0010_add_video_as_foreign_key','2018-01-31 21:02:11.797949'),(331,'email_marketing','0005_emailmarketingconfiguration_user_registration_cookie_timeout_delay','2018-01-31 21:02:12.217904'),(332,'email_marketing','0006_auto_20170711_0615','2018-01-31 21:02:12.624095'),(333,'email_marketing','0007_auto_20170809_0653','2018-01-31 21:02:13.882545'),(334,'email_marketing','0008_auto_20170809_0539','2018-01-31 21:02:13.915894'),(335,'email_marketing','0009_remove_emailmarketingconfiguration_sailthru_activation_template','2018-01-31 21:02:14.348814'),(336,'enterprise','0035_auto_20171212_1129','2018-01-31 21:02:15.284155'),(337,'enterprise','0036_sftp_reporting_support','2018-01-31 21:02:19.660671'),(338,'enterprise','0037_auto_20180110_0450','2018-01-31 21:02:21.034910'),(339,'enterprise','0038_auto_20180122_1427','2018-01-31 21:02:22.394776'),(340,'enterprise','0039_auto_20180129_1034','2018-01-31 21:02:23.811475'),(341,'enterprise','0040_auto_20180129_1428','2018-01-31 21:02:27.383393'),(342,'student','0011_course_key_field_to_foreign_key','2018-01-31 21:02:32.705958'),(343,'student','0012_sociallink','2018-01-31 21:02:33.539909'),(344,'student','0013_delete_historical_enrollment_records','2018-01-31 21:02:36.241468'),(345,'entitlements','0001_initial','2018-01-31 21:02:37.138219'),(346,'entitlements','0002_auto_20171102_0719','2018-01-31 21:02:40.613256'),(347,'entitlements','0003_auto_20171205_1431','2018-01-31 21:02:44.308427'),(348,'entitlements','0004_auto_20171206_1729','2018-01-31 21:02:45.212260'),(349,'experiments','0002_auto_20170627_1402','2018-01-31 21:02:45.318873'),(350,'experiments','0003_auto_20170713_1148','2018-01-31 21:02:45.367106'),(351,'grades','0013_persistentsubsectiongradeoverride','2018-01-31 21:02:45.461553'),(352,'sap_success_factors','0005_historicalsapsuccessfactorsenterprisecustomerconfiguration_history_change_reason','2018-01-31 21:02:46.467904'),(353,'sap_success_factors','0006_sapsuccessfactors_use_enterprise_enrollment_page_waffle_flag','2018-01-31 21:02:46.517413'),(354,'sap_success_factors','0007_remove_historicalsapsuccessfactorsenterprisecustomerconfiguration_history_change_reason','2018-01-31 21:02:47.583412'),(355,'sap_success_factors','0008_historicalsapsuccessfactorsenterprisecustomerconfiguration_history_change_reason','2018-01-31 21:02:50.664627'),(356,'sap_success_factors','0009_sapsuccessfactors_remove_enterprise_enrollment_page_waffle_flag','2018-01-31 21:02:50.728412'),(357,'sap_success_factors','0010_move_audit_tables_to_base_integrated_channel','2018-01-31 21:02:50.862314'),(358,'integrated_channel','0002_delete_enterpriseintegratedchannel','2018-01-31 21:02:50.913236'),(359,'integrated_channel','0003_catalogtransmissionaudit_learnerdatatransmissionaudit','2018-01-31 21:02:51.016140'),(360,'integrated_channel','0004_catalogtransmissionaudit_channel','2018-01-31 21:02:51.078082'),(361,'microsite_configuration','0003_delete_historical_records','2018-01-31 21:02:53.863822'),(362,'oauth2','0005_grant_nonce','2018-01-31 21:02:54.740173'),(363,'oauth2_provider','0003_auto_20160316_1503','2018-01-31 21:02:55.737270'),(364,'oauth2_provider','0004_auto_20160525_1623','2018-01-31 21:02:58.647377'),(365,'organizations','0005_auto_20171116_0640','2018-01-31 21:02:58.712488'),(366,'organizations','0006_auto_20171207_0259','2018-01-31 21:02:58.776094'),(367,'problem_builder','0004_copy_course_ids','2018-01-31 21:02:58.827699'),(368,'problem_builder','0005_auto_20170112_1021','2018-01-31 21:02:58.966863'),(369,'problem_builder','0006_remove_deprecated_course_id','2018-01-31 21:02:59.088639'),(370,'sap_success_factors','0011_auto_20180104_0103','2018-01-31 21:03:16.358552'),(371,'sap_success_factors','0012_auto_20180109_0712','2018-01-31 21:03:18.483528'),(372,'schedules','0001_initial','2018-01-31 21:03:19.621088'),(373,'schedules','0002_auto_20170816_1532','2018-01-31 21:03:21.963312'),(374,'schedules','0003_scheduleconfig','2018-01-31 21:03:23.157828'),(375,'schedules','0004_auto_20170922_1428','2018-01-31 21:03:25.544388'),(376,'schedules','0005_auto_20171010_1722','2018-01-31 21:03:27.981349'),(377,'schedules','0006_scheduleexperience','2018-01-31 21:03:29.227661'),(378,'schedules','0007_scheduleconfig_hold_back_ratio','2018-01-31 21:03:30.503809'),(379,'submissions','0004_remove_django_extensions','2018-01-31 21:03:30.602382'),(380,'third_party_auth','0012_auto_20170626_1135','2018-01-31 21:03:35.495425'),(381,'third_party_auth','0013_sync_learner_profile_data','2018-01-31 21:03:41.799865'),(382,'third_party_auth','0014_auto_20171222_1233','2018-01-31 21:03:44.368171'),(383,'third_party_auth','0015_samlproviderconfig_archived','2018-01-31 21:03:45.374766'),(384,'third_party_auth','0016_auto_20180130_0938','2018-01-31 21:03:47.924768'),(385,'verified_track_content','0003_migrateverifiedtrackcohortssetting','2018-01-31 21:03:49.225425'),(386,'verify_student','0004_delete_historical_records','2018-01-31 21:03:50.646174'),(387,'video_config','0002_coursevideotranscriptenabledflag_videotranscriptenabledflag','2018-01-31 21:03:53.578941'),(388,'video_pipeline','0001_initial','2018-01-31 21:03:55.059304'),(389,'video_pipeline','0002_auto_20171114_0704','2018-01-31 21:03:58.255057'),(390,'video_pipeline','0003_coursevideouploadsenabledbydefault_videouploadsenabledbydefault','2018-01-31 21:04:01.607944'),(391,'waffle','0002_auto_20161201_0958','2018-01-31 21:04:01.674629'),(392,'wiki','0005_remove_attachments_and_images','2018-01-31 21:04:10.782730'),(393,'workflow','0002_remove_django_extensions','2018-01-31 21:04:10.874302'),(394,'contentstore','0002_add_assets_page_flag','2018-01-31 21:12:40.535952'); -/*!40000 ALTER TABLE `django_migrations` ENABLE KEYS */; +LOCK TABLES `enterprise_enterpriseenrollmentsource` WRITE; +/*!40000 ALTER TABLE `enterprise_enterpriseenrollmentsource` DISABLE KEYS */; +INSERT INTO `enterprise_enterpriseenrollmentsource` VALUES (1,'2023-02-21 13:26:05.071551','2023-02-21 13:26:05.071551','Manual Enterprise Enrollment','manual'),(2,'2023-02-21 13:26:05.076859','2023-02-21 13:26:05.076859','Enterprise API Enrollment','enterprise_api'),(3,'2023-02-21 13:26:05.083123','2023-02-21 13:26:05.083123','Enterprise Enrollment URL','enrollment_url'),(4,'2023-02-21 13:26:05.085828','2023-02-21 13:26:05.085828','Enterprise Offer Redemption','offer_redemption'),(5,'2023-02-21 13:26:05.089048','2023-02-21 13:26:05.089048','Enterprise User Enrollment Background Task','enrollment_task'),(6,'2023-02-21 13:26:05.092349','2023-02-21 13:26:05.092349','Enterprise management command enrollment','management_command'),(7,'2023-02-21 13:26:16.080455','2023-02-21 13:26:16.080455','Customer Admin Enrollment','customer_admin'); +/*!40000 ALTER TABLE `enterprise_enterpriseenrollmentsource` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `django_openid_auth_association` +-- Table structure for table `enterprise_enterprisefeaturerole` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `django_openid_auth_association` ( +CREATE TABLE `enterprise_enterprisefeaturerole` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `server_url` longtext NOT NULL, - `handle` varchar(255) NOT NULL, - `secret` longtext NOT NULL, - `issued` int(11) NOT NULL, - `lifetime` int(11) NOT NULL, - `assoc_type` longtext NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `name` varchar(255) NOT NULL, + `description` longtext, + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `django_openid_auth_association` +-- Dumping data for table `enterprise_enterprisefeaturerole` -- -LOCK TABLES `django_openid_auth_association` WRITE; -/*!40000 ALTER TABLE `django_openid_auth_association` DISABLE KEYS */; -/*!40000 ALTER TABLE `django_openid_auth_association` ENABLE KEYS */; +LOCK TABLES `enterprise_enterprisefeaturerole` WRITE; +/*!40000 ALTER TABLE `enterprise_enterprisefeaturerole` DISABLE KEYS */; +INSERT INTO `enterprise_enterprisefeaturerole` VALUES (1,'2023-02-21 13:26:04.941346','2023-02-21 13:26:04.941346','catalog_admin',NULL),(2,'2023-02-21 13:26:04.944783','2023-02-21 13:26:04.944783','dashboard_admin',NULL),(3,'2023-02-21 13:26:04.952356','2023-02-21 13:26:04.952356','enrollment_api_admin',NULL),(4,'2023-02-21 13:26:04.957911','2023-02-21 13:26:04.957911','reporting_config_admin',NULL); +/*!40000 ALTER TABLE `enterprise_enterprisefeaturerole` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `django_openid_auth_nonce` +-- Table structure for table `enterprise_enterprisefeatureuserroleassignment` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `django_openid_auth_nonce` ( +CREATE TABLE `enterprise_enterprisefeatureuserroleassignment` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `server_url` varchar(2047) NOT NULL, - `timestamp` int(11) NOT NULL, - `salt` varchar(40) NOT NULL, - PRIMARY KEY (`id`) + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `role_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `applies_to_all_contexts` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + KEY `enterprise_enterpris_role_id_5e8cff42_fk_enterpris` (`role_id`), + KEY `enterprise_enterpris_user_id_2d335bd4_fk_auth_user` (`user_id`), + CONSTRAINT `enterprise_enterpris_role_id_5e8cff42_fk_enterpris` FOREIGN KEY (`role_id`) REFERENCES `enterprise_enterprisefeaturerole` (`id`), + CONSTRAINT `enterprise_enterpris_user_id_2d335bd4_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `django_openid_auth_nonce` +-- Dumping data for table `enterprise_enterprisefeatureuserroleassignment` -- -LOCK TABLES `django_openid_auth_nonce` WRITE; -/*!40000 ALTER TABLE `django_openid_auth_nonce` DISABLE KEYS */; -/*!40000 ALTER TABLE `django_openid_auth_nonce` ENABLE KEYS */; +LOCK TABLES `enterprise_enterprisefeatureuserroleassignment` WRITE; +/*!40000 ALTER TABLE `enterprise_enterprisefeatureuserroleassignment` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_enterprisefeatureuserroleassignment` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `django_openid_auth_useropenid` +-- Table structure for table `enterprise_historicalenrollmentnotificationemailtemplate` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `django_openid_auth_useropenid` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `claimed_id` longtext NOT NULL, - `display_id` longtext NOT NULL, - `user_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `django_openid_auth_user_user_id_136119e72782e2cf_fk_auth_user_id` (`user_id`), - CONSTRAINT `django_openid_auth_user_user_id_136119e72782e2cf_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +CREATE TABLE `enterprise_historicalenrollmentnotificationemailtemplate` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `plaintext_template` longtext NOT NULL, + `html_template` longtext NOT NULL, + `subject_line` varchar(100) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `enterprise_customer_id` char(32) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `template_type` varchar(255) NOT NULL, + PRIMARY KEY (`history_id`), + KEY `enterprise_historica_history_user_id_f2a6d605_fk_auth_user` (`history_user_id`), + KEY `enterprise_historicalenroll_id_d4b3fed2` (`id`), + KEY `enterprise_historicalenroll_enterprise_customer_id_bc826535` (`enterprise_customer_id`), + CONSTRAINT `enterprise_historica_history_user_id_f2a6d605_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `django_openid_auth_useropenid` +-- Dumping data for table `enterprise_historicalenrollmentnotificationemailtemplate` -- -LOCK TABLES `django_openid_auth_useropenid` WRITE; -/*!40000 ALTER TABLE `django_openid_auth_useropenid` DISABLE KEYS */; -/*!40000 ALTER TABLE `django_openid_auth_useropenid` ENABLE KEYS */; +LOCK TABLES `enterprise_historicalenrollmentnotificationemailtemplate` WRITE; +/*!40000 ALTER TABLE `enterprise_historicalenrollmentnotificationemailtemplate` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_historicalenrollmentnotificationemailtemplate` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `django_redirect` +-- Table structure for table `enterprise_historicalenterprisecourseenrollment` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `django_redirect` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `site_id` int(11) NOT NULL, - `old_path` varchar(200) NOT NULL, - `new_path` varchar(200) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `site_id` (`site_id`,`old_path`), - KEY `django_redirect_91a0b591` (`old_path`), - CONSTRAINT `django_redirect_site_id_121a4403f653e524_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) +CREATE TABLE `enterprise_historicalenterprisecourseenrollment` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `course_id` varchar(255) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `enterprise_customer_user_id` int(11) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `source_id` int(11) DEFAULT NULL, + `saved_for_later` tinyint(1) NOT NULL, + PRIMARY KEY (`history_id`), + KEY `enterprise_historica_history_user_id_a7d84786_fk_auth_user` (`history_user_id`), + KEY `enterprise_historicalenterprisecourseenrollment_id_452a4b04` (`id`), + KEY `enterprise_historicalenterp_enterprise_customer_user_id_380ecc4e` (`enterprise_customer_user_id`), + KEY `enterprise_historicalenterp_source_id_015c9e9c` (`source_id`), + CONSTRAINT `enterprise_historica_history_user_id_a7d84786_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `django_redirect` +-- Dumping data for table `enterprise_historicalenterprisecourseenrollment` -- -LOCK TABLES `django_redirect` WRITE; -/*!40000 ALTER TABLE `django_redirect` DISABLE KEYS */; -/*!40000 ALTER TABLE `django_redirect` ENABLE KEYS */; +LOCK TABLES `enterprise_historicalenterprisecourseenrollment` WRITE; +/*!40000 ALTER TABLE `enterprise_historicalenterprisecourseenrollment` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_historicalenterprisecourseenrollment` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `django_session` +-- Table structure for table `enterprise_historicalenterprisecustomer` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `django_session` ( - `session_key` varchar(40) NOT NULL, - `session_data` longtext NOT NULL, - `expire_date` datetime(6) NOT NULL, - PRIMARY KEY (`session_key`), - KEY `django_session_de54fa62` (`expire_date`) +CREATE TABLE `enterprise_historicalenterprisecustomer` ( + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `uuid` char(32) NOT NULL, + `name` varchar(255) NOT NULL, + `slug` varchar(30) NOT NULL, + `active` tinyint(1) NOT NULL, + `country` varchar(2) DEFAULT NULL, + `hide_course_original_price` tinyint(1) NOT NULL, + `enable_data_sharing_consent` tinyint(1) NOT NULL, + `enforce_data_sharing_consent` varchar(25) NOT NULL, + `enable_audit_enrollment` tinyint(1) NOT NULL, + `enable_audit_data_reporting` tinyint(1) NOT NULL, + `replace_sensitive_sso_username` tinyint(1) NOT NULL, + `enable_autocohorting` tinyint(1) NOT NULL, + `enable_portal_code_management_screen` tinyint(1) NOT NULL, + `enable_portal_reporting_config_screen` tinyint(1) NOT NULL, + `enable_portal_subscription_management_screen` tinyint(1) NOT NULL, + `enable_learner_portal` tinyint(1) NOT NULL, + `contact_email` varchar(254) DEFAULT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `customer_type_id` int(11) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `site_id` int(11) DEFAULT NULL, + `enable_slug_login` tinyint(1) NOT NULL, + `enable_portal_saml_configuration_screen` tinyint(1) NOT NULL, + `default_contract_discount` decimal(8,5) DEFAULT NULL, + `enable_analytics_screen` tinyint(1) NOT NULL, + `enable_integrated_customer_learner_portal_search` tinyint(1) NOT NULL, + `default_language` varchar(25) DEFAULT NULL, + `enable_portal_lms_configurations_screen` tinyint(1) NOT NULL, + `sender_alias` varchar(255) DEFAULT NULL, + `reply_to` varchar(254) DEFAULT NULL, + `hide_labor_market_data` tinyint(1) NOT NULL, + `enable_universal_link` tinyint(1) NOT NULL, + `enable_browse_and_request` tinyint(1) NOT NULL, + `enable_learner_portal_offers` tinyint(1) NOT NULL, + `enable_portal_learner_credit_management_screen` tinyint(1) NOT NULL, + `enable_executive_education_2U_fulfillment` tinyint(1) NOT NULL, + PRIMARY KEY (`history_id`), + KEY `enterprise_historica_history_user_id_bbd9b0d6_fk_auth_user` (`history_user_id`), + KEY `enterprise_historicalenterprisecustomer_uuid_75c3528e` (`uuid`), + KEY `enterprise_historicalenterprisecustomer_slug_04622dd4` (`slug`), + KEY `enterprise_historicalenterp_customer_type_id_8fbc8526` (`customer_type_id`), + KEY `enterprise_historicalenterprisecustomer_site_id_2463b5d7` (`site_id`), + CONSTRAINT `enterprise_historica_history_user_id_bbd9b0d6_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `django_session` +-- Dumping data for table `enterprise_historicalenterprisecustomer` -- -LOCK TABLES `django_session` WRITE; -/*!40000 ALTER TABLE `django_session` DISABLE KEYS */; -/*!40000 ALTER TABLE `django_session` ENABLE KEYS */; +LOCK TABLES `enterprise_historicalenterprisecustomer` WRITE; +/*!40000 ALTER TABLE `enterprise_historicalenterprisecustomer` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_historicalenterprisecustomer` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `django_site` +-- Table structure for table `enterprise_historicalenterprisecustomercatalog` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `django_site` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `domain` varchar(100) NOT NULL, - `name` varchar(50) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; +CREATE TABLE `enterprise_historicalenterprisecustomercatalog` ( + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `uuid` char(32) NOT NULL, + `title` varchar(255) NOT NULL, + `content_filter` longtext, + `enabled_course_modes` longtext NOT NULL, + `publish_audit_enrollment_urls` tinyint(1) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `enterprise_catalog_query_id` int(11) DEFAULT NULL, + `enterprise_customer_id` char(32) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `enterprise_historica_history_user_id_31eab231_fk_auth_user` (`history_user_id`), + KEY `enterprise_historicalenterprisecustomercatalog_uuid_42403101` (`uuid`), + KEY `enterprise_historicalenterp_enterprise_catalog_query_id_bf435a3a` (`enterprise_catalog_query_id`), + KEY `enterprise_historicalenterp_enterprise_customer_id_664f4480` (`enterprise_customer_id`), + CONSTRAINT `enterprise_historica_history_user_id_31eab231_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `django_site` +-- Dumping data for table `enterprise_historicalenterprisecustomercatalog` -- -LOCK TABLES `django_site` WRITE; -/*!40000 ALTER TABLE `django_site` DISABLE KEYS */; -INSERT INTO `django_site` VALUES (1,'example.com','example.com'); -/*!40000 ALTER TABLE `django_site` ENABLE KEYS */; +LOCK TABLES `enterprise_historicalenterprisecustomercatalog` WRITE; +/*!40000 ALTER TABLE `enterprise_historicalenterprisecustomercatalog` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_historicalenterprisecustomercatalog` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `djcelery_crontabschedule` +-- Table structure for table `enterprise_historicalenterprisecustomerinvitekey` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `djcelery_crontabschedule` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `minute` varchar(64) NOT NULL, - `hour` varchar(64) NOT NULL, - `day_of_week` varchar(64) NOT NULL, - `day_of_month` varchar(64) NOT NULL, - `month_of_year` varchar(64) NOT NULL, - PRIMARY KEY (`id`) +CREATE TABLE `enterprise_historicalenterprisecustomerinvitekey` ( + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `is_removed` tinyint(1) NOT NULL, + `uuid` char(32) NOT NULL, + `usage_limit` int(10) unsigned NOT NULL, + `expiration_date` datetime(6) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `enterprise_customer_id` char(32) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `is_active` tinyint(1) NOT NULL, + PRIMARY KEY (`history_id`), + KEY `enterprise_historica_history_user_id_b0abba8d_fk_auth_user` (`history_user_id`), + KEY `enterprise_historicalenterprisecustomerinvitekey_uuid_3e79330b` (`uuid`), + KEY `enterprise_historicalenterp_enterprise_customer_id_808a040d` (`enterprise_customer_id`), + CONSTRAINT `enterprise_historica_history_user_id_b0abba8d_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `djcelery_crontabschedule` +-- Dumping data for table `enterprise_historicalenterprisecustomerinvitekey` -- -LOCK TABLES `djcelery_crontabschedule` WRITE; -/*!40000 ALTER TABLE `djcelery_crontabschedule` DISABLE KEYS */; -/*!40000 ALTER TABLE `djcelery_crontabschedule` ENABLE KEYS */; +LOCK TABLES `enterprise_historicalenterprisecustomerinvitekey` WRITE; +/*!40000 ALTER TABLE `enterprise_historicalenterprisecustomerinvitekey` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_historicalenterprisecustomerinvitekey` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `djcelery_intervalschedule` +-- Table structure for table `enterprise_historicalenterprisecustomeruser` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `djcelery_intervalschedule` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `every` int(11) NOT NULL, - `period` varchar(24) NOT NULL, - PRIMARY KEY (`id`) +CREATE TABLE `enterprise_historicalenterprisecustomeruser` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `user_id` int(10) unsigned NOT NULL, + `active` tinyint(1) NOT NULL, + `linked` tinyint(1) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `enterprise_customer_id` char(32) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `invite_key_id` char(32) DEFAULT NULL, + `should_inactivate_other_customers` tinyint(1) NOT NULL, + `is_relinkable` tinyint(1) NOT NULL, + PRIMARY KEY (`history_id`), + KEY `enterprise_historica_history_user_id_22dafe08_fk_auth_user` (`history_user_id`), + KEY `enterprise_historicalenterprisecustomeruser_id_fa66f378` (`id`), + KEY `enterprise_historicalenterprisecustomeruser_user_id_6262547b` (`user_id`), + KEY `enterprise_historicalenterp_enterprise_customer_id_4b5807fa` (`enterprise_customer_id`), + KEY `enterprise_historicalenterp_invite_key_id_701be209` (`invite_key_id`), + CONSTRAINT `enterprise_historica_history_user_id_22dafe08_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `djcelery_intervalschedule` +-- Dumping data for table `enterprise_historicalenterprisecustomeruser` -- -LOCK TABLES `djcelery_intervalschedule` WRITE; -/*!40000 ALTER TABLE `djcelery_intervalschedule` DISABLE KEYS */; -/*!40000 ALTER TABLE `djcelery_intervalschedule` ENABLE KEYS */; +LOCK TABLES `enterprise_historicalenterprisecustomeruser` WRITE; +/*!40000 ALTER TABLE `enterprise_historicalenterprisecustomeruser` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_historicalenterprisecustomeruser` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `djcelery_periodictask` +-- Table structure for table `enterprise_historicallicensedenterprisecourseenrollment` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `djcelery_periodictask` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(200) NOT NULL, - `task` varchar(200) NOT NULL, - `args` longtext NOT NULL, - `kwargs` longtext NOT NULL, - `queue` varchar(200) DEFAULT NULL, - `exchange` varchar(200) DEFAULT NULL, - `routing_key` varchar(200) DEFAULT NULL, - `expires` datetime(6) DEFAULT NULL, - `enabled` tinyint(1) NOT NULL, - `last_run_at` datetime(6) DEFAULT NULL, - `total_run_count` int(10) unsigned NOT NULL, - `date_changed` datetime(6) NOT NULL, - `description` longtext NOT NULL, - `crontab_id` int(11) DEFAULT NULL, - `interval_id` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`), - KEY `djcel_crontab_id_1d8228f5b44b680a_fk_djcelery_crontabschedule_id` (`crontab_id`), - KEY `djc_interval_id_20cfc1cad060dfad_fk_djcelery_intervalschedule_id` (`interval_id`), - CONSTRAINT `djc_interval_id_20cfc1cad060dfad_fk_djcelery_intervalschedule_id` FOREIGN KEY (`interval_id`) REFERENCES `djcelery_intervalschedule` (`id`), - CONSTRAINT `djcel_crontab_id_1d8228f5b44b680a_fk_djcelery_crontabschedule_id` FOREIGN KEY (`crontab_id`) REFERENCES `djcelery_crontabschedule` (`id`) +CREATE TABLE `enterprise_historicallicensedenterprisecourseenrollment` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `license_uuid` char(32) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `enterprise_course_enrollment_id` int(11) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `is_revoked` tinyint(1) NOT NULL, + PRIMARY KEY (`history_id`), + KEY `enterprise_historica_history_user_id_1db87766_fk_auth_user` (`history_user_id`), + KEY `enterprise_historicallicens_id_ff4cfd4f` (`id`), + KEY `enterprise_historicallicens_enterprise_course_enrollmen_1b0d3427` (`enterprise_course_enrollment_id`), + CONSTRAINT `enterprise_historica_history_user_id_1db87766_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `djcelery_periodictask` +-- Dumping data for table `enterprise_historicallicensedenterprisecourseenrollment` -- -LOCK TABLES `djcelery_periodictask` WRITE; -/*!40000 ALTER TABLE `djcelery_periodictask` DISABLE KEYS */; -/*!40000 ALTER TABLE `djcelery_periodictask` ENABLE KEYS */; +LOCK TABLES `enterprise_historicallicensedenterprisecourseenrollment` WRITE; +/*!40000 ALTER TABLE `enterprise_historicallicensedenterprisecourseenrollment` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_historicallicensedenterprisecourseenrollment` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `djcelery_periodictasks` +-- Table structure for table `enterprise_historicalpendingenrollment` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `djcelery_periodictasks` ( - `ident` smallint(6) NOT NULL, - `last_update` datetime(6) NOT NULL, - PRIMARY KEY (`ident`) +CREATE TABLE `enterprise_historicalpendingenrollment` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `course_id` varchar(255) NOT NULL, + `course_mode` varchar(25) NOT NULL, + `cohort_name` varchar(255) DEFAULT NULL, + `discount_percentage` decimal(8,5) NOT NULL, + `sales_force_id` varchar(255) DEFAULT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `source_id` int(11) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + `license_uuid` char(32) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `enterprise_historica_history_user_id_894ad7d0_fk_auth_user` (`history_user_id`), + KEY `enterprise_historicalpendingenrollment_id_27077b0b` (`id`), + KEY `enterprise_historicalpendingenrollment_source_id_3a208cd2` (`source_id`), + KEY `enterprise_historicalpendingenrollment_user_id_97ded265` (`user_id`), + CONSTRAINT `enterprise_historica_history_user_id_894ad7d0_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `djcelery_periodictasks` +-- Dumping data for table `enterprise_historicalpendingenrollment` -- -LOCK TABLES `djcelery_periodictasks` WRITE; -/*!40000 ALTER TABLE `djcelery_periodictasks` DISABLE KEYS */; -/*!40000 ALTER TABLE `djcelery_periodictasks` ENABLE KEYS */; +LOCK TABLES `enterprise_historicalpendingenrollment` WRITE; +/*!40000 ALTER TABLE `enterprise_historicalpendingenrollment` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_historicalpendingenrollment` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `djcelery_taskstate` +-- Table structure for table `enterprise_historicalpendingenterprisecustomeradminuser` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `djcelery_taskstate` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `state` varchar(64) NOT NULL, - `task_id` varchar(36) NOT NULL, - `name` varchar(200) DEFAULT NULL, - `tstamp` datetime(6) NOT NULL, - `args` longtext, - `kwargs` longtext, - `eta` datetime(6) DEFAULT NULL, - `expires` datetime(6) DEFAULT NULL, - `result` longtext, - `traceback` longtext, - `runtime` double DEFAULT NULL, - `retries` int(11) NOT NULL, - `hidden` tinyint(1) NOT NULL, - `worker_id` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `task_id` (`task_id`), - KEY `djcelery_taskstate_9ed39e2e` (`state`), - KEY `djcelery_taskstate_b068931c` (`name`), - KEY `djcelery_taskstate_863bb2ee` (`tstamp`), - KEY `djcelery_taskstate_662f707d` (`hidden`), - KEY `djcelery_taskstate_ce77e6ef` (`worker_id`), - CONSTRAINT `djcelery_t_worker_id_30050731b1c3d3d9_fk_djcelery_workerstate_id` FOREIGN KEY (`worker_id`) REFERENCES `djcelery_workerstate` (`id`) +CREATE TABLE `enterprise_historicalpendingenterprisecustomeradminuser` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `user_email` varchar(254) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `enterprise_customer_id` char(32) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `enterprise_historica_history_user_id_3a051cc8_fk_auth_user` (`history_user_id`), + KEY `enterprise_historicalpendin_id_46b9ceba` (`id`), + KEY `enterprise_historicalpendin_enterprise_customer_id_885a7c1b` (`enterprise_customer_id`), + CONSTRAINT `enterprise_historica_history_user_id_3a051cc8_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `djcelery_taskstate` +-- Dumping data for table `enterprise_historicalpendingenterprisecustomeradminuser` -- -LOCK TABLES `djcelery_taskstate` WRITE; -/*!40000 ALTER TABLE `djcelery_taskstate` DISABLE KEYS */; -/*!40000 ALTER TABLE `djcelery_taskstate` ENABLE KEYS */; +LOCK TABLES `enterprise_historicalpendingenterprisecustomeradminuser` WRITE; +/*!40000 ALTER TABLE `enterprise_historicalpendingenterprisecustomeradminuser` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_historicalpendingenterprisecustomeradminuser` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `djcelery_workerstate` +-- Table structure for table `enterprise_historicalpendingenterprisecustomeruser` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `djcelery_workerstate` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `hostname` varchar(255) NOT NULL, - `last_heartbeat` datetime(6) DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `hostname` (`hostname`), - KEY `djcelery_workerstate_f129901a` (`last_heartbeat`) +CREATE TABLE `enterprise_historicalpendingenterprisecustomeruser` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `user_email` varchar(254) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `enterprise_customer_id` char(32) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `enterprise_historica_history_user_id_c491461b_fk_auth_user` (`history_user_id`), + KEY `enterprise_historicalpendingenterprisecustomeruser_id_3cf88198` (`id`), + KEY `enterprise_historicalpendin_enterprise_customer_id_6c02ed95` (`enterprise_customer_id`), + CONSTRAINT `enterprise_historica_history_user_id_c491461b_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `djcelery_workerstate` +-- Dumping data for table `enterprise_historicalpendingenterprisecustomeruser` -- -LOCK TABLES `djcelery_workerstate` WRITE; -/*!40000 ALTER TABLE `djcelery_workerstate` DISABLE KEYS */; -/*!40000 ALTER TABLE `djcelery_workerstate` ENABLE KEYS */; +LOCK TABLES `enterprise_historicalpendingenterprisecustomeruser` WRITE; +/*!40000 ALTER TABLE `enterprise_historicalpendingenterprisecustomeruser` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_historicalpendingenterprisecustomeruser` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `edxval_coursevideo` +-- Table structure for table `enterprise_historicalsystemwideenterpriseuserroleassignment` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `edxval_coursevideo` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `course_id` varchar(255) NOT NULL, - `video_id` int(11) NOT NULL, - `is_hidden` tinyint(1) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `edxval_coursevideo_course_id_42cecee05cff2d8c_uniq` (`course_id`,`video_id`), - KEY `edxval_coursevideo_b58b747e` (`video_id`), - CONSTRAINT `edxval_coursevideo_video_id_68b2969f352edd03_fk_edxval_video_id` FOREIGN KEY (`video_id`) REFERENCES `edxval_video` (`id`) +CREATE TABLE `enterprise_historicalsystemwideenterpriseuserroleassignment` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `applies_to_all_contexts` tinyint(1) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `enterprise_customer_id` char(32) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `role_id` int(11) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `enterprise_historica_history_user_id_628729af_fk_auth_user` (`history_user_id`), + KEY `enterprise_historicalsystem_id_56efe6ab` (`id`), + KEY `enterprise_historicalsystem_enterprise_customer_id_69fcca18` (`enterprise_customer_id`), + KEY `enterprise_historicalsystem_role_id_6931bef0` (`role_id`), + KEY `enterprise_historicalsystem_user_id_b184c15e` (`user_id`), + CONSTRAINT `enterprise_historica_history_user_id_628729af_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `edxval_coursevideo` +-- Dumping data for table `enterprise_historicalsystemwideenterpriseuserroleassignment` -- -LOCK TABLES `edxval_coursevideo` WRITE; -/*!40000 ALTER TABLE `edxval_coursevideo` DISABLE KEYS */; -/*!40000 ALTER TABLE `edxval_coursevideo` ENABLE KEYS */; +LOCK TABLES `enterprise_historicalsystemwideenterpriseuserroleassignment` WRITE; +/*!40000 ALTER TABLE `enterprise_historicalsystemwideenterpriseuserroleassignment` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_historicalsystemwideenterpriseuserroleassignment` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `edxval_encodedvideo` +-- Table structure for table `enterprise_licensedenterprisecourseenrollment` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `edxval_encodedvideo` ( +CREATE TABLE `enterprise_licensedenterprisecourseenrollment` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `url` varchar(200) NOT NULL, - `file_size` int(10) unsigned NOT NULL, - `bitrate` int(10) unsigned NOT NULL, - `profile_id` int(11) NOT NULL, - `video_id` int(11) NOT NULL, + `license_uuid` char(32) NOT NULL, + `enterprise_course_enrollment_id` int(11) NOT NULL, + `is_revoked` tinyint(1) NOT NULL, PRIMARY KEY (`id`), - KEY `edxval_encodedvideo_83a0eb3f` (`profile_id`), - KEY `edxval_encodedvideo_b58b747e` (`video_id`), - CONSTRAINT `edxval_encodedv_profile_id_484a111092acafb3_fk_edxval_profile_id` FOREIGN KEY (`profile_id`) REFERENCES `edxval_profile` (`id`), - CONSTRAINT `edxval_encodedvideo_video_id_56934bca09fc3b13_fk_edxval_video_id` FOREIGN KEY (`video_id`) REFERENCES `edxval_video` (`id`) + UNIQUE KEY `enterprise_course_enrollment_id` (`enterprise_course_enrollment_id`), + CONSTRAINT `enterprise_licensede_enterprise_course_en_db2f5a9f_fk_enterpris` FOREIGN KEY (`enterprise_course_enrollment_id`) REFERENCES `enterprise_enterprisecourseenrollment` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `edxval_encodedvideo` +-- Dumping data for table `enterprise_licensedenterprisecourseenrollment` -- -LOCK TABLES `edxval_encodedvideo` WRITE; -/*!40000 ALTER TABLE `edxval_encodedvideo` DISABLE KEYS */; -/*!40000 ALTER TABLE `edxval_encodedvideo` ENABLE KEYS */; +LOCK TABLES `enterprise_licensedenterprisecourseenrollment` WRITE; +/*!40000 ALTER TABLE `enterprise_licensedenterprisecourseenrollment` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_licensedenterprisecourseenrollment` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `edxval_profile` +-- Table structure for table `enterprise_pendingenrollment` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `edxval_profile` ( +CREATE TABLE `enterprise_pendingenrollment` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `profile_name` varchar(50) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `course_id` varchar(255) NOT NULL, + `course_mode` varchar(25) NOT NULL, + `cohort_name` varchar(255) DEFAULT NULL, + `discount_percentage` decimal(8,5) NOT NULL, + `sales_force_id` varchar(255) DEFAULT NULL, + `source_id` int(11) DEFAULT NULL, + `user_id` int(11) NOT NULL, + `license_uuid` char(32) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `profile_name` (`profile_name`) -) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; + UNIQUE KEY `enterprise_pendingenrollment_user_id_course_id_6d4141c7_uniq` (`user_id`,`course_id`), + KEY `enterprise_pendingen_source_id_7b6fed0c_fk_enterpris` (`source_id`), + CONSTRAINT `enterprise_pendingen_source_id_7b6fed0c_fk_enterpris` FOREIGN KEY (`source_id`) REFERENCES `enterprise_enterpriseenrollmentsource` (`id`), + CONSTRAINT `enterprise_pendingen_user_id_12d21b1a_fk_enterpris` FOREIGN KEY (`user_id`) REFERENCES `enterprise_pendingenterprisecustomeruser` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `edxval_profile` +-- Dumping data for table `enterprise_pendingenrollment` -- -LOCK TABLES `edxval_profile` WRITE; -/*!40000 ALTER TABLE `edxval_profile` DISABLE KEYS */; -INSERT INTO `edxval_profile` VALUES (1,'desktop_mp4'),(2,'desktop_webm'),(6,'hls'),(3,'mobile_high'),(4,'mobile_low'),(5,'youtube'); -/*!40000 ALTER TABLE `edxval_profile` ENABLE KEYS */; +LOCK TABLES `enterprise_pendingenrollment` WRITE; +/*!40000 ALTER TABLE `enterprise_pendingenrollment` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_pendingenrollment` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `edxval_thirdpartytranscriptcredentialsstate` +-- Table structure for table `enterprise_pendingenterprisecustomeradminuser` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `edxval_thirdpartytranscriptcredentialsstate` ( +CREATE TABLE `enterprise_pendingenterprisecustomeradminuser` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `org` varchar(32) NOT NULL, - `provider` varchar(20) NOT NULL, - `exists` tinyint(1) NOT NULL, + `user_email` varchar(254) NOT NULL, + `enterprise_customer_id` char(32) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `edxval_thirdpartytranscriptcredentials_org_56deb259e3beb1a8_uniq` (`org`,`provider`) + UNIQUE KEY `unique pending admin user and EnterpriseCustomer` (`user_email`,`enterprise_customer_id`), + KEY `enterprise_pendingenterpris_enterprise_customer_id_aae02661` (`enterprise_customer_id`), + KEY `enterprise__user_em_fead22_idx` (`user_email`,`enterprise_customer_id`), + KEY `enterprise__user_em_6e1f5b_idx` (`user_email`), + CONSTRAINT `enterprise_pendingen_enterprise_customer__aae02661_fk_enterpris` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `edxval_thirdpartytranscriptcredentialsstate` +-- Dumping data for table `enterprise_pendingenterprisecustomeradminuser` -- -LOCK TABLES `edxval_thirdpartytranscriptcredentialsstate` WRITE; -/*!40000 ALTER TABLE `edxval_thirdpartytranscriptcredentialsstate` DISABLE KEYS */; -/*!40000 ALTER TABLE `edxval_thirdpartytranscriptcredentialsstate` ENABLE KEYS */; +LOCK TABLES `enterprise_pendingenterprisecustomeradminuser` WRITE; +/*!40000 ALTER TABLE `enterprise_pendingenterprisecustomeradminuser` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_pendingenterprisecustomeradminuser` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `edxval_transcriptpreference` +-- Table structure for table `enterprise_pendingenterprisecustomeruser` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `edxval_transcriptpreference` ( +CREATE TABLE `enterprise_pendingenterprisecustomeruser` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `course_id` varchar(255) NOT NULL, - `provider` varchar(20) NOT NULL, - `cielo24_fidelity` varchar(20) DEFAULT NULL, - `cielo24_turnaround` varchar(20) DEFAULT NULL, - `three_play_turnaround` varchar(20) DEFAULT NULL, - `preferred_languages` longtext NOT NULL, - `video_source_language` varchar(50) DEFAULT NULL, + `user_email` varchar(254) NOT NULL, + `enterprise_customer_id` char(32) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `course_id` (`course_id`) + UNIQUE KEY `unique user and EnterpriseCustomer` (`user_email`,`enterprise_customer_id`), + KEY `enterprise_pendingen_enterprise_customer__a858ce2d_fk_enterpris` (`enterprise_customer_id`), + KEY `enterprise__user_em_f98d36_idx` (`user_email`,`enterprise_customer_id`), + KEY `enterprise__user_em_488930_idx` (`user_email`), + CONSTRAINT `enterprise_pendingen_enterprise_customer__a858ce2d_fk_enterpris` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `edxval_transcriptpreference` +-- Dumping data for table `enterprise_pendingenterprisecustomeruser` -- -LOCK TABLES `edxval_transcriptpreference` WRITE; -/*!40000 ALTER TABLE `edxval_transcriptpreference` DISABLE KEYS */; -/*!40000 ALTER TABLE `edxval_transcriptpreference` ENABLE KEYS */; +LOCK TABLES `enterprise_pendingenterprisecustomeruser` WRITE; +/*!40000 ALTER TABLE `enterprise_pendingenterprisecustomeruser` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_pendingenterprisecustomeruser` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `edxval_video` +-- Table structure for table `enterprise_systemwideenterpriserole` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `edxval_video` ( +CREATE TABLE `enterprise_systemwideenterpriserole` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, - `edx_video_id` varchar(100) NOT NULL, - `client_video_id` varchar(255) NOT NULL, - `duration` double NOT NULL, - `status` varchar(255) NOT NULL, + `modified` datetime(6) NOT NULL, + `name` varchar(255) NOT NULL, + `description` longtext, PRIMARY KEY (`id`), - UNIQUE KEY `edx_video_id` (`edx_video_id`), - KEY `edxval_video_8d63c4f7` (`client_video_id`), - KEY `edxval_video_9acb4454` (`status`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + UNIQUE KEY `name` (`name`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `edxval_video` +-- Dumping data for table `enterprise_systemwideenterpriserole` -- -LOCK TABLES `edxval_video` WRITE; -/*!40000 ALTER TABLE `edxval_video` DISABLE KEYS */; -/*!40000 ALTER TABLE `edxval_video` ENABLE KEYS */; +LOCK TABLES `enterprise_systemwideenterpriserole` WRITE; +/*!40000 ALTER TABLE `enterprise_systemwideenterpriserole` DISABLE KEYS */; +INSERT INTO `enterprise_systemwideenterpriserole` VALUES (1,'2023-02-21 13:26:04.928596','2023-02-21 13:26:04.928596','enterprise_admin',NULL),(2,'2023-02-21 13:26:04.933431','2023-02-21 13:26:04.933431','enterprise_learner',NULL),(3,'2023-02-21 13:26:04.936997','2023-02-21 13:26:04.936997','enterprise_openedx_operator',NULL),(4,'2023-02-21 13:26:07.500896','2023-02-21 13:26:07.500896','enterprise_catalog_admin','Role for access to endpoints in the enterprise catalog service'); +/*!40000 ALTER TABLE `enterprise_systemwideenterpriserole` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `edxval_videoimage` +-- Table structure for table `enterprise_systemwideenterpriseuserroleassignment` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `edxval_videoimage` ( +CREATE TABLE `enterprise_systemwideenterpriseuserroleassignment` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `image` varchar(500) DEFAULT NULL, - `generated_images` longtext NOT NULL, - `course_video_id` int(11) NOT NULL, + `role_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `applies_to_all_contexts` tinyint(1) NOT NULL, + `enterprise_customer_id` char(32) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `course_video_id` (`course_video_id`), - CONSTRAINT `edxval_course_video_id_595461bc0ff739b3_fk_edxval_coursevideo_id` FOREIGN KEY (`course_video_id`) REFERENCES `edxval_coursevideo` (`id`) + UNIQUE KEY `enterprise_systemwideent_enterprise_customer_id_r_970babc4_uniq` (`enterprise_customer_id`,`role_id`,`user_id`), + KEY `enterprise_systemwid_role_id_bc7092f0_fk_enterpris` (`role_id`), + KEY `enterprise_systemwid_user_id_e890aef2_fk_auth_user` (`user_id`), + CONSTRAINT `enterprise_systemwid_enterprise_customer__0136c565_fk_enterpris` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`), + CONSTRAINT `enterprise_systemwid_role_id_bc7092f0_fk_enterpris` FOREIGN KEY (`role_id`) REFERENCES `enterprise_systemwideenterpriserole` (`id`), + CONSTRAINT `enterprise_systemwid_user_id_e890aef2_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `edxval_videoimage` +-- Dumping data for table `enterprise_systemwideenterpriseuserroleassignment` -- -LOCK TABLES `edxval_videoimage` WRITE; -/*!40000 ALTER TABLE `edxval_videoimage` DISABLE KEYS */; -/*!40000 ALTER TABLE `edxval_videoimage` ENABLE KEYS */; +LOCK TABLES `enterprise_systemwideenterpriseuserroleassignment` WRITE; +/*!40000 ALTER TABLE `enterprise_systemwideenterpriseuserroleassignment` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_systemwideenterpriseuserroleassignment` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `edxval_videotranscript` +-- Table structure for table `enterprise_updateroleassignmentswithcustomersconfig` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `edxval_videotranscript` ( +CREATE TABLE `enterprise_updateroleassignmentswithcustomersconfig` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, - `transcript` varchar(255) DEFAULT NULL, - `language_code` varchar(50) NOT NULL, - `provider` varchar(30) NOT NULL, - `file_format` varchar(20) NOT NULL, - `video_id` int(11), + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `role` varchar(100) NOT NULL, + `batch_size` int(11) NOT NULL, + `enterprise_customer_uuid` varchar(36) NOT NULL, + `dry_run` tinyint(1) NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `edxval_videotranscript_video_id_729fab369c0f7028_uniq` (`video_id`,`language_code`), - KEY `edxval_videotranscript_60716c2f` (`language_code`), - KEY `edxval_videotranscript_e1be1ad3` (`file_format`), - KEY `edxval_videotranscript_b58b747e` (`video_id`), - CONSTRAINT `edxval_videotranscr_video_id_2578e231c810d058_fk_edxval_video_id` FOREIGN KEY (`video_id`) REFERENCES `edxval_video` (`id`) + KEY `enterprise_updaterol_changed_by_id_1053fb4d_fk_auth_user` (`changed_by_id`), + CONSTRAINT `enterprise_updaterol_changed_by_id_1053fb4d_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `edxval_videotranscript` +-- Dumping data for table `enterprise_updateroleassignmentswithcustomersconfig` -- -LOCK TABLES `edxval_videotranscript` WRITE; -/*!40000 ALTER TABLE `edxval_videotranscript` DISABLE KEYS */; -/*!40000 ALTER TABLE `edxval_videotranscript` ENABLE KEYS */; +LOCK TABLES `enterprise_updateroleassignmentswithcustomersconfig` WRITE; +/*!40000 ALTER TABLE `enterprise_updateroleassignmentswithcustomersconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `enterprise_updateroleassignmentswithcustomersconfig` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `email_marketing_emailmarketingconfiguration` +-- Table structure for table `entitlements_courseentitlement` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `email_marketing_emailmarketingconfiguration` ( +CREATE TABLE `entitlements_courseentitlement` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `sailthru_key` varchar(32) NOT NULL, - `sailthru_secret` varchar(32) NOT NULL, - `sailthru_new_user_list` varchar(48) NOT NULL, - `sailthru_retry_interval` int(11) NOT NULL, - `sailthru_max_retries` int(11) NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, - `sailthru_abandoned_cart_delay` int(11) NOT NULL, - `sailthru_abandoned_cart_template` varchar(20) NOT NULL, - `sailthru_content_cache_age` int(11) NOT NULL, - `sailthru_enroll_cost` int(11) NOT NULL, - `sailthru_enroll_template` varchar(20) NOT NULL, - `sailthru_get_tags_from_sailthru` tinyint(1) NOT NULL, - `sailthru_purchase_template` varchar(20) NOT NULL, - `sailthru_upgrade_template` varchar(20) NOT NULL, - `sailthru_lms_url_override` varchar(80) NOT NULL, - `welcome_email_send_delay` int(11) NOT NULL, - `user_registration_cookie_timeout_delay` double NOT NULL, - `sailthru_welcome_template` varchar(20) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `uuid` char(32) NOT NULL, + `course_uuid` char(32) NOT NULL, + `expired_at` datetime(6) DEFAULT NULL, + `mode` varchar(100) NOT NULL, + `order_number` varchar(128) DEFAULT NULL, + `enrollment_course_run_id` int(11) DEFAULT NULL, + `user_id` int(11) NOT NULL, + `_policy_id` int(11) DEFAULT NULL, + `refund_locked` tinyint(1) NOT NULL, PRIMARY KEY (`id`), - KEY `email_marketing_e_changed_by_id_1c6968b921f23b0b_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `email_marketing_e_changed_by_id_1c6968b921f23b0b_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `entitlements_courseentitlement_uuid_2228ffad_uniq` (`uuid`), + UNIQUE KEY `entitlements_courseentit_course_uuid_order_number_b37c9e13_uniq` (`course_uuid`,`order_number`), + KEY `entitlements_coursee_enrollment_course_ru_3fc796af_fk_student_c` (`enrollment_course_run_id`), + KEY `entitlements_courseentitlement_user_id_a518a225_fk_auth_user_id` (`user_id`), + KEY `entitlements_coursee__policy_id_37bd7c13_fk_entitleme` (`_policy_id`), + CONSTRAINT `entitlements_coursee__policy_id_37bd7c13_fk_entitleme` FOREIGN KEY (`_policy_id`) REFERENCES `entitlements_courseentitlementpolicy` (`id`), + CONSTRAINT `entitlements_coursee_enrollment_course_ru_3fc796af_fk_student_c` FOREIGN KEY (`enrollment_course_run_id`) REFERENCES `student_courseenrollment` (`id`), + CONSTRAINT `entitlements_courseentitlement_user_id_a518a225_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `email_marketing_emailmarketingconfiguration` +-- Dumping data for table `entitlements_courseentitlement` -- -LOCK TABLES `email_marketing_emailmarketingconfiguration` WRITE; -/*!40000 ALTER TABLE `email_marketing_emailmarketingconfiguration` DISABLE KEYS */; -/*!40000 ALTER TABLE `email_marketing_emailmarketingconfiguration` ENABLE KEYS */; +LOCK TABLES `entitlements_courseentitlement` WRITE; +/*!40000 ALTER TABLE `entitlements_courseentitlement` DISABLE KEYS */; +/*!40000 ALTER TABLE `entitlements_courseentitlement` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `embargo_country` +-- Table structure for table `entitlements_courseentitlementpolicy` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `embargo_country` ( +CREATE TABLE `entitlements_courseentitlementpolicy` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `country` varchar(2) NOT NULL, + `expiration_period` bigint(20) NOT NULL, + `refund_period` bigint(20) NOT NULL, + `regain_period` bigint(20) NOT NULL, + `site_id` int(11) DEFAULT NULL, + `mode` varchar(32) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `country` (`country`) -) ENGINE=InnoDB AUTO_INCREMENT=251 DEFAULT CHARSET=utf8; + KEY `entitlements_coursee_site_id_c7a9e107_fk_django_si` (`site_id`), + CONSTRAINT `entitlements_coursee_site_id_c7a9e107_fk_django_si` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `embargo_country` +-- Dumping data for table `entitlements_courseentitlementpolicy` -- -LOCK TABLES `embargo_country` WRITE; -/*!40000 ALTER TABLE `embargo_country` DISABLE KEYS */; -INSERT INTO `embargo_country` VALUES (6,'AD'),(235,'AE'),(1,'AF'),(10,'AG'),(8,'AI'),(3,'AL'),(12,'AM'),(7,'AO'),(9,'AQ'),(11,'AR'),(5,'AS'),(15,'AT'),(14,'AU'),(13,'AW'),(2,'AX'),(16,'AZ'),(29,'BA'),(20,'BB'),(19,'BD'),(22,'BE'),(36,'BF'),(35,'BG'),(18,'BH'),(37,'BI'),(24,'BJ'),(185,'BL'),(25,'BM'),(34,'BN'),(27,'BO'),(28,'BQ'),(32,'BR'),(17,'BS'),(26,'BT'),(31,'BV'),(30,'BW'),(21,'BY'),(23,'BZ'),(41,'CA'),(48,'CC'),(52,'CD'),(43,'CF'),(51,'CG'),(217,'CH'),(55,'CI'),(53,'CK'),(45,'CL'),(40,'CM'),(46,'CN'),(49,'CO'),(54,'CR'),(57,'CU'),(38,'CV'),(58,'CW'),(47,'CX'),(59,'CY'),(60,'CZ'),(83,'DE'),(62,'DJ'),(61,'DK'),(63,'DM'),(64,'DO'),(4,'DZ'),(65,'EC'),(70,'EE'),(66,'EG'),(247,'EH'),(69,'ER'),(210,'ES'),(71,'ET'),(75,'FI'),(74,'FJ'),(72,'FK'),(144,'FM'),(73,'FO'),(76,'FR'),(80,'GA'),(236,'GB'),(88,'GD'),(82,'GE'),(77,'GF'),(92,'GG'),(84,'GH'),(85,'GI'),(87,'GL'),(81,'GM'),(93,'GN'),(89,'GP'),(68,'GQ'),(86,'GR'),(207,'GS'),(91,'GT'),(90,'GU'),(94,'GW'),(95,'GY'),(100,'HK'),(97,'HM'),(99,'HN'),(56,'HR'),(96,'HT'),(101,'HU'),(104,'ID'),(107,'IE'),(109,'IL'),(108,'IM'),(103,'IN'),(33,'IO'),(106,'IQ'),(105,'IR'),(102,'IS'),(110,'IT'),(113,'JE'),(111,'JM'),(114,'JO'),(112,'JP'),(116,'KE'),(120,'KG'),(39,'KH'),(117,'KI'),(50,'KM'),(187,'KN'),(164,'KP'),(208,'KR'),(119,'KW'),(42,'KY'),(115,'KZ'),(121,'LA'),(123,'LB'),(188,'LC'),(127,'LI'),(211,'LK'),(125,'LR'),(124,'LS'),(128,'LT'),(129,'LU'),(122,'LV'),(126,'LY'),(150,'MA'),(146,'MC'),(145,'MD'),(148,'ME'),(189,'MF'),(132,'MG'),(138,'MH'),(131,'MK'),(136,'ML'),(152,'MM'),(147,'MN'),(130,'MO'),(165,'MP'),(139,'MQ'),(140,'MR'),(149,'MS'),(137,'MT'),(141,'MU'),(135,'MV'),(133,'MW'),(143,'MX'),(134,'MY'),(151,'MZ'),(153,'NA'),(157,'NC'),(160,'NE'),(163,'NF'),(161,'NG'),(159,'NI'),(156,'NL'),(166,'NO'),(155,'NP'),(154,'NR'),(162,'NU'),(158,'NZ'),(167,'OM'),(171,'PA'),(174,'PE'),(78,'PF'),(172,'PG'),(175,'PH'),(168,'PK'),(177,'PL'),(190,'PM'),(176,'PN'),(179,'PR'),(170,'PS'),(178,'PT'),(169,'PW'),(173,'PY'),(180,'QA'),(181,'RE'),(182,'RO'),(197,'RS'),(183,'RU'),(184,'RW'),(195,'SA'),(204,'SB'),(198,'SC'),(212,'SD'),(216,'SE'),(200,'SG'),(186,'SH'),(203,'SI'),(214,'SJ'),(202,'SK'),(199,'SL'),(193,'SM'),(196,'SN'),(205,'SO'),(213,'SR'),(209,'SS'),(194,'ST'),(67,'SV'),(201,'SX'),(218,'SY'),(215,'SZ'),(231,'TC'),(44,'TD'),(79,'TF'),(224,'TG'),(222,'TH'),(220,'TJ'),(225,'TK'),(223,'TL'),(230,'TM'),(228,'TN'),(226,'TO'),(229,'TR'),(227,'TT'),(232,'TV'),(219,'TW'),(221,'TZ'),(234,'UA'),(233,'UG'),(237,'UM'),(238,'US'),(239,'UY'),(240,'UZ'),(98,'VA'),(191,'VC'),(242,'VE'),(244,'VG'),(245,'VI'),(243,'VN'),(241,'VU'),(246,'WF'),(192,'WS'),(118,'XK'),(248,'YE'),(142,'YT'),(206,'ZA'),(249,'ZM'),(250,'ZW'); -/*!40000 ALTER TABLE `embargo_country` ENABLE KEYS */; +LOCK TABLES `entitlements_courseentitlementpolicy` WRITE; +/*!40000 ALTER TABLE `entitlements_courseentitlementpolicy` DISABLE KEYS */; +/*!40000 ALTER TABLE `entitlements_courseentitlementpolicy` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `embargo_countryaccessrule` +-- Table structure for table `entitlements_courseentitlementsupportdetail` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `embargo_countryaccessrule` ( +CREATE TABLE `entitlements_courseentitlementsupportdetail` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `rule_type` varchar(255) NOT NULL, - `country_id` int(11) NOT NULL, - `restricted_course_id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `reason` varchar(15) NOT NULL, + `comments` longtext, + `entitlement_id` int(11) NOT NULL, + `support_user_id` int(11) NOT NULL, + `unenrolled_run_id` varchar(255) DEFAULT NULL, + `action` varchar(15) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `embargo_countryaccess_restricted_course_id_6f340c36c633cb0a_uniq` (`restricted_course_id`,`country_id`), - KEY `embargo_countr_country_id_6244ff9d9c405c6e_fk_embargo_country_id` (`country_id`), - KEY `embargo_countryaccessrule_77607676` (`restricted_course_id`), - CONSTRAINT `d140f72cce132ba9230b3ff66d8761ad` FOREIGN KEY (`restricted_course_id`) REFERENCES `embargo_restrictedcourse` (`id`), - CONSTRAINT `embargo_countr_country_id_6244ff9d9c405c6e_fk_embargo_country_id` FOREIGN KEY (`country_id`) REFERENCES `embargo_country` (`id`) + KEY `entitlements_coursee_entitlement_id_93b9020b_fk_entitleme` (`entitlement_id`), + KEY `entitlements_coursee_support_user_id_97d3095e_fk_auth_user` (`support_user_id`), + KEY `entitlements_courseentitlem_unenrolled_run_id_d72860e3` (`unenrolled_run_id`), + CONSTRAINT `entitlements_coursee_entitlement_id_93b9020b_fk_entitleme` FOREIGN KEY (`entitlement_id`) REFERENCES `entitlements_courseentitlement` (`id`), + CONSTRAINT `entitlements_coursee_support_user_id_97d3095e_fk_auth_user` FOREIGN KEY (`support_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `embargo_countryaccessrule` +-- Dumping data for table `entitlements_courseentitlementsupportdetail` -- -LOCK TABLES `embargo_countryaccessrule` WRITE; -/*!40000 ALTER TABLE `embargo_countryaccessrule` DISABLE KEYS */; -/*!40000 ALTER TABLE `embargo_countryaccessrule` ENABLE KEYS */; +LOCK TABLES `entitlements_courseentitlementsupportdetail` WRITE; +/*!40000 ALTER TABLE `entitlements_courseentitlementsupportdetail` DISABLE KEYS */; +/*!40000 ALTER TABLE `entitlements_courseentitlementsupportdetail` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `embargo_courseaccessrulehistory` +-- Table structure for table `entitlements_historicalcourseentitlement` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `embargo_courseaccessrulehistory` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `timestamp` datetime(6) NOT NULL, - `course_key` varchar(255) NOT NULL, - `snapshot` longtext, - PRIMARY KEY (`id`), - KEY `embargo_courseaccessrulehistory_d7e6d55b` (`timestamp`), - KEY `embargo_courseaccessrulehistory_c8235886` (`course_key`) +CREATE TABLE `entitlements_historicalcourseentitlement` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `uuid` char(32) NOT NULL, + `course_uuid` char(32) NOT NULL, + `expired_at` datetime(6) DEFAULT NULL, + `mode` varchar(100) NOT NULL, + `order_number` varchar(128) DEFAULT NULL, + `refund_locked` tinyint(1) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `_policy_id` int(11) DEFAULT NULL, + `enrollment_course_run_id` int(11) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `entitlements_histori_history_user_id_a3bc1823_fk_auth_user` (`history_user_id`), + KEY `entitlements_historicalcourseentitlement_id_e3740062` (`id`), + KEY `entitlements_historicalcourseentitlement_uuid_54fd331f` (`uuid`), + KEY `entitlements_historicalcourseentitlement__policy_id_71c21d43` (`_policy_id`), + KEY `entitlements_historicalcour_enrollment_course_run_id_1b92719b` (`enrollment_course_run_id`), + KEY `entitlements_historicalcourseentitlement_user_id_c770997b` (`user_id`), + CONSTRAINT `entitlements_histori_history_user_id_a3bc1823_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `embargo_courseaccessrulehistory` +-- Dumping data for table `entitlements_historicalcourseentitlement` -- -LOCK TABLES `embargo_courseaccessrulehistory` WRITE; -/*!40000 ALTER TABLE `embargo_courseaccessrulehistory` DISABLE KEYS */; -/*!40000 ALTER TABLE `embargo_courseaccessrulehistory` ENABLE KEYS */; +LOCK TABLES `entitlements_historicalcourseentitlement` WRITE; +/*!40000 ALTER TABLE `entitlements_historicalcourseentitlement` DISABLE KEYS */; +/*!40000 ALTER TABLE `entitlements_historicalcourseentitlement` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `embargo_embargoedcourse` +-- Table structure for table `entitlements_historicalcourseentitlementsupportdetail` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `embargo_embargoedcourse` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `course_id` varchar(255) NOT NULL, - `embargoed` tinyint(1) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `course_id` (`course_id`) +CREATE TABLE `entitlements_historicalcourseentitlementsupportdetail` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `reason` varchar(15) NOT NULL, + `action` varchar(15) NOT NULL, + `comments` longtext, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `entitlement_id` int(11) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `support_user_id` int(11) DEFAULT NULL, + `unenrolled_run_id` varchar(255) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `entitlements_histori_history_user_id_b00a74ce_fk_auth_user` (`history_user_id`), + KEY `entitlements_historicalcour_id_d019368b` (`id`), + KEY `entitlements_historicalcour_entitlement_id_a5a6c6cc` (`entitlement_id`), + KEY `entitlements_historicalcour_support_user_id_8788841f` (`support_user_id`), + KEY `entitlements_historicalcour_unenrolled_run_id_67b11a08` (`unenrolled_run_id`), + CONSTRAINT `entitlements_histori_history_user_id_b00a74ce_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `embargo_embargoedcourse` +-- Dumping data for table `entitlements_historicalcourseentitlementsupportdetail` -- -LOCK TABLES `embargo_embargoedcourse` WRITE; -/*!40000 ALTER TABLE `embargo_embargoedcourse` DISABLE KEYS */; -/*!40000 ALTER TABLE `embargo_embargoedcourse` ENABLE KEYS */; +LOCK TABLES `entitlements_historicalcourseentitlementsupportdetail` WRITE; +/*!40000 ALTER TABLE `entitlements_historicalcourseentitlementsupportdetail` DISABLE KEYS */; +/*!40000 ALTER TABLE `entitlements_historicalcourseentitlementsupportdetail` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `embargo_embargoedstate` +-- Table structure for table `experiments_experimentdata` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `embargo_embargoedstate` ( +CREATE TABLE `experiments_experimentdata` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `embargoed_countries` longtext NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `experiment_id` smallint(5) unsigned NOT NULL, + `key` varchar(255) NOT NULL, + `value` longtext NOT NULL, + `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `embargo_embargoeds_changed_by_id_7e30811d0e5008b_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `embargo_embargoeds_changed_by_id_7e30811d0e5008b_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `experiments_experimentda_user_id_experiment_id_ke_0ff27a32_uniq` (`user_id`,`experiment_id`,`key`), + KEY `experiments_experimentdata_user_id_experiment_id_15bd1b30_idx` (`user_id`,`experiment_id`), + KEY `experiments_experimentdata_experiment_id_e816cee5` (`experiment_id`), + CONSTRAINT `experiments_experimentdata_user_id_bd6f4720_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `embargo_embargoedstate` +-- Dumping data for table `experiments_experimentdata` -- -LOCK TABLES `embargo_embargoedstate` WRITE; -/*!40000 ALTER TABLE `embargo_embargoedstate` DISABLE KEYS */; -/*!40000 ALTER TABLE `embargo_embargoedstate` ENABLE KEYS */; +LOCK TABLES `experiments_experimentdata` WRITE; +/*!40000 ALTER TABLE `experiments_experimentdata` DISABLE KEYS */; +/*!40000 ALTER TABLE `experiments_experimentdata` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `embargo_ipfilter` +-- Table structure for table `experiments_experimentkeyvalue` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `embargo_ipfilter` ( +CREATE TABLE `experiments_experimentkeyvalue` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `whitelist` longtext NOT NULL, - `blacklist` longtext NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `experiment_id` smallint(5) unsigned NOT NULL, + `key` varchar(255) NOT NULL, + `value` longtext NOT NULL, PRIMARY KEY (`id`), - KEY `embargo_ipfilter_changed_by_id_5c820bfac889ea81_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `embargo_ipfilter_changed_by_id_5c820bfac889ea81_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `experiments_experimentkeyvalue_experiment_id_key_15347f43_uniq` (`experiment_id`,`key`), + KEY `experiments_experimentkeyvalue_experiment_id_741d1a4b` (`experiment_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `embargo_ipfilter` +-- Dumping data for table `experiments_experimentkeyvalue` -- -LOCK TABLES `embargo_ipfilter` WRITE; -/*!40000 ALTER TABLE `embargo_ipfilter` DISABLE KEYS */; -/*!40000 ALTER TABLE `embargo_ipfilter` ENABLE KEYS */; +LOCK TABLES `experiments_experimentkeyvalue` WRITE; +/*!40000 ALTER TABLE `experiments_experimentkeyvalue` DISABLE KEYS */; +/*!40000 ALTER TABLE `experiments_experimentkeyvalue` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `embargo_restrictedcourse` +-- Table structure for table `experiments_historicalexperimentkeyvalue` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `embargo_restrictedcourse` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `course_key` varchar(255) NOT NULL, - `enroll_msg_key` varchar(255) NOT NULL, - `access_msg_key` varchar(255) NOT NULL, - `disable_access_check` tinyint(1) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `course_key` (`course_key`) +CREATE TABLE `experiments_historicalexperimentkeyvalue` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `experiment_id` smallint(5) unsigned NOT NULL, + `key` varchar(255) NOT NULL, + `value` longtext NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `experiments_historic_history_user_id_3892eb1a_fk_auth_user` (`history_user_id`), + KEY `experiments_historicalexperimentkeyvalue_id_13f6f6d3` (`id`), + KEY `experiments_historicalexperimentkeyvalue_experiment_id_6a3c1624` (`experiment_id`), + CONSTRAINT `experiments_historic_history_user_id_3892eb1a_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `embargo_restrictedcourse` +-- Dumping data for table `experiments_historicalexperimentkeyvalue` -- -LOCK TABLES `embargo_restrictedcourse` WRITE; -/*!40000 ALTER TABLE `embargo_restrictedcourse` DISABLE KEYS */; -/*!40000 ALTER TABLE `embargo_restrictedcourse` ENABLE KEYS */; +LOCK TABLES `experiments_historicalexperimentkeyvalue` WRITE; +/*!40000 ALTER TABLE `experiments_historicalexperimentkeyvalue` DISABLE KEYS */; +/*!40000 ALTER TABLE `experiments_historicalexperimentkeyvalue` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `enterprise_enrollmentnotificationemailtemplate` +-- Table structure for table `external_user_ids_externalid` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `enterprise_enrollmentnotificationemailtemplate` ( +CREATE TABLE `external_user_ids_externalid` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `plaintext_template` longtext NOT NULL, - `html_template` longtext NOT NULL, - `subject_line` varchar(100) NOT NULL, - `enterprise_customer_id` char(32) NOT NULL, + `external_user_id` char(32) NOT NULL, + `external_id_type_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `enterprise_customer_id` (`enterprise_customer_id`), - CONSTRAINT `D00946bb46f9643cebba6a818adbfd61` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) + UNIQUE KEY `external_user_id` (`external_user_id`), + UNIQUE KEY `external_user_ids_extern_user_id_external_id_type_cf1d16bc_uniq` (`user_id`,`external_id_type_id`), + KEY `external_user_ids_ex_external_id_type_id_421db1af_fk_external_` (`external_id_type_id`), + CONSTRAINT `external_user_ids_ex_external_id_type_id_421db1af_fk_external_` FOREIGN KEY (`external_id_type_id`) REFERENCES `external_user_ids_externalidtype` (`id`), + CONSTRAINT `external_user_ids_externalid_user_id_7789441b_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `enterprise_enrollmentnotificationemailtemplate` +-- Dumping data for table `external_user_ids_externalid` -- -LOCK TABLES `enterprise_enrollmentnotificationemailtemplate` WRITE; -/*!40000 ALTER TABLE `enterprise_enrollmentnotificationemailtemplate` DISABLE KEYS */; -/*!40000 ALTER TABLE `enterprise_enrollmentnotificationemailtemplate` ENABLE KEYS */; +LOCK TABLES `external_user_ids_externalid` WRITE; +/*!40000 ALTER TABLE `external_user_ids_externalid` DISABLE KEYS */; +/*!40000 ALTER TABLE `external_user_ids_externalid` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `enterprise_enterprisecourseenrollment` +-- Table structure for table `external_user_ids_externalidtype` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `enterprise_enterprisecourseenrollment` ( +CREATE TABLE `external_user_ids_externalidtype` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `course_id` varchar(255) NOT NULL, - `enterprise_customer_user_id` int(11) NOT NULL, + `name` varchar(32) NOT NULL, + `description` longtext NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `enterprise_ente_enterprise_customer_user_id_18f302e179a5aca_uniq` (`enterprise_customer_user_id`,`course_id`), - CONSTRAINT `D69dbba1e57159194d7bba595f75cb24` FOREIGN KEY (`enterprise_customer_user_id`) REFERENCES `enterprise_enterprisecustomeruser` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + UNIQUE KEY `name` (`name`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `enterprise_enterprisecourseenrollment` +-- Dumping data for table `external_user_ids_externalidtype` -- -LOCK TABLES `enterprise_enterprisecourseenrollment` WRITE; -/*!40000 ALTER TABLE `enterprise_enterprisecourseenrollment` DISABLE KEYS */; -/*!40000 ALTER TABLE `enterprise_enterprisecourseenrollment` ENABLE KEYS */; +LOCK TABLES `external_user_ids_externalidtype` WRITE; +/*!40000 ALTER TABLE `external_user_ids_externalidtype` DISABLE KEYS */; +INSERT INTO `external_user_ids_externalidtype` VALUES (1,'2023-02-21 13:30:45.884511','2023-02-21 13:30:45.884511','mb_coaching','MicroBachelors Coaching'),(2,'2023-02-21 13:30:50.619141','2023-02-21 13:30:50.619141','lti','LTI Xblock launches'); +/*!40000 ALTER TABLE `external_user_ids_externalidtype` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `enterprise_enterprisecustomer` +-- Table structure for table `external_user_ids_historicalexternalid` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `enterprise_enterprisecustomer` ( +CREATE TABLE `external_user_ids_historicalexternalid` ( + `id` int(11) NOT NULL, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `uuid` char(32) NOT NULL, - `name` varchar(255) NOT NULL, - `active` tinyint(1) NOT NULL, - `site_id` int(11) NOT NULL, - `catalog` int(10) unsigned DEFAULT NULL, - `enable_data_sharing_consent` tinyint(1) NOT NULL, - `enforce_data_sharing_consent` varchar(25) NOT NULL, - `enable_audit_enrollment` tinyint(1) NOT NULL, - `enable_audit_data_reporting` tinyint(1) NOT NULL, - PRIMARY KEY (`uuid`), - KEY `enterprise_enterprisecustomer_9365d6e7` (`site_id`), - CONSTRAINT `enterprise_enterprise_site_id_41ce54c2601930cd_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) + `external_user_id` char(32) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `external_id_type_id` int(11) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `external_user_ids_hi_history_user_id_fd67f897_fk_auth_user` (`history_user_id`), + KEY `external_user_ids_historicalexternalid_id_1444e43e` (`id`), + KEY `external_user_ids_historicalexternalid_external_user_id_03a5f871` (`external_user_id`), + KEY `external_user_ids_historica_external_id_type_id_74b65da9` (`external_id_type_id`), + KEY `external_user_ids_historicalexternalid_user_id_64337ddb` (`user_id`), + CONSTRAINT `external_user_ids_hi_history_user_id_fd67f897_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `enterprise_enterprisecustomer` +-- Dumping data for table `external_user_ids_historicalexternalid` -- -LOCK TABLES `enterprise_enterprisecustomer` WRITE; -/*!40000 ALTER TABLE `enterprise_enterprisecustomer` DISABLE KEYS */; -/*!40000 ALTER TABLE `enterprise_enterprisecustomer` ENABLE KEYS */; +LOCK TABLES `external_user_ids_historicalexternalid` WRITE; +/*!40000 ALTER TABLE `external_user_ids_historicalexternalid` DISABLE KEYS */; +/*!40000 ALTER TABLE `external_user_ids_historicalexternalid` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `enterprise_enterprisecustomerbrandingconfiguration` +-- Table structure for table `external_user_ids_historicalexternalidtype` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `enterprise_enterprisecustomerbrandingconfiguration` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `external_user_ids_historicalexternalidtype` ( + `id` int(11) NOT NULL, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `logo` varchar(255) DEFAULT NULL, - `enterprise_customer_id` char(32) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `enterprise_customer_id` (`enterprise_customer_id`), - CONSTRAINT `D1fbd8b8ab06c9a5efdee961a7a75e55` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) + `name` varchar(32) NOT NULL, + `description` longtext NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `external_user_ids_hi_history_user_id_6a2c78fc_fk_auth_user` (`history_user_id`), + KEY `external_user_ids_historicalexternalidtype_id_4cc44c83` (`id`), + KEY `external_user_ids_historicalexternalidtype_name_a2e9fa4e` (`name`), + CONSTRAINT `external_user_ids_hi_history_user_id_6a2c78fc_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `enterprise_enterprisecustomerbrandingconfiguration` +-- Dumping data for table `external_user_ids_historicalexternalidtype` -- -LOCK TABLES `enterprise_enterprisecustomerbrandingconfiguration` WRITE; -/*!40000 ALTER TABLE `enterprise_enterprisecustomerbrandingconfiguration` DISABLE KEYS */; -/*!40000 ALTER TABLE `enterprise_enterprisecustomerbrandingconfiguration` ENABLE KEYS */; +LOCK TABLES `external_user_ids_historicalexternalidtype` WRITE; +/*!40000 ALTER TABLE `external_user_ids_historicalexternalidtype` DISABLE KEYS */; +/*!40000 ALTER TABLE `external_user_ids_historicalexternalidtype` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `enterprise_enterprisecustomercatalog` +-- Table structure for table `grades_computegradessetting` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `enterprise_enterprisecustomercatalog` ( - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, - `uuid` char(32) NOT NULL, - `enterprise_customer_id` char(32) NOT NULL, - `content_filter` longtext, - `title` varchar(20) NOT NULL, - `enabled_course_modes` longtext NOT NULL, - `publish_audit_enrollment_urls` tinyint(1) NOT NULL, - PRIMARY KEY (`uuid`), - KEY `D6b10b4c766f4d007227cae59564ac44` (`enterprise_customer_id`), - CONSTRAINT `D6b10b4c766f4d007227cae59564ac44` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) +CREATE TABLE `grades_computegradessetting` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `batch_size` int(11) NOT NULL, + `course_ids` longtext NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `grades_computegrades_changed_by_id_f2bf3678_fk_auth_user` (`changed_by_id`), + CONSTRAINT `grades_computegrades_changed_by_id_f2bf3678_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `enterprise_enterprisecustomercatalog` +-- Dumping data for table `grades_computegradessetting` -- -LOCK TABLES `enterprise_enterprisecustomercatalog` WRITE; -/*!40000 ALTER TABLE `enterprise_enterprisecustomercatalog` DISABLE KEYS */; -/*!40000 ALTER TABLE `enterprise_enterprisecustomercatalog` ENABLE KEYS */; +LOCK TABLES `grades_computegradessetting` WRITE; +/*!40000 ALTER TABLE `grades_computegradessetting` DISABLE KEYS */; +/*!40000 ALTER TABLE `grades_computegradessetting` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `enterprise_enterprisecustomerentitlement` +-- Table structure for table `grades_historicalpersistentsubsectiongradeoverride` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `enterprise_enterprisecustomerentitlement` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `grades_historicalpersistentsubsectiongradeoverride` ( + `id` int(11) NOT NULL, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `entitlement_id` int(10) unsigned NOT NULL, - `enterprise_customer_id` char(32) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `entitlement_id` (`entitlement_id`), - KEY `D294d8114811ae99c12786fb8669866d` (`enterprise_customer_id`), - CONSTRAINT `D294d8114811ae99c12786fb8669866d` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) + `earned_all_override` double DEFAULT NULL, + `possible_all_override` double DEFAULT NULL, + `earned_graded_override` double DEFAULT NULL, + `possible_graded_override` double DEFAULT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `grade_id` bigint(20) unsigned DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `override_reason` varchar(300) DEFAULT NULL, + `system` varchar(100) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `grades_historicalper_history_user_id_05000562_fk_auth_user` (`history_user_id`), + KEY `grades_historicalpersistentsubsectiongradeoverride_id_e30d8953` (`id`), + KEY `grades_historicalpersistent_created_e5fb4d96` (`created`), + KEY `grades_historicalpersistent_modified_7355e846` (`modified`), + KEY `grades_historicalpersistent_grade_id_ecfb45cc` (`grade_id`), + CONSTRAINT `grades_historicalper_history_user_id_05000562_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `enterprise_enterprisecustomerentitlement` +-- Dumping data for table `grades_historicalpersistentsubsectiongradeoverride` -- -LOCK TABLES `enterprise_enterprisecustomerentitlement` WRITE; -/*!40000 ALTER TABLE `enterprise_enterprisecustomerentitlement` DISABLE KEYS */; -/*!40000 ALTER TABLE `enterprise_enterprisecustomerentitlement` ENABLE KEYS */; +LOCK TABLES `grades_historicalpersistentsubsectiongradeoverride` WRITE; +/*!40000 ALTER TABLE `grades_historicalpersistentsubsectiongradeoverride` DISABLE KEYS */; +/*!40000 ALTER TABLE `grades_historicalpersistentsubsectiongradeoverride` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `enterprise_enterprisecustomeridentityprovider` +-- Table structure for table `grades_persistentcoursegrade` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `enterprise_enterprisecustomeridentityprovider` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `grades_persistentcoursegrade` ( `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `provider_id` varchar(50) NOT NULL, - `enterprise_customer_id` char(32) NOT NULL, + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `course_id` varchar(255) NOT NULL, + `course_edited_timestamp` datetime(6) DEFAULT NULL, + `course_version` varchar(255) NOT NULL, + `grading_policy_hash` varchar(255) NOT NULL, + `percent_grade` double NOT NULL, + `letter_grade` varchar(255) NOT NULL, + `passed_timestamp` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `provider_id` (`provider_id`), - UNIQUE KEY `enterprise_customer_id` (`enterprise_customer_id`), - CONSTRAINT `D76e394d5748d37ad29b7fd9ad04ea75` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) + UNIQUE KEY `grades_persistentcoursegrade_course_id_user_id_d7b585c9_uniq` (`course_id`,`user_id`), + KEY `grades_persistentcoursegrade_user_id_b2296589` (`user_id`), + KEY `grades_persistentcoursegr_passed_timestamp_course_i_27d4396e_idx` (`passed_timestamp`,`course_id`), + KEY `grades_persistentcoursegrade_modified_course_id_0e2ef09a_idx` (`modified`,`course_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `enterprise_enterprisecustomeridentityprovider` +-- Dumping data for table `grades_persistentcoursegrade` -- -LOCK TABLES `enterprise_enterprisecustomeridentityprovider` WRITE; -/*!40000 ALTER TABLE `enterprise_enterprisecustomeridentityprovider` DISABLE KEYS */; -/*!40000 ALTER TABLE `enterprise_enterprisecustomeridentityprovider` ENABLE KEYS */; +LOCK TABLES `grades_persistentcoursegrade` WRITE; +/*!40000 ALTER TABLE `grades_persistentcoursegrade` DISABLE KEYS */; +/*!40000 ALTER TABLE `grades_persistentcoursegrade` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `enterprise_enterprisecustomerreportingconfiguration` +-- Table structure for table `grades_persistentsubsectiongrade` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `enterprise_enterprisecustomerreportingconfiguration` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `grades_persistentsubsectiongrade` ( `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `active` tinyint(1) NOT NULL, - `delivery_method` varchar(20) NOT NULL, - `email` varchar(254) NOT NULL, - `frequency` varchar(20) NOT NULL, - `day_of_month` smallint(6) DEFAULT NULL, - `day_of_week` smallint(6) DEFAULT NULL, - `hour_of_day` smallint(6) NOT NULL, - `enterprise_customer_id` char(32) NOT NULL, - `sftp_file_path` varchar(256), - `sftp_hostname` varchar(256), - `sftp_port` int(10) unsigned, - `sftp_username` varchar(256), - `decrypted_password` longblob, - `decrypted_sftp_password` longblob, + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `course_id` varchar(255) NOT NULL, + `usage_key` varchar(255) NOT NULL, + `subtree_edited_timestamp` datetime(6) DEFAULT NULL, + `course_version` varchar(255) NOT NULL, + `earned_all` double NOT NULL, + `possible_all` double NOT NULL, + `earned_graded` double NOT NULL, + `possible_graded` double NOT NULL, + `visible_blocks_hash` varchar(100) NOT NULL, + `first_attempted` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `enterprise_customer_id` (`enterprise_customer_id`), - CONSTRAINT `D8a814303f0ffb6d38fe62b75eb3f96b` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) + UNIQUE KEY `grades_persistentsubsect_course_id_user_id_usage__42820224_uniq` (`course_id`,`user_id`,`usage_key`), + KEY `grades_persistentsub_visible_blocks_hash_20836274_fk_grades_vi` (`visible_blocks_hash`), + KEY `grades_persistentsubsecti_modified_course_id_usage__80ab6572_idx` (`modified`,`course_id`,`usage_key`), + KEY `grades_persistentsubsecti_first_attempted_course_id_f59f063c_idx` (`first_attempted`,`course_id`,`user_id`), + CONSTRAINT `grades_persistentsub_visible_blocks_hash_20836274_fk_grades_vi` FOREIGN KEY (`visible_blocks_hash`) REFERENCES `grades_visibleblocks` (`hashed`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `enterprise_enterprisecustomerreportingconfiguration` +-- Dumping data for table `grades_persistentsubsectiongrade` -- -LOCK TABLES `enterprise_enterprisecustomerreportingconfiguration` WRITE; -/*!40000 ALTER TABLE `enterprise_enterprisecustomerreportingconfiguration` DISABLE KEYS */; -/*!40000 ALTER TABLE `enterprise_enterprisecustomerreportingconfiguration` ENABLE KEYS */; +LOCK TABLES `grades_persistentsubsectiongrade` WRITE; +/*!40000 ALTER TABLE `grades_persistentsubsectiongrade` DISABLE KEYS */; +/*!40000 ALTER TABLE `grades_persistentsubsectiongrade` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `enterprise_enterprisecustomeruser` +-- Table structure for table `grades_persistentsubsectiongradeoverride` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `enterprise_enterprisecustomeruser` ( +CREATE TABLE `grades_persistentsubsectiongradeoverride` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `user_id` int(10) unsigned NOT NULL, - `enterprise_customer_id` char(32) NOT NULL, + `earned_all_override` double DEFAULT NULL, + `possible_all_override` double DEFAULT NULL, + `earned_graded_override` double DEFAULT NULL, + `possible_graded_override` double DEFAULT NULL, + `grade_id` bigint(20) unsigned NOT NULL, + `override_reason` varchar(300) DEFAULT NULL, + `system` varchar(100) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `enterprise_enterpri_enterprise_customer_id_257cf08ca29bc48b_uniq` (`enterprise_customer_id`,`user_id`), - CONSTRAINT `D38bb8d455e64dd8470b7606517efded` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) + UNIQUE KEY `grade_id` (`grade_id`), + KEY `grades_persistentsubsectiongradeoverride_created_f80819d0` (`created`), + KEY `grades_persistentsubsectiongradeoverride_modified_21efde2a` (`modified`), + CONSTRAINT `grades_persistentsub_grade_id_74123016_fk_grades_pe` FOREIGN KEY (`grade_id`) REFERENCES `grades_persistentsubsectiongrade` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `enterprise_enterprisecustomeruser` +-- Dumping data for table `grades_persistentsubsectiongradeoverride` -- -LOCK TABLES `enterprise_enterprisecustomeruser` WRITE; -/*!40000 ALTER TABLE `enterprise_enterprisecustomeruser` DISABLE KEYS */; -/*!40000 ALTER TABLE `enterprise_enterprisecustomeruser` ENABLE KEYS */; +LOCK TABLES `grades_persistentsubsectiongradeoverride` WRITE; +/*!40000 ALTER TABLE `grades_persistentsubsectiongradeoverride` DISABLE KEYS */; +/*!40000 ALTER TABLE `grades_persistentsubsectiongradeoverride` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `enterprise_historicalenrollmentnotificationemailtemplate` +-- Table structure for table `grades_visibleblocks` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `enterprise_historicalenrollmentnotificationemailtemplate` ( - `id` int(11) NOT NULL, - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, - `plaintext_template` longtext NOT NULL, - `html_template` longtext NOT NULL, - `subject_line` varchar(100) NOT NULL, - `history_id` int(11) NOT NULL AUTO_INCREMENT, - `history_date` datetime(6) NOT NULL, - `history_type` varchar(1) NOT NULL, - `history_user_id` int(11) DEFAULT NULL, - `enterprise_customer_id` char(32), - `history_change_reason` varchar(100), - PRIMARY KEY (`history_id`), - KEY `enterprise_hist_history_user_id_1f039ddadc60ca21_fk_auth_user_id` (`history_user_id`), - KEY `enterprise_historicalenrollmentnotificationemailtemplate_b80063a` (`id`), - KEY `enterprise_historicalenrollmentnotificationemailtemplate_8efece6` (`enterprise_customer_id`), - CONSTRAINT `enterprise_hist_history_user_id_1f039ddadc60ca21_fk_auth_user_id` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +CREATE TABLE `grades_visibleblocks` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `blocks_json` longtext NOT NULL, + `hashed` varchar(100) NOT NULL, + `course_id` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `hashed` (`hashed`), + KEY `grades_visibleblocks_course_id_d5f8e206` (`course_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `enterprise_historicalenrollmentnotificationemailtemplate` +-- Dumping data for table `grades_visibleblocks` -- -LOCK TABLES `enterprise_historicalenrollmentnotificationemailtemplate` WRITE; -/*!40000 ALTER TABLE `enterprise_historicalenrollmentnotificationemailtemplate` DISABLE KEYS */; -/*!40000 ALTER TABLE `enterprise_historicalenrollmentnotificationemailtemplate` ENABLE KEYS */; +LOCK TABLES `grades_visibleblocks` WRITE; +/*!40000 ALTER TABLE `grades_visibleblocks` DISABLE KEYS */; +/*!40000 ALTER TABLE `grades_visibleblocks` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `enterprise_historicalenterprisecourseenrollment` +-- Table structure for table `instructor_task_gradereportsetting` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `enterprise_historicalenterprisecourseenrollment` ( - `id` int(11) NOT NULL, - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, - `course_id` varchar(255) NOT NULL, - `history_id` int(11) NOT NULL AUTO_INCREMENT, - `history_date` datetime(6) NOT NULL, - `history_type` varchar(1) NOT NULL, - `enterprise_customer_user_id` int(11) DEFAULT NULL, - `history_user_id` int(11) DEFAULT NULL, - `history_change_reason` varchar(100), - PRIMARY KEY (`history_id`), - KEY `enterprise_hist_history_user_id_7f3d211f9d742591_fk_auth_user_id` (`history_user_id`), - KEY `enterprise_historicalenterprisecourseenrollment_b80bb774` (`id`), - CONSTRAINT `enterprise_hist_history_user_id_7f3d211f9d742591_fk_auth_user_id` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +CREATE TABLE `instructor_task_gradereportsetting` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `batch_size` int(11) NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `instructor_task_grad_changed_by_id_dae9a995_fk_auth_user` (`changed_by_id`), + CONSTRAINT `instructor_task_grad_changed_by_id_dae9a995_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `enterprise_historicalenterprisecourseenrollment` +-- Dumping data for table `instructor_task_gradereportsetting` -- -LOCK TABLES `enterprise_historicalenterprisecourseenrollment` WRITE; -/*!40000 ALTER TABLE `enterprise_historicalenterprisecourseenrollment` DISABLE KEYS */; -/*!40000 ALTER TABLE `enterprise_historicalenterprisecourseenrollment` ENABLE KEYS */; +LOCK TABLES `instructor_task_gradereportsetting` WRITE; +/*!40000 ALTER TABLE `instructor_task_gradereportsetting` DISABLE KEYS */; +/*!40000 ALTER TABLE `instructor_task_gradereportsetting` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `enterprise_historicalenterprisecustomer` +-- Table structure for table `instructor_task_historicalinstructortaskschedule` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `enterprise_historicalenterprisecustomer` ( +CREATE TABLE `instructor_task_historicalinstructortaskschedule` ( + `id` int(11) NOT NULL, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `uuid` char(32) NOT NULL, - `name` varchar(255) NOT NULL, - `active` tinyint(1) NOT NULL, + `task_args` longtext NOT NULL, + `task_due` datetime(6) NOT NULL, `history_id` int(11) NOT NULL AUTO_INCREMENT, `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, `history_type` varchar(1) NOT NULL, `history_user_id` int(11) DEFAULT NULL, - `site_id` int(11) DEFAULT NULL, - `catalog` int(10) unsigned DEFAULT NULL, - `enable_data_sharing_consent` tinyint(1) NOT NULL, - `enforce_data_sharing_consent` varchar(25) NOT NULL, - `enable_audit_enrollment` tinyint(1) NOT NULL, - `enable_audit_data_reporting` tinyint(1) NOT NULL, - `history_change_reason` varchar(100), + `task_id` int(11) DEFAULT NULL, PRIMARY KEY (`history_id`), - KEY `enterprise_hist_history_user_id_2938dabbace21ece_fk_auth_user_id` (`history_user_id`), - KEY `enterprise_historicalenterprisecustomer_ef7c876f` (`uuid`), - KEY `enterprise_historicalenterprisecustomer_9365d6e7` (`site_id`), - CONSTRAINT `enterprise_hist_history_user_id_2938dabbace21ece_fk_auth_user_id` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) + KEY `instructor_task_hist_history_user_id_4a50d181_fk_auth_user` (`history_user_id`), + KEY `instructor_task_historicalinstructortaskschedule_id_e5476408` (`id`), + KEY `instructor_task_historicali_task_id_c3ace79c` (`task_id`), + CONSTRAINT `instructor_task_hist_history_user_id_4a50d181_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `enterprise_historicalenterprisecustomer` +-- Dumping data for table `instructor_task_historicalinstructortaskschedule` -- -LOCK TABLES `enterprise_historicalenterprisecustomer` WRITE; -/*!40000 ALTER TABLE `enterprise_historicalenterprisecustomer` DISABLE KEYS */; -/*!40000 ALTER TABLE `enterprise_historicalenterprisecustomer` ENABLE KEYS */; +LOCK TABLES `instructor_task_historicalinstructortaskschedule` WRITE; +/*!40000 ALTER TABLE `instructor_task_historicalinstructortaskschedule` DISABLE KEYS */; +/*!40000 ALTER TABLE `instructor_task_historicalinstructortaskschedule` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `enterprise_historicalenterprisecustomercatalog` +-- Table structure for table `instructor_task_instructortask` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `enterprise_historicalenterprisecustomercatalog` ( - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, - `uuid` char(32) NOT NULL, - `history_id` int(11) NOT NULL AUTO_INCREMENT, - `history_date` datetime(6) NOT NULL, - `history_type` varchar(1) NOT NULL, - `enterprise_customer_id` char(32) DEFAULT NULL, - `history_user_id` int(11) DEFAULT NULL, - `content_filter` longtext, - `title` varchar(20) NOT NULL, - `enabled_course_modes` longtext NOT NULL, - `history_change_reason` varchar(100), - `publish_audit_enrollment_urls` tinyint(1) NOT NULL, - PRIMARY KEY (`history_id`), - KEY `enterprise_hist_history_user_id_1f0d4124b2b4b2d8_fk_auth_user_id` (`history_user_id`), - KEY `enterprise_historicalenterprisecustomercatalog_ef7c876f` (`uuid`), - CONSTRAINT `enterprise_hist_history_user_id_1f0d4124b2b4b2d8_fk_auth_user_id` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +CREATE TABLE `instructor_task_instructortask` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `task_type` varchar(50) NOT NULL, + `course_id` varchar(255) NOT NULL, + `task_key` varchar(255) NOT NULL, + `task_input` longtext NOT NULL, + `task_id` varchar(255) NOT NULL, + `task_state` varchar(50) DEFAULT NULL, + `task_output` varchar(1024) DEFAULT NULL, + `created` datetime(6) DEFAULT NULL, + `updated` datetime(6) NOT NULL, + `subtasks` longtext NOT NULL, + `requester_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `instructor_task_inst_requester_id_307f955d_fk_auth_user` (`requester_id`), + KEY `instructor_task_instructortask_task_type_cefe183d` (`task_type`), + KEY `instructor_task_instructortask_course_id_b160f709` (`course_id`), + KEY `instructor_task_instructortask_task_key_c1af3961` (`task_key`), + KEY `instructor_task_instructortask_task_id_4aa92d04` (`task_id`), + KEY `instructor_task_instructortask_task_state_3ee4e9cb` (`task_state`), + CONSTRAINT `instructor_task_inst_requester_id_307f955d_fk_auth_user` FOREIGN KEY (`requester_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `enterprise_historicalenterprisecustomercatalog` +-- Dumping data for table `instructor_task_instructortask` -- -LOCK TABLES `enterprise_historicalenterprisecustomercatalog` WRITE; -/*!40000 ALTER TABLE `enterprise_historicalenterprisecustomercatalog` DISABLE KEYS */; -/*!40000 ALTER TABLE `enterprise_historicalenterprisecustomercatalog` ENABLE KEYS */; +LOCK TABLES `instructor_task_instructortask` WRITE; +/*!40000 ALTER TABLE `instructor_task_instructortask` DISABLE KEYS */; +/*!40000 ALTER TABLE `instructor_task_instructortask` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `enterprise_historicalenterprisecustomerentitlement` +-- Table structure for table `instructor_task_instructortaskschedule` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `enterprise_historicalenterprisecustomerentitlement` ( - `id` int(11) NOT NULL, +CREATE TABLE `instructor_task_instructortaskschedule` ( + `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `entitlement_id` int(10) unsigned NOT NULL, - `history_id` int(11) NOT NULL AUTO_INCREMENT, - `history_date` datetime(6) NOT NULL, - `history_type` varchar(1) NOT NULL, - `enterprise_customer_id` char(32) DEFAULT NULL, - `history_user_id` int(11) DEFAULT NULL, - `history_change_reason` varchar(100), - PRIMARY KEY (`history_id`), - KEY `enterprise_hist_history_user_id_41b275d5667e3790_fk_auth_user_id` (`history_user_id`), - KEY `enterprise_historicalenterprisecustomerentitlement_b80bb774` (`id`), - KEY `enterprise_historicalenterprisecustomerentitlement_9a57d8e5` (`entitlement_id`), - CONSTRAINT `enterprise_hist_history_user_id_41b275d5667e3790_fk_auth_user_id` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) + `task_args` longtext NOT NULL, + `task_due` datetime(6) NOT NULL, + `task_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `task_id` (`task_id`), + CONSTRAINT `instructor_task_inst_task_id_7564a79b_fk_instructo` FOREIGN KEY (`task_id`) REFERENCES `instructor_task_instructortask` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `enterprise_historicalenterprisecustomerentitlement` +-- Dumping data for table `instructor_task_instructortaskschedule` -- -LOCK TABLES `enterprise_historicalenterprisecustomerentitlement` WRITE; -/*!40000 ALTER TABLE `enterprise_historicalenterprisecustomerentitlement` DISABLE KEYS */; -/*!40000 ALTER TABLE `enterprise_historicalenterprisecustomerentitlement` ENABLE KEYS */; +LOCK TABLES `instructor_task_instructortaskschedule` WRITE; +/*!40000 ALTER TABLE `instructor_task_instructortaskschedule` DISABLE KEYS */; +/*!40000 ALTER TABLE `instructor_task_instructortaskschedule` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `enterprise_pendingenrollment` +-- Table structure for table `integrated_channel_apiresponserecord` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `enterprise_pendingenrollment` ( +CREATE TABLE `integrated_channel_apiresponserecord` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `course_id` varchar(255) NOT NULL, - `course_mode` varchar(25) NOT NULL, - `user_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `enterprise_pendingenrollment_user_id_111d29e0f8aebec5_uniq` (`user_id`,`course_id`), - CONSTRAINT `a9ce3c7057d5f3b27dc64261037ad37d` FOREIGN KEY (`user_id`) REFERENCES `enterprise_pendingenterprisecustomeruser` (`id`) + `status_code` int(10) unsigned DEFAULT NULL, + `body` longtext, + PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `enterprise_pendingenrollment` +-- Dumping data for table `integrated_channel_apiresponserecord` -- -LOCK TABLES `enterprise_pendingenrollment` WRITE; -/*!40000 ALTER TABLE `enterprise_pendingenrollment` DISABLE KEYS */; -/*!40000 ALTER TABLE `enterprise_pendingenrollment` ENABLE KEYS */; +LOCK TABLES `integrated_channel_apiresponserecord` WRITE; +/*!40000 ALTER TABLE `integrated_channel_apiresponserecord` DISABLE KEYS */; +/*!40000 ALTER TABLE `integrated_channel_apiresponserecord` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `enterprise_pendingenterprisecustomeruser` +-- Table structure for table `integrated_channel_contentmetadataitemtransmission` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `enterprise_pendingenterprisecustomeruser` ( +CREATE TABLE `integrated_channel_contentmetadataitemtransmission` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `user_email` varchar(254) NOT NULL, + `integrated_channel_code` varchar(30) NOT NULL, + `content_id` varchar(255) NOT NULL, + `channel_metadata` longtext NOT NULL, `enterprise_customer_id` char(32) NOT NULL, + `content_last_changed` datetime(6) DEFAULT NULL, + `enterprise_customer_catalog_uuid` char(32) DEFAULT NULL, + `remote_deleted_at` datetime(6) DEFAULT NULL, + `plugin_configuration_id` int(10) unsigned DEFAULT NULL, + `api_response_status_code` int(10) unsigned DEFAULT NULL, + `remote_created_at` datetime(6) DEFAULT NULL, + `remote_updated_at` datetime(6) DEFAULT NULL, + `content_title` varchar(255) DEFAULT NULL, + `friendly_status_message` varchar(255) DEFAULT NULL, + `marked_for` varchar(32) DEFAULT NULL, + `api_record_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `enterprise_pendingenterprisecus_user_email_1838ab42a578cf3c_uniq` (`user_email`), - KEY `D0f27fd26a677554e54740cfe1555271` (`enterprise_customer_id`), - CONSTRAINT `D0f27fd26a677554e54740cfe1555271` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) + UNIQUE KEY `api_record_id` (`api_record_id`), + KEY `integrated_channel_contentm_enterprise_customer_id_f6439bfb` (`enterprise_customer_id`), + KEY `integrated_channel_conten_enterprise_customer_id_in_d0b69e31_idx` (`enterprise_customer_id`,`integrated_channel_code`,`plugin_configuration_id`,`content_id`), + CONSTRAINT `integrated_channel_c_api_record_id_9f45970e_fk_integrate` FOREIGN KEY (`api_record_id`) REFERENCES `integrated_channel_apiresponserecord` (`id`), + CONSTRAINT `integrated_channel_c_enterprise_customer__f6439bfb_fk_enterpris` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `enterprise_pendingenterprisecustomeruser` +-- Dumping data for table `integrated_channel_contentmetadataitemtransmission` -- -LOCK TABLES `enterprise_pendingenterprisecustomeruser` WRITE; -/*!40000 ALTER TABLE `enterprise_pendingenterprisecustomeruser` DISABLE KEYS */; -/*!40000 ALTER TABLE `enterprise_pendingenterprisecustomeruser` ENABLE KEYS */; +LOCK TABLES `integrated_channel_contentmetadataitemtransmission` WRITE; +/*!40000 ALTER TABLE `integrated_channel_contentmetadataitemtransmission` DISABLE KEYS */; +/*!40000 ALTER TABLE `integrated_channel_contentmetadataitemtransmission` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `entitlements_courseentitlement` +-- Table structure for table `integrated_channel_genericenterprisecustomerpluginconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `entitlements_courseentitlement` ( +CREATE TABLE `integrated_channel_genericenterprisecustomerpluginconfiguration` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `uuid` char(32) NOT NULL, - `course_uuid` char(32) NOT NULL, - `expired_at` datetime(6) DEFAULT NULL, - `mode` varchar(100) NOT NULL, - `order_number` varchar(128) DEFAULT NULL, - `enrollment_course_run_id` int(11) DEFAULT NULL, - `user_id` int(11) NOT NULL, - `_policy_id` int(11), + `display_name` varchar(255) NOT NULL, + `idp_id` varchar(255) NOT NULL, + `active` tinyint(1) NOT NULL, + `transmission_chunk_size` int(11) NOT NULL, + `channel_worker_username` varchar(255) NOT NULL, + `catalogs_to_transmit` longtext NOT NULL, + `disable_learner_data_transmissions` tinyint(1) NOT NULL, + `enterprise_customer_id` char(32) NOT NULL, + `dry_run_mode_enabled` tinyint(1) NOT NULL, + `deleted_at` datetime(6) DEFAULT NULL, + `last_content_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_content_sync_errored_at` datetime(6) DEFAULT NULL, + `last_learner_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_learner_sync_errored_at` datetime(6) DEFAULT NULL, + `last_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_sync_errored_at` datetime(6) DEFAULT NULL, + `last_modified_at` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `entitlements_courseentitlement_uuid_a690dd005d0695b_uniq` (`uuid`), - KEY `entitlements_courseentit_user_id_a8df050144d72f8_fk_auth_user_id` (`user_id`), - KEY `fda6bce9129c5afc395658f36b9d444e` (`enrollment_course_run_id`), - KEY `entitlements_courseentitlement_36cddc86` (`_policy_id`), - CONSTRAINT `D2cebc0610e28b9b3a821c839e2fe01c` FOREIGN KEY (`_policy_id`) REFERENCES `entitlements_courseentitlementpolicy` (`id`), - CONSTRAINT `entitlements_courseentit_user_id_a8df050144d72f8_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`), - CONSTRAINT `fda6bce9129c5afc395658f36b9d444e` FOREIGN KEY (`enrollment_course_run_id`) REFERENCES `student_courseenrollment` (`id`) + KEY `integrated_channel_g_enterprise_customer__662cf9ac_fk_enterpris` (`enterprise_customer_id`), + CONSTRAINT `integrated_channel_g_enterprise_customer__662cf9ac_fk_enterpris` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `entitlements_courseentitlement` +-- Dumping data for table `integrated_channel_genericenterprisecustomerpluginconfiguration` -- -LOCK TABLES `entitlements_courseentitlement` WRITE; -/*!40000 ALTER TABLE `entitlements_courseentitlement` DISABLE KEYS */; -/*!40000 ALTER TABLE `entitlements_courseentitlement` ENABLE KEYS */; +LOCK TABLES `integrated_channel_genericenterprisecustomerpluginconfiguration` WRITE; +/*!40000 ALTER TABLE `integrated_channel_genericenterprisecustomerpluginconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `integrated_channel_genericenterprisecustomerpluginconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `entitlements_courseentitlementpolicy` +-- Table structure for table `integrated_channel_genericlearnerdatatransmissionaudit` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `entitlements_courseentitlementpolicy` ( +CREATE TABLE `integrated_channel_genericlearnerdatatransmissionaudit` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `expiration_period` bigint(20) NOT NULL, - `refund_period` bigint(20) NOT NULL, - `regain_period` bigint(20) NOT NULL, - `site_id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `enterprise_customer_uuid` char(32) DEFAULT NULL, + `plugin_configuration_id` int(11) DEFAULT NULL, + `enterprise_course_enrollment_id` int(11) DEFAULT NULL, + `course_id` varchar(255) NOT NULL, + `course_completed` tinyint(1) NOT NULL, + `completed_timestamp` datetime(6) DEFAULT NULL, + `instructor_name` varchar(255) NOT NULL, + `grade` double DEFAULT NULL, + `total_hours` double DEFAULT NULL, + `status` varchar(100) DEFAULT NULL, + `error_message` longtext, + `subsection_id` varchar(255) DEFAULT NULL, + `subsection_name` varchar(255) DEFAULT NULL, + `friendly_status_message` varchar(255) DEFAULT NULL, + `api_record_id` int(11) DEFAULT NULL, + `content_title` varchar(255) DEFAULT NULL, + `progress_status` varchar(255) NOT NULL, + `user_email` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `entitlements_courseen_site_id_5256b0e7f6e039cc_fk_django_site_id` (`site_id`), - CONSTRAINT `entitlements_courseen_site_id_5256b0e7f6e039cc_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) + UNIQUE KEY `api_record_id` (`api_record_id`), + KEY `integrated_channel_genericl_enterprise_course_enrollmen_4f9a5a2a` (`enterprise_course_enrollment_id`), + KEY `integrated_channel_genericl_subsection_id_e1451a08` (`subsection_id`), + CONSTRAINT `integrated_channel_g_api_record_id_5b5e9dfb_fk_integrate` FOREIGN KEY (`api_record_id`) REFERENCES `integrated_channel_apiresponserecord` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `entitlements_courseentitlementpolicy` +-- Dumping data for table `integrated_channel_genericlearnerdatatransmissionaudit` -- -LOCK TABLES `entitlements_courseentitlementpolicy` WRITE; -/*!40000 ALTER TABLE `entitlements_courseentitlementpolicy` DISABLE KEYS */; -/*!40000 ALTER TABLE `entitlements_courseentitlementpolicy` ENABLE KEYS */; +LOCK TABLES `integrated_channel_genericlearnerdatatransmissionaudit` WRITE; +/*!40000 ALTER TABLE `integrated_channel_genericlearnerdatatransmissionaudit` DISABLE KEYS */; +/*!40000 ALTER TABLE `integrated_channel_genericlearnerdatatransmissionaudit` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `experiments_experimentdata` +-- Table structure for table `learner_pathway_progress_historicallearnerpathwayprogress` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `experiments_experimentdata` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `learner_pathway_progress_historicallearnerpathwayprogress` ( + `id` int(11) NOT NULL, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `experiment_id` smallint(5) unsigned NOT NULL, - `key` varchar(255) NOT NULL, - `value` longtext NOT NULL, - `user_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `experiments_experimentdata_user_id_766ad715d1cc0535_uniq` (`user_id`,`experiment_id`,`key`), - KEY `experiments_experimentdata_user_id_17db4fa696359194_idx` (`user_id`,`experiment_id`), - KEY `experiments_experimentdata_abd1812d` (`experiment_id`), - CONSTRAINT `experiments_experimentd_user_id_438ab1d21d4ecc3d_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + `learner_pathway_uuid` char(32) NOT NULL, + `learner_pathway_progress` longtext NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `learner_pathway_prog_history_user_id_72cbc5ff_fk_auth_user` (`history_user_id`), + KEY `learner_pathway_progress_hi_id_4032af49` (`id`), + KEY `learner_pathway_progress_hi_user_id_9b76ad23` (`user_id`), + CONSTRAINT `learner_pathway_prog_history_user_id_72cbc5ff_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `experiments_experimentdata` +-- Dumping data for table `learner_pathway_progress_historicallearnerpathwayprogress` -- -LOCK TABLES `experiments_experimentdata` WRITE; -/*!40000 ALTER TABLE `experiments_experimentdata` DISABLE KEYS */; -/*!40000 ALTER TABLE `experiments_experimentdata` ENABLE KEYS */; +LOCK TABLES `learner_pathway_progress_historicallearnerpathwayprogress` WRITE; +/*!40000 ALTER TABLE `learner_pathway_progress_historicallearnerpathwayprogress` DISABLE KEYS */; +/*!40000 ALTER TABLE `learner_pathway_progress_historicallearnerpathwayprogress` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `experiments_experimentkeyvalue` +-- Table structure for table `learner_pathway_progress_learnerenterprisepathwaymembership` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `experiments_experimentkeyvalue` ( +CREATE TABLE `learner_pathway_progress_learnerenterprisepathwaymembership` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `experiment_id` smallint(5) unsigned NOT NULL, - `key` varchar(255) NOT NULL, - `value` longtext NOT NULL, + `enterprise_customer_uuid` char(32) NOT NULL, + `learner_pathway_uuid` char(32) NOT NULL, + `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `experiments_experimentkeyval_experiment_id_7e8b0ae772b01da6_uniq` (`experiment_id`,`key`), - KEY `experiments_experimentkeyvalue_abd1812d` (`experiment_id`) + UNIQUE KEY `learner_pathway_progress_user_id_learner_pathway__bd6dc3ce_uniq` (`user_id`,`learner_pathway_uuid`,`enterprise_customer_uuid`), + KEY `learner_pathway_progress_le_enterprise_customer_uuid_bb253771` (`enterprise_customer_uuid`), + CONSTRAINT `learner_pathway_prog_user_id_86dea5e8_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `experiments_experimentkeyvalue` +-- Dumping data for table `learner_pathway_progress_learnerenterprisepathwaymembership` -- -LOCK TABLES `experiments_experimentkeyvalue` WRITE; -/*!40000 ALTER TABLE `experiments_experimentkeyvalue` DISABLE KEYS */; -/*!40000 ALTER TABLE `experiments_experimentkeyvalue` ENABLE KEYS */; +LOCK TABLES `learner_pathway_progress_learnerenterprisepathwaymembership` WRITE; +/*!40000 ALTER TABLE `learner_pathway_progress_learnerenterprisepathwaymembership` DISABLE KEYS */; +/*!40000 ALTER TABLE `learner_pathway_progress_learnerenterprisepathwaymembership` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `external_auth_externalauthmap` +-- Table structure for table `learner_pathway_progress_learnerpathwayprogress` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `external_auth_externalauthmap` ( +CREATE TABLE `learner_pathway_progress_learnerpathwayprogress` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `external_id` varchar(255) NOT NULL, - `external_domain` varchar(255) NOT NULL, - `external_credentials` longtext NOT NULL, - `external_email` varchar(255) NOT NULL, - `external_name` varchar(255) NOT NULL, - `internal_password` varchar(31) NOT NULL, - `dtcreated` datetime(6) NOT NULL, - `dtsignup` datetime(6) DEFAULT NULL, - `user_id` int(11) DEFAULT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `learner_pathway_uuid` char(32) NOT NULL, + `learner_pathway_progress` longtext NOT NULL, + `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `external_auth_externalauthmap_external_id_7f035ef8bc4d313e_uniq` (`external_id`,`external_domain`), - UNIQUE KEY `user_id` (`user_id`), - KEY `external_auth_externalauthmap_0e684294` (`external_id`), - KEY `external_auth_externalauthmap_630a0308` (`external_domain`), - KEY `external_auth_externalauthmap_e9425fc5` (`external_email`), - KEY `external_auth_externalauthmap_c9555995` (`external_name`), - CONSTRAINT `external_auth_externala_user_id_644e7779f2d52b9a_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `learner_pathway_progress_user_id_learner_pathway__056d35ab_uniq` (`user_id`,`learner_pathway_uuid`), + CONSTRAINT `learner_pathway_prog_user_id_97c147db_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `external_auth_externalauthmap` +-- Dumping data for table `learner_pathway_progress_learnerpathwayprogress` -- -LOCK TABLES `external_auth_externalauthmap` WRITE; -/*!40000 ALTER TABLE `external_auth_externalauthmap` DISABLE KEYS */; -/*!40000 ALTER TABLE `external_auth_externalauthmap` ENABLE KEYS */; +LOCK TABLES `learner_pathway_progress_learnerpathwayprogress` WRITE; +/*!40000 ALTER TABLE `learner_pathway_progress_learnerpathwayprogress` DISABLE KEYS */; +/*!40000 ALTER TABLE `learner_pathway_progress_learnerpathwayprogress` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `grades_computegradessetting` +-- Table structure for table `learning_sequences_contenterror` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `grades_computegradessetting` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `batch_size` int(11) NOT NULL, - `course_ids` longtext NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, +CREATE TABLE `learning_sequences_contenterror` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `usage_key` varchar(255) DEFAULT NULL, + `message` longtext NOT NULL, + `publish_report_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `grades_computegra_changed_by_id_6599c94d3a43e583_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `grades_computegra_changed_by_id_6599c94d3a43e583_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `learning_sequences_c_publish_report_id_d0ec7d1b_fk_learning_` (`publish_report_id`), + CONSTRAINT `learning_sequences_c_publish_report_id_d0ec7d1b_fk_learning_` FOREIGN KEY (`publish_report_id`) REFERENCES `learning_sequences_publishreport` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `grades_computegradessetting` +-- Dumping data for table `learning_sequences_contenterror` -- -LOCK TABLES `grades_computegradessetting` WRITE; -/*!40000 ALTER TABLE `grades_computegradessetting` DISABLE KEYS */; -/*!40000 ALTER TABLE `grades_computegradessetting` ENABLE KEYS */; +LOCK TABLES `learning_sequences_contenterror` WRITE; +/*!40000 ALTER TABLE `learning_sequences_contenterror` DISABLE KEYS */; +/*!40000 ALTER TABLE `learning_sequences_contenterror` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `grades_coursepersistentgradesflag` +-- Table structure for table `learning_sequences_coursecontext` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `grades_coursepersistentgradesflag` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `course_id` varchar(255) NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `grades_coursepers_changed_by_id_38bec876127ebacc_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `grades_coursepers_changed_by_id_38bec876127ebacc_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +CREATE TABLE `learning_sequences_coursecontext` ( + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `learning_context_id` bigint(20) NOT NULL, + `course_visibility` varchar(32) NOT NULL, + `self_paced` tinyint(1) NOT NULL, + `days_early_for_beta` int(11) DEFAULT NULL, + `entrance_exam_id` varchar(255) DEFAULT NULL, + PRIMARY KEY (`learning_context_id`), + CONSTRAINT `learning_sequences_c_learning_context_id_fe16b41d_fk_learning_` FOREIGN KEY (`learning_context_id`) REFERENCES `learning_sequences_learningcontext` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `grades_coursepersistentgradesflag` +-- Dumping data for table `learning_sequences_coursecontext` -- -LOCK TABLES `grades_coursepersistentgradesflag` WRITE; -/*!40000 ALTER TABLE `grades_coursepersistentgradesflag` DISABLE KEYS */; -/*!40000 ALTER TABLE `grades_coursepersistentgradesflag` ENABLE KEYS */; +LOCK TABLES `learning_sequences_coursecontext` WRITE; +/*!40000 ALTER TABLE `learning_sequences_coursecontext` DISABLE KEYS */; +/*!40000 ALTER TABLE `learning_sequences_coursecontext` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `grades_persistentcoursegrade` +-- Table structure for table `learning_sequences_coursesection` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `grades_persistentcoursegrade` ( - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `user_id` int(11) NOT NULL, - `course_id` varchar(255) NOT NULL, - `course_edited_timestamp` datetime(6) DEFAULT NULL, - `course_version` varchar(255) NOT NULL, - `grading_policy_hash` varchar(255) NOT NULL, - `percent_grade` double NOT NULL, - `letter_grade` varchar(255) NOT NULL, - `passed_timestamp` datetime(6) DEFAULT NULL, +CREATE TABLE `learning_sequences_coursesection` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `ordering` int(10) unsigned NOT NULL, + `usage_key` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, + `title` varchar(1000) NOT NULL, + `hide_from_toc` tinyint(1) NOT NULL, + `visible_to_staff_only` tinyint(1) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `course_context_id` bigint(20) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `grades_persistentcoursegrade_course_id_6c83398a6a9c0872_uniq` (`course_id`,`user_id`), - KEY `grades_persistentcoursegrade_e8701ad4` (`user_id`), - KEY `grades_persistentcoursegra_passed_timestamp_38d17e3e3bc3cb7f_idx` (`passed_timestamp`,`course_id`), - KEY `grades_persistentcoursegrade_modified_33ed872ee90d4a03_idx` (`modified`,`course_id`) + UNIQUE KEY `learning_sequences_cours_course_context_id_usage__0df8eb59_uniq` (`course_context_id`,`usage_key`), + KEY `learning_sequences_course_course_context_id_orderin_ee5cfc42_idx` (`course_context_id`,`ordering`), + CONSTRAINT `learning_sequences_c_course_context_id_f9845b47_fk_learning_` FOREIGN KEY (`course_context_id`) REFERENCES `learning_sequences_coursecontext` (`learning_context_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `grades_persistentcoursegrade` +-- Dumping data for table `learning_sequences_coursesection` -- -LOCK TABLES `grades_persistentcoursegrade` WRITE; -/*!40000 ALTER TABLE `grades_persistentcoursegrade` DISABLE KEYS */; -/*!40000 ALTER TABLE `grades_persistentcoursegrade` ENABLE KEYS */; +LOCK TABLES `learning_sequences_coursesection` WRITE; +/*!40000 ALTER TABLE `learning_sequences_coursesection` DISABLE KEYS */; +/*!40000 ALTER TABLE `learning_sequences_coursesection` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `grades_persistentgradesenabledflag` +-- Table structure for table `learning_sequences_coursesectionsequence` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `grades_persistentgradesenabledflag` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `enabled_for_all_courses` tinyint(1) NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, +CREATE TABLE `learning_sequences_coursesectionsequence` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `ordering` int(10) unsigned NOT NULL, + `hide_from_toc` tinyint(1) NOT NULL, + `visible_to_staff_only` tinyint(1) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `section_id` bigint(20) NOT NULL, + `sequence_id` bigint(20) NOT NULL, + `inaccessible_after_due` tinyint(1) NOT NULL, + `course_context_id` bigint(20) NOT NULL, PRIMARY KEY (`id`), - KEY `grades_persistent_changed_by_id_2350d66400243149_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `grades_persistent_changed_by_id_2350d66400243149_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `learning_sequences_cours_course_context_id_orderi_f233743c_uniq` (`course_context_id`,`ordering`), + KEY `learning_sequences_c_section_id_646c2074_fk_learning_` (`section_id`), + KEY `learning_sequences_c_sequence_id_e6a12a64_fk_learning_` (`sequence_id`), + CONSTRAINT `learning_sequences_c_course_context_id_bb2762af_fk_learning_` FOREIGN KEY (`course_context_id`) REFERENCES `learning_sequences_coursecontext` (`learning_context_id`), + CONSTRAINT `learning_sequences_c_section_id_646c2074_fk_learning_` FOREIGN KEY (`section_id`) REFERENCES `learning_sequences_coursesection` (`id`), + CONSTRAINT `learning_sequences_c_sequence_id_e6a12a64_fk_learning_` FOREIGN KEY (`sequence_id`) REFERENCES `learning_sequences_learningsequence` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `grades_persistentgradesenabledflag` +-- Dumping data for table `learning_sequences_coursesectionsequence` -- -LOCK TABLES `grades_persistentgradesenabledflag` WRITE; -/*!40000 ALTER TABLE `grades_persistentgradesenabledflag` DISABLE KEYS */; -/*!40000 ALTER TABLE `grades_persistentgradesenabledflag` ENABLE KEYS */; +LOCK TABLES `learning_sequences_coursesectionsequence` WRITE; +/*!40000 ALTER TABLE `learning_sequences_coursesectionsequence` DISABLE KEYS */; +/*!40000 ALTER TABLE `learning_sequences_coursesectionsequence` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `grades_persistentsubsectiongrade` +-- Table structure for table `learning_sequences_coursesequenceexam` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `grades_persistentsubsectiongrade` ( +CREATE TABLE `learning_sequences_coursesequenceexam` ( + `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `user_id` int(11) NOT NULL, - `course_id` varchar(255) NOT NULL, - `usage_key` varchar(255) NOT NULL, - `subtree_edited_timestamp` datetime(6) DEFAULT NULL, - `course_version` varchar(255) NOT NULL, - `earned_all` double NOT NULL, - `possible_all` double NOT NULL, - `earned_graded` double NOT NULL, - `possible_graded` double NOT NULL, - `visible_blocks_hash` varchar(100) NOT NULL, - `first_attempted` datetime(6) DEFAULT NULL, + `is_practice_exam` tinyint(1) NOT NULL, + `is_proctored_enabled` tinyint(1) NOT NULL, + `is_time_limited` tinyint(1) NOT NULL, + `course_section_sequence_id` bigint(20) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `grades_persistentsubsectiongrade_course_id_5e423f1e9b6c031_uniq` (`course_id`,`user_id`,`usage_key`), - KEY `grades_persistentsubsectiongrade_2ddf9ac4` (`visible_blocks_hash`), - KEY `grades_persistentsubsectiongrade_modified_63b103f5651501c8_idx` (`modified`,`course_id`,`usage_key`), - KEY `grades_persistentsubsectiong_first_attempted_96c2c1175370fed_idx` (`first_attempted`,`course_id`,`user_id`), - CONSTRAINT `a6bafd85579f2eb43880453893b251a3` FOREIGN KEY (`visible_blocks_hash`) REFERENCES `grades_visibleblocks` (`hashed`) + UNIQUE KEY `course_section_sequence_id` (`course_section_sequence_id`), + CONSTRAINT `learning_sequences_c_course_section_seque_89ce42a5_fk_learning_` FOREIGN KEY (`course_section_sequence_id`) REFERENCES `learning_sequences_coursesectionsequence` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `grades_persistentsubsectiongrade` +-- Dumping data for table `learning_sequences_coursesequenceexam` -- -LOCK TABLES `grades_persistentsubsectiongrade` WRITE; -/*!40000 ALTER TABLE `grades_persistentsubsectiongrade` DISABLE KEYS */; -/*!40000 ALTER TABLE `grades_persistentsubsectiongrade` ENABLE KEYS */; +LOCK TABLES `learning_sequences_coursesequenceexam` WRITE; +/*!40000 ALTER TABLE `learning_sequences_coursesequenceexam` DISABLE KEYS */; +/*!40000 ALTER TABLE `learning_sequences_coursesequenceexam` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `grades_persistentsubsectiongradeoverride` +-- Table structure for table `learning_sequences_learningcontext` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `grades_persistentsubsectiongradeoverride` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `learning_sequences_learningcontext` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `context_key` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, + `title` varchar(255) NOT NULL, + `published_at` datetime(6) NOT NULL, + `published_version` varchar(255) NOT NULL, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `earned_all_override` double DEFAULT NULL, - `possible_all_override` double DEFAULT NULL, - `earned_graded_override` double DEFAULT NULL, - `possible_graded_override` double DEFAULT NULL, - `grade_id` bigint(20) unsigned NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `grade_id` (`grade_id`), - KEY `grades_persistentsubsectiongradeoverride_e2fa5388` (`created`), - KEY `grades_persistentsubsectiongradeoverride_9ae73c65` (`modified`), - CONSTRAINT `D843af3bd266b7666e4f166216719659` FOREIGN KEY (`grade_id`) REFERENCES `grades_persistentsubsectiongrade` (`id`) + UNIQUE KEY `context_key` (`context_key`), + KEY `learning_se_publish_62319b_idx` (`published_at`), + KEY `learning_sequences_learningcontext_title_5a70c4cd` (`title`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `grades_persistentsubsectiongradeoverride` +-- Dumping data for table `learning_sequences_learningcontext` -- -LOCK TABLES `grades_persistentsubsectiongradeoverride` WRITE; -/*!40000 ALTER TABLE `grades_persistentsubsectiongradeoverride` DISABLE KEYS */; -/*!40000 ALTER TABLE `grades_persistentsubsectiongradeoverride` ENABLE KEYS */; +LOCK TABLES `learning_sequences_learningcontext` WRITE; +/*!40000 ALTER TABLE `learning_sequences_learningcontext` DISABLE KEYS */; +/*!40000 ALTER TABLE `learning_sequences_learningcontext` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `grades_visibleblocks` +-- Table structure for table `learning_sequences_learningsequence` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `grades_visibleblocks` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `blocks_json` longtext NOT NULL, - `hashed` varchar(100) NOT NULL, - `course_id` varchar(255) NOT NULL, +CREATE TABLE `learning_sequences_learningsequence` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `learning_context_id` bigint(20) NOT NULL, + `usage_key` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, + `title` varchar(1000) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `hashed` (`hashed`), - KEY `grades_visibleblocks_ea134da7` (`course_id`) + UNIQUE KEY `learning_sequences_learn_learning_context_id_usag_6a13230f_uniq` (`learning_context_id`,`usage_key`), + CONSTRAINT `learning_sequences_l_learning_context_id_25f3e4ab_fk_learning_` FOREIGN KEY (`learning_context_id`) REFERENCES `learning_sequences_learningcontext` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `grades_visibleblocks` +-- Dumping data for table `learning_sequences_learningsequence` -- -LOCK TABLES `grades_visibleblocks` WRITE; -/*!40000 ALTER TABLE `grades_visibleblocks` DISABLE KEYS */; -/*!40000 ALTER TABLE `grades_visibleblocks` ENABLE KEYS */; +LOCK TABLES `learning_sequences_learningsequence` WRITE; +/*!40000 ALTER TABLE `learning_sequences_learningsequence` DISABLE KEYS */; +/*!40000 ALTER TABLE `learning_sequences_learningsequence` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `instructor_task_gradereportsetting` +-- Table structure for table `learning_sequences_publishreport` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `instructor_task_gradereportsetting` ( +CREATE TABLE `learning_sequences_publishreport` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `batch_size` int(11) NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, + `num_errors` int(10) unsigned NOT NULL, + `num_sections` int(10) unsigned NOT NULL, + `num_sequences` int(10) unsigned NOT NULL, + `learning_context_id` bigint(20) NOT NULL, PRIMARY KEY (`id`), - KEY `instructor_task_g_changed_by_id_6a84d49e85aede81_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `instructor_task_g_changed_by_id_6a84d49e85aede81_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `learning_context_id` (`learning_context_id`), + KEY `learning_sequences_publishreport_num_errors_118a5f55` (`num_errors`), + KEY `learning_sequences_publishreport_num_sections_ad9e0ae2` (`num_sections`), + KEY `learning_sequences_publishreport_num_sequences_51743c92` (`num_sequences`), + CONSTRAINT `learning_sequences_p_learning_context_id_dd7a29fd_fk_learning_` FOREIGN KEY (`learning_context_id`) REFERENCES `learning_sequences_learningcontext` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `instructor_task_gradereportsetting` +-- Dumping data for table `learning_sequences_publishreport` -- -LOCK TABLES `instructor_task_gradereportsetting` WRITE; -/*!40000 ALTER TABLE `instructor_task_gradereportsetting` DISABLE KEYS */; -/*!40000 ALTER TABLE `instructor_task_gradereportsetting` ENABLE KEYS */; +LOCK TABLES `learning_sequences_publishreport` WRITE; +/*!40000 ALTER TABLE `learning_sequences_publishreport` DISABLE KEYS */; +/*!40000 ALTER TABLE `learning_sequences_publishreport` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `instructor_task_instructortask` +-- Table structure for table `learning_sequences_sectionpartitiongroup` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `instructor_task_instructortask` ( +CREATE TABLE `learning_sequences_sectionpartitiongroup` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `task_type` varchar(50) NOT NULL, - `course_id` varchar(255) NOT NULL, - `task_key` varchar(255) NOT NULL, - `task_input` varchar(255) NOT NULL, - `task_id` varchar(255) NOT NULL, - `task_state` varchar(50) DEFAULT NULL, - `task_output` varchar(1024) DEFAULT NULL, - `created` datetime(6) DEFAULT NULL, - `updated` datetime(6) NOT NULL, - `subtasks` longtext NOT NULL, - `requester_id` int(11) NOT NULL, + `course_section_id` bigint(20) NOT NULL, + `user_partition_group_id` bigint(20) NOT NULL, PRIMARY KEY (`id`), - KEY `instructor_task_in_requester_id_3383acfe2fe42391_fk_auth_user_id` (`requester_id`), - KEY `instructor_task_instructortask_5361aa34` (`task_type`), - KEY `instructor_task_instructortask_ea134da7` (`course_id`), - KEY `instructor_task_instructortask_a2903537` (`task_key`), - KEY `instructor_task_instructortask_57746cc8` (`task_id`), - KEY `instructor_task_instructortask_76980a94` (`task_state`), - CONSTRAINT `instructor_task_in_requester_id_3383acfe2fe42391_fk_auth_user_id` FOREIGN KEY (`requester_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `learning_sequences_secti_user_partition_group_id__bf44a405_uniq` (`user_partition_group_id`,`course_section_id`), + KEY `learning_sequences_s_course_section_id_1e04b4f2_fk_learning_` (`course_section_id`), + CONSTRAINT `learning_sequences_s_course_section_id_1e04b4f2_fk_learning_` FOREIGN KEY (`course_section_id`) REFERENCES `learning_sequences_coursesection` (`id`), + CONSTRAINT `learning_sequences_s_user_partition_group_39a895cd_fk_learning_` FOREIGN KEY (`user_partition_group_id`) REFERENCES `learning_sequences_userpartitiongroup` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `instructor_task_instructortask` +-- Dumping data for table `learning_sequences_sectionpartitiongroup` -- -LOCK TABLES `instructor_task_instructortask` WRITE; -/*!40000 ALTER TABLE `instructor_task_instructortask` DISABLE KEYS */; -/*!40000 ALTER TABLE `instructor_task_instructortask` ENABLE KEYS */; +LOCK TABLES `learning_sequences_sectionpartitiongroup` WRITE; +/*!40000 ALTER TABLE `learning_sequences_sectionpartitiongroup` DISABLE KEYS */; +/*!40000 ALTER TABLE `learning_sequences_sectionpartitiongroup` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `integrated_channel_catalogtransmissionaudit` +-- Table structure for table `learning_sequences_sectionsequencepartitiongroup` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `integrated_channel_catalogtransmissionaudit` ( +CREATE TABLE `learning_sequences_sectionsequencepartitiongroup` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `enterprise_customer_uuid` char(32) NOT NULL, - `total_courses` int(10) unsigned NOT NULL, - `status` varchar(100) NOT NULL, - `error_message` longtext NOT NULL, - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, - `audit_summary` longtext NOT NULL, - `channel` varchar(30) NOT NULL, - PRIMARY KEY (`id`) + `course_section_sequence_id` bigint(20) NOT NULL, + `user_partition_group_id` bigint(20) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `learning_sequences_secti_user_partition_group_id__44a79d57_uniq` (`user_partition_group_id`,`course_section_sequence_id`), + KEY `learning_sequences_s_course_section_seque_555798e5_fk_learning_` (`course_section_sequence_id`), + CONSTRAINT `learning_sequences_s_course_section_seque_555798e5_fk_learning_` FOREIGN KEY (`course_section_sequence_id`) REFERENCES `learning_sequences_coursesectionsequence` (`id`), + CONSTRAINT `learning_sequences_s_user_partition_group_28eb4c91_fk_learning_` FOREIGN KEY (`user_partition_group_id`) REFERENCES `learning_sequences_userpartitiongroup` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `integrated_channel_catalogtransmissionaudit` +-- Dumping data for table `learning_sequences_sectionsequencepartitiongroup` -- -LOCK TABLES `integrated_channel_catalogtransmissionaudit` WRITE; -/*!40000 ALTER TABLE `integrated_channel_catalogtransmissionaudit` DISABLE KEYS */; -/*!40000 ALTER TABLE `integrated_channel_catalogtransmissionaudit` ENABLE KEYS */; +LOCK TABLES `learning_sequences_sectionsequencepartitiongroup` WRITE; +/*!40000 ALTER TABLE `learning_sequences_sectionsequencepartitiongroup` DISABLE KEYS */; +/*!40000 ALTER TABLE `learning_sequences_sectionsequencepartitiongroup` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `integrated_channel_learnerdatatransmissionaudit` +-- Table structure for table `learning_sequences_userpartitiongroup` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `integrated_channel_learnerdatatransmissionaudit` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `enterprise_course_enrollment_id` int(10) unsigned NOT NULL, - `course_id` varchar(255) NOT NULL, - `course_completed` tinyint(1) NOT NULL, - `completed_timestamp` bigint(20) NOT NULL, - `instructor_name` varchar(255) NOT NULL, - `grade` varchar(100) NOT NULL, - `status` varchar(100) NOT NULL, - `error_message` longtext NOT NULL, - `created` datetime(6) NOT NULL, - PRIMARY KEY (`id`) +CREATE TABLE `learning_sequences_userpartitiongroup` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `partition_id` bigint(20) NOT NULL, + `group_id` bigint(20) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `learning_sequences_userp_partition_id_group_id_a152e36f_uniq` (`partition_id`,`group_id`), + KEY `learning_se_partiti_6e2d28_idx` (`partition_id`,`group_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `integrated_channel_learnerdatatransmissionaudit` +-- Dumping data for table `learning_sequences_userpartitiongroup` -- -LOCK TABLES `integrated_channel_learnerdatatransmissionaudit` WRITE; -/*!40000 ALTER TABLE `integrated_channel_learnerdatatransmissionaudit` DISABLE KEYS */; -/*!40000 ALTER TABLE `integrated_channel_learnerdatatransmissionaudit` ENABLE KEYS */; +LOCK TABLES `learning_sequences_userpartitiongroup` WRITE; +/*!40000 ALTER TABLE `learning_sequences_userpartitiongroup` DISABLE KEYS */; +/*!40000 ALTER TABLE `learning_sequences_userpartitiongroup` ENABLE KEYS */; UNLOCK TABLES; -- @@ -5743,8 +9537,8 @@ CREATE TABLE `lms_xblock_xblockasidesconfig` ( `disabled_blocks` longtext NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `lms_xblock_xblocka_changed_by_id_eabf5ef3e34dfb8_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `lms_xblock_xblocka_changed_by_id_eabf5ef3e34dfb8_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `lms_xblock_xblockasi_changed_by_id_71928be3_fk_auth_user` (`changed_by_id`), + CONSTRAINT `lms_xblock_xblockasi_changed_by_id_71928be3_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -5758,142 +9552,199 @@ LOCK TABLES `lms_xblock_xblockasidesconfig` WRITE; UNLOCK TABLES; -- --- Table structure for table `mentoring_answer` +-- Table structure for table `lti1p3_tool` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `mentoring_answer` ( +CREATE TABLE `lti1p3_tool` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(50) NOT NULL, - `student_id` varchar(32) NOT NULL, - `course_id` varchar(50) NOT NULL, - `student_input` longtext NOT NULL, - `created_on` datetime(6) NOT NULL, - `modified_on` datetime(6) NOT NULL, + `title` varchar(255) NOT NULL, + `is_active` tinyint(1) NOT NULL, + `issuer` varchar(255) NOT NULL, + `client_id` varchar(255) NOT NULL, + `use_by_default` tinyint(1) NOT NULL, + `auth_login_url` varchar(1024) NOT NULL, + `auth_token_url` varchar(1024) NOT NULL, + `auth_audience` varchar(1024) DEFAULT NULL, + `key_set_url` varchar(1024) DEFAULT NULL, + `key_set` longtext, + `deployment_ids` longtext NOT NULL, + `tool_key_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `student_id` (`student_id`,`course_id`,`name`), - KEY `mentoring_answer_b068931c` (`name`), - KEY `mentoring_answer_30a811f6` (`student_id`), - KEY `mentoring_answer_ea134da7` (`course_id`) + UNIQUE KEY `lti1p3_tool_issuer_client_id_b3116be4_uniq` (`issuer`,`client_id`), + KEY `lti1p3_tool_tool_key_id_608be89f_fk_lti1p3_tool_key_id` (`tool_key_id`), + CONSTRAINT `lti1p3_tool_tool_key_id_608be89f_fk_lti1p3_tool_key_id` FOREIGN KEY (`tool_key_id`) REFERENCES `lti1p3_tool_key` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `mentoring_answer` +-- Dumping data for table `lti1p3_tool` -- -LOCK TABLES `mentoring_answer` WRITE; -/*!40000 ALTER TABLE `mentoring_answer` DISABLE KEYS */; -/*!40000 ALTER TABLE `mentoring_answer` ENABLE KEYS */; +LOCK TABLES `lti1p3_tool` WRITE; +/*!40000 ALTER TABLE `lti1p3_tool` DISABLE KEYS */; +/*!40000 ALTER TABLE `lti1p3_tool` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `microsite_configuration_microsite` +-- Table structure for table `lti1p3_tool_key` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `microsite_configuration_microsite` ( +CREATE TABLE `lti1p3_tool_key` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `key` varchar(63) NOT NULL, - `values` longtext NOT NULL, - `site_id` int(11) NOT NULL, + `name` varchar(255) NOT NULL, + `private_key` longtext NOT NULL, + `public_key` longtext, + `public_jwk` longtext, PRIMARY KEY (`id`), - UNIQUE KEY `key` (`key`), - UNIQUE KEY `site_id` (`site_id`), - CONSTRAINT `microsite_configuratio_site_id_3ebe20a76de5aa4_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) + UNIQUE KEY `name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `microsite_configuration_microsite` +-- Dumping data for table `lti1p3_tool_key` -- -LOCK TABLES `microsite_configuration_microsite` WRITE; -/*!40000 ALTER TABLE `microsite_configuration_microsite` DISABLE KEYS */; -/*!40000 ALTER TABLE `microsite_configuration_microsite` ENABLE KEYS */; +LOCK TABLES `lti1p3_tool_key` WRITE; +/*!40000 ALTER TABLE `lti1p3_tool_key` DISABLE KEYS */; +/*!40000 ALTER TABLE `lti1p3_tool_key` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `microsite_configuration_micrositehistory` +-- Table structure for table `lti_consumer_ltiagslineitem` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `microsite_configuration_micrositehistory` ( +CREATE TABLE `lti_consumer_ltiagslineitem` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, - `key` varchar(63) NOT NULL, - `values` longtext NOT NULL, - `site_id` int(11) NOT NULL, + `resource_id` varchar(100) NOT NULL, + `resource_link_id` varchar(255) DEFAULT NULL, + `label` varchar(100) NOT NULL, + `score_maximum` int(11) NOT NULL, + `tag` varchar(50) NOT NULL, + `start_date_time` datetime(6) DEFAULT NULL, + `end_date_time` datetime(6) DEFAULT NULL, + `lti_configuration_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `microsite_configurati_site_id_6977a04d3625a533_fk_django_site_id` (`site_id`), - CONSTRAINT `microsite_configurati_site_id_6977a04d3625a533_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) + KEY `lti_consumer_ltiagsl_lti_configuration_id_03e605a4_fk_lti_consu` (`lti_configuration_id`), + KEY `lti_consumer_ltiagslineitem_resource_link_id_39f87e2f` (`resource_link_id`), + CONSTRAINT `lti_consumer_ltiagsl_lti_configuration_id_03e605a4_fk_lti_consu` FOREIGN KEY (`lti_configuration_id`) REFERENCES `lti_consumer_lticonfiguration` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `microsite_configuration_micrositehistory` +-- Dumping data for table `lti_consumer_ltiagslineitem` -- -LOCK TABLES `microsite_configuration_micrositehistory` WRITE; -/*!40000 ALTER TABLE `microsite_configuration_micrositehistory` DISABLE KEYS */; -/*!40000 ALTER TABLE `microsite_configuration_micrositehistory` ENABLE KEYS */; +LOCK TABLES `lti_consumer_ltiagslineitem` WRITE; +/*!40000 ALTER TABLE `lti_consumer_ltiagslineitem` DISABLE KEYS */; +/*!40000 ALTER TABLE `lti_consumer_ltiagslineitem` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `microsite_configuration_micrositeorganizationmapping` +-- Table structure for table `lti_consumer_ltiagsscore` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `microsite_configuration_micrositeorganizationmapping` ( +CREATE TABLE `lti_consumer_ltiagsscore` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `organization` varchar(63) NOT NULL, - `microsite_id` int(11) NOT NULL, + `timestamp` datetime(6) NOT NULL, + `score_given` double DEFAULT NULL, + `score_maximum` double DEFAULT NULL, + `comment` longtext, + `activity_progress` varchar(20) NOT NULL, + `grading_progress` varchar(20) NOT NULL, + `user_id` varchar(255) NOT NULL, + `line_item_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `organization` (`organization`), - KEY `D1c5d7dbbb2cde12ce18b38d46f71ee0` (`microsite_id`), - CONSTRAINT `D1c5d7dbbb2cde12ce18b38d46f71ee0` FOREIGN KEY (`microsite_id`) REFERENCES `microsite_configuration_microsite` (`id`) + UNIQUE KEY `lti_consumer_ltiagsscore_line_item_id_user_id_887a73e4_uniq` (`line_item_id`,`user_id`), + CONSTRAINT `lti_consumer_ltiagss_line_item_id_168433dc_fk_lti_consu` FOREIGN KEY (`line_item_id`) REFERENCES `lti_consumer_ltiagslineitem` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `microsite_configuration_micrositeorganizationmapping` +-- Dumping data for table `lti_consumer_ltiagsscore` -- -LOCK TABLES `microsite_configuration_micrositeorganizationmapping` WRITE; -/*!40000 ALTER TABLE `microsite_configuration_micrositeorganizationmapping` DISABLE KEYS */; -/*!40000 ALTER TABLE `microsite_configuration_micrositeorganizationmapping` ENABLE KEYS */; +LOCK TABLES `lti_consumer_ltiagsscore` WRITE; +/*!40000 ALTER TABLE `lti_consumer_ltiagsscore` DISABLE KEYS */; +/*!40000 ALTER TABLE `lti_consumer_ltiagsscore` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `microsite_configuration_micrositetemplate` +-- Table structure for table `lti_consumer_lticonfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `microsite_configuration_micrositetemplate` ( +CREATE TABLE `lti_consumer_lticonfiguration` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `template_uri` varchar(255) NOT NULL, - `template` longtext NOT NULL, - `microsite_id` int(11) NOT NULL, + `version` varchar(10) NOT NULL, + `config_store` varchar(255) NOT NULL, + `location` varchar(255) DEFAULT NULL, + `lti_1p3_internal_private_key` longtext NOT NULL, + `lti_1p3_internal_private_key_id` varchar(255) NOT NULL, + `lti_1p3_internal_public_jwk` longtext NOT NULL, + `lti_1p3_client_id` varchar(255) NOT NULL, + `config_id` char(32) NOT NULL, + `lti_1p1_client_key` varchar(255) NOT NULL, + `lti_1p1_client_secret` varchar(255) NOT NULL, + `lti_1p1_launch_url` varchar(255) NOT NULL, + `lti_config` longtext NOT NULL, + `external_id` varchar(255) DEFAULT NULL, + `lti_1p3_launch_url` varchar(255) NOT NULL, + `lti_1p3_oidc_url` varchar(255) NOT NULL, + `lti_1p3_tool_keyset_url` varchar(255) NOT NULL, + `lti_1p3_tool_public_key` longtext NOT NULL, + `lti_advantage_ags_mode` varchar(20) NOT NULL, + `lti_advantage_deep_linking_enabled` tinyint(1) NOT NULL, + `lti_advantage_deep_linking_launch_url` varchar(225) NOT NULL, + `lti_advantage_enable_nrps` tinyint(1) NOT NULL, + `lti_1p3_proctoring_enabled` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `lti_consumer_lticonfiguration_config_id_7e375962_uniq` (`config_id`), + KEY `lti_consumer_lticonfiguration_location_e7e37735` (`location`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `lti_consumer_lticonfiguration` +-- + +LOCK TABLES `lti_consumer_lticonfiguration` WRITE; +/*!40000 ALTER TABLE `lti_consumer_lticonfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `lti_consumer_lticonfiguration` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `lti_consumer_ltidlcontentitem` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `lti_consumer_ltidlcontentitem` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `content_type` varchar(255) NOT NULL, + `attributes` longtext NOT NULL, + `lti_configuration_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `microsite_configuration_micros_microsite_id_80b3f3616d2e317_uniq` (`microsite_id`,`template_uri`), - KEY `microsite_configuration_micrositetemplate_a8b249ec` (`template_uri`), - CONSTRAINT `D4919cbc5f1414d3de93aa9ec9aa48f3` FOREIGN KEY (`microsite_id`) REFERENCES `microsite_configuration_microsite` (`id`) + KEY `lti_consumer_ltidlco_lti_configuration_id_887d35fa_fk_lti_consu` (`lti_configuration_id`), + CONSTRAINT `lti_consumer_ltidlco_lti_configuration_id_887d35fa_fk_lti_consu` FOREIGN KEY (`lti_configuration_id`) REFERENCES `lti_consumer_lticonfiguration` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `microsite_configuration_micrositetemplate` +-- Dumping data for table `lti_consumer_ltidlcontentitem` -- -LOCK TABLES `microsite_configuration_micrositetemplate` WRITE; -/*!40000 ALTER TABLE `microsite_configuration_micrositetemplate` DISABLE KEYS */; -/*!40000 ALTER TABLE `microsite_configuration_micrositetemplate` ENABLE KEYS */; +LOCK TABLES `lti_consumer_ltidlcontentitem` WRITE; +/*!40000 ALTER TABLE `lti_consumer_ltidlcontentitem` DISABLE KEYS */; +/*!40000 ALTER TABLE `lti_consumer_ltidlcontentitem` ENABLE KEYS */; UNLOCK TABLES; -- @@ -5913,14 +9764,14 @@ CREATE TABLE `milestones_coursecontentmilestone` ( `milestone_relationship_type_id` int(11) NOT NULL, `requirements` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `milestones_coursecontentmileston_course_id_68d1457cd52d6dff_uniq` (`course_id`,`content_id`,`milestone_id`), - KEY `milestones_coursecontentmilestone_ea134da7` (`course_id`), - KEY `milestones_coursecontentmilestone_e14f02ad` (`content_id`), - KEY `milestones_coursecontentmilestone_dbb5cd1e` (`milestone_id`), - KEY `milestones_coursecontentmilestone_db6866e3` (`milestone_relationship_type_id`), - KEY `milestones_coursecontentmilestone_active_39b5c645fa33bfee_uniq` (`active`), - CONSTRAINT `D84e404851bc6d6b9fe0d60955e8729c` FOREIGN KEY (`milestone_relationship_type_id`) REFERENCES `milestones_milestonerelationshiptype` (`id`), - CONSTRAINT `milesto_milestone_id_73b6eddde5b205a8_fk_milestones_milestone_id` FOREIGN KEY (`milestone_id`) REFERENCES `milestones_milestone` (`id`) + UNIQUE KEY `milestones_coursecontent_course_id_content_id_mil_7caa5ba5_uniq` (`course_id`,`content_id`,`milestone_id`), + KEY `milestones_coursecon_milestone_id_bd7a608b_fk_milestone` (`milestone_id`), + KEY `milestones_coursecon_milestone_relationsh_31556ebf_fk_milestone` (`milestone_relationship_type_id`), + KEY `milestones_coursecontentmilestone_course_id_6fd3fad0` (`course_id`), + KEY `milestones_coursecontentmilestone_content_id_21f4c95f` (`content_id`), + KEY `milestones_coursecontentmilestone_active_b7ab709d` (`active`), + CONSTRAINT `milestones_coursecon_milestone_id_bd7a608b_fk_milestone` FOREIGN KEY (`milestone_id`) REFERENCES `milestones_milestone` (`id`), + CONSTRAINT `milestones_coursecon_milestone_relationsh_31556ebf_fk_milestone` FOREIGN KEY (`milestone_relationship_type_id`) REFERENCES `milestones_milestonerelationshiptype` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -5948,13 +9799,13 @@ CREATE TABLE `milestones_coursemilestone` ( `milestone_id` int(11) NOT NULL, `milestone_relationship_type_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `milestones_coursemilestone_course_id_5a06e10579eab3b7_uniq` (`course_id`,`milestone_id`), - KEY `milestones_coursemilestone_ea134da7` (`course_id`), - KEY `milestones_coursemilestone_dbb5cd1e` (`milestone_id`), - KEY `milestones_coursemilestone_db6866e3` (`milestone_relationship_type_id`), - KEY `milestones_coursemilestone_active_5c3a925f8cc4bde2_uniq` (`active`), - CONSTRAINT `D69536d0d313008147c5daf5341090e1` FOREIGN KEY (`milestone_relationship_type_id`) REFERENCES `milestones_milestonerelationshiptype` (`id`), - CONSTRAINT `milesto_milestone_id_284153799c54d7d8_fk_milestones_milestone_id` FOREIGN KEY (`milestone_id`) REFERENCES `milestones_milestone` (`id`) + UNIQUE KEY `milestones_coursemilestone_course_id_milestone_id_36b21ae8_uniq` (`course_id`,`milestone_id`), + KEY `milestones_coursemil_milestone_id_03d9ef01_fk_milestone` (`milestone_id`), + KEY `milestones_coursemil_milestone_relationsh_6c64b782_fk_milestone` (`milestone_relationship_type_id`), + KEY `milestones_coursemilestone_course_id_ce46a0fc` (`course_id`), + KEY `milestones_coursemilestone_active_c590442e` (`active`), + CONSTRAINT `milestones_coursemil_milestone_id_03d9ef01_fk_milestone` FOREIGN KEY (`milestone_id`) REFERENCES `milestones_milestone` (`id`), + CONSTRAINT `milestones_coursemil_milestone_relationsh_6c64b782_fk_milestone` FOREIGN KEY (`milestone_relationship_type_id`) REFERENCES `milestones_milestonerelationshiptype` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -5983,10 +9834,10 @@ CREATE TABLE `milestones_milestone` ( `description` longtext NOT NULL, `active` tinyint(1) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `milestones_milestone_namespace_460a2f6943016c0b_uniq` (`namespace`,`name`), - KEY `milestones_milestone_89801e9e` (`namespace`), - KEY `milestones_milestone_b068931c` (`name`), - KEY `milestones_milestone_active_1182ba3c09d42c35_uniq` (`active`) + UNIQUE KEY `milestones_milestone_namespace_name_0b80f867_uniq` (`namespace`,`name`), + KEY `milestones_milestone_namespace_a8e8807c` (`namespace`), + KEY `milestones_milestone_name_23fb0698` (`name`), + KEY `milestones_milestone_active_9a6c1703` (`active`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -6023,7 +9874,7 @@ CREATE TABLE `milestones_milestonerelationshiptype` ( LOCK TABLES `milestones_milestonerelationshiptype` WRITE; /*!40000 ALTER TABLE `milestones_milestonerelationshiptype` DISABLE KEYS */; -INSERT INTO `milestones_milestonerelationshiptype` VALUES (1,'2016-12-17 01:38:31.206255','2016-12-17 01:38:31.207046','fulfills','Autogenerated milestone relationship type \"fulfills\"',1),(2,'2016-12-17 01:38:31.209155','2016-12-17 01:38:31.209526','requires','Autogenerated milestone relationship type \"requires\"',1); +INSERT INTO `milestones_milestonerelationshiptype` VALUES (1,'2023-02-21 13:31:26.094047','2023-02-21 13:31:26.094047','requires','Autogenerated milestone relationship type \"requires\"',1),(2,'2023-02-21 13:31:26.105500','2023-02-21 13:31:26.105500','fulfills','Autogenerated milestone relationship type \"fulfills\"',1); /*!40000 ALTER TABLE `milestones_milestonerelationshiptype` ENABLE KEYS */; UNLOCK TABLES; @@ -6043,144 +9894,347 @@ CREATE TABLE `milestones_usermilestone` ( `active` tinyint(1) NOT NULL, `milestone_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `milestones_usermilestone_user_id_10206aa452468351_uniq` (`user_id`,`milestone_id`), - KEY `milesto_milestone_id_4fe38e3e9994f15c_fk_milestones_milestone_id` (`milestone_id`), - KEY `milestones_usermilestone_e8701ad4` (`user_id`), - KEY `milestones_usermilestone_active_1827f467fe87a8ea_uniq` (`active`), - CONSTRAINT `milesto_milestone_id_4fe38e3e9994f15c_fk_milestones_milestone_id` FOREIGN KEY (`milestone_id`) REFERENCES `milestones_milestone` (`id`) + UNIQUE KEY `milestones_usermilestone_user_id_milestone_id_02197f01_uniq` (`user_id`,`milestone_id`), + KEY `milestones_usermiles_milestone_id_f90f9430_fk_milestone` (`milestone_id`), + KEY `milestones_usermilestone_user_id_b3e9aef4` (`user_id`), + KEY `milestones_usermilestone_active_93a18e7f` (`active`), + CONSTRAINT `milestones_usermiles_milestone_id_f90f9430_fk_milestone` FOREIGN KEY (`milestone_id`) REFERENCES `milestones_milestone` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `milestones_usermilestone` +-- + +LOCK TABLES `milestones_usermilestone` WRITE; +/*!40000 ALTER TABLE `milestones_usermilestone` DISABLE KEYS */; +/*!40000 ALTER TABLE `milestones_usermilestone` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `mobile_api_appversionconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `mobile_api_appversionconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `platform` varchar(50) NOT NULL, + `version` varchar(50) NOT NULL, + `major_version` int(11) NOT NULL, + `minor_version` int(11) NOT NULL, + `patch_version` int(11) NOT NULL, + `expire_at` datetime(6) DEFAULT NULL, + `enabled` tinyint(1) NOT NULL, + `created_at` datetime(6) NOT NULL, + `updated_at` datetime(6) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `mobile_api_appversionconfig_platform_version_6b577430_uniq` (`platform`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `mobile_api_appversionconfig` +-- + +LOCK TABLES `mobile_api_appversionconfig` WRITE; +/*!40000 ALTER TABLE `mobile_api_appversionconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `mobile_api_appversionconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `mobile_api_ignoremobileavailableflagconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `mobile_api_ignoremobileavailableflagconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `mobile_api_ignoremob_changed_by_id_4ca9c0d6_fk_auth_user` (`changed_by_id`), + CONSTRAINT `mobile_api_ignoremob_changed_by_id_4ca9c0d6_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `mobile_api_ignoremobileavailableflagconfig` +-- + +LOCK TABLES `mobile_api_ignoremobileavailableflagconfig` WRITE; +/*!40000 ALTER TABLE `mobile_api_ignoremobileavailableflagconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `mobile_api_ignoremobileavailableflagconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `mobile_api_mobileapiconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `mobile_api_mobileapiconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `video_profiles` longtext NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `mobile_api_mobileapi_changed_by_id_8799981a_fk_auth_user` (`changed_by_id`), + CONSTRAINT `mobile_api_mobileapi_changed_by_id_8799981a_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `mobile_api_mobileapiconfig` +-- + +LOCK TABLES `mobile_api_mobileapiconfig` WRITE; +/*!40000 ALTER TABLE `mobile_api_mobileapiconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `mobile_api_mobileapiconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `mobile_api_mobileconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `mobile_api_mobileconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `name` varchar(255) NOT NULL, + `value` varchar(255) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `mobile_api_mobileconfig` +-- + +LOCK TABLES `mobile_api_mobileconfig` WRITE; +/*!40000 ALTER TABLE `mobile_api_mobileconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `mobile_api_mobileconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `moodle_historicalmoodleenterprisecustomerconfiguration` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `moodle_historicalmoodleenterprisecustomerconfiguration` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `active` tinyint(1) NOT NULL, + `transmission_chunk_size` int(11) NOT NULL, + `channel_worker_username` varchar(255) NOT NULL, + `catalogs_to_transmit` longtext NOT NULL, + `moodle_base_url` varchar(255) NOT NULL, + `service_short_name` varchar(255) NOT NULL, + `category_id` int(11) DEFAULT NULL, + `username` varchar(255) NOT NULL, + `password` varchar(255) NOT NULL, + `token` varchar(255) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `enterprise_customer_id` char(32) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `idp_id` varchar(255) NOT NULL, + `disable_learner_data_transmissions` tinyint(1) NOT NULL, + `display_name` varchar(255) NOT NULL, + `dry_run_mode_enabled` tinyint(1) NOT NULL, + `deleted_at` datetime(6) DEFAULT NULL, + `grade_assignment_name` varchar(255) NOT NULL, + `grade_scale` int(11) NOT NULL, + `last_content_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_content_sync_errored_at` datetime(6) DEFAULT NULL, + `last_learner_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_learner_sync_errored_at` datetime(6) DEFAULT NULL, + `last_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_sync_errored_at` datetime(6) DEFAULT NULL, + `last_modified_at` datetime(6) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `moodle_historicalmoo_history_user_id_22017ee9_fk_auth_user` (`history_user_id`), + KEY `moodle_historicalmoodleente_id_71ddc422` (`id`), + KEY `moodle_historicalmoodleente_enterprise_customer_id_a816d974` (`enterprise_customer_id`), + CONSTRAINT `moodle_historicalmoo_history_user_id_22017ee9_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `milestones_usermilestone` +-- Dumping data for table `moodle_historicalmoodleenterprisecustomerconfiguration` -- -LOCK TABLES `milestones_usermilestone` WRITE; -/*!40000 ALTER TABLE `milestones_usermilestone` DISABLE KEYS */; -/*!40000 ALTER TABLE `milestones_usermilestone` ENABLE KEYS */; +LOCK TABLES `moodle_historicalmoodleenterprisecustomerconfiguration` WRITE; +/*!40000 ALTER TABLE `moodle_historicalmoodleenterprisecustomerconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `moodle_historicalmoodleenterprisecustomerconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `mobile_api_appversionconfig` +-- Table structure for table `moodle_moodleenterprisecustomerconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `mobile_api_appversionconfig` ( +CREATE TABLE `moodle_moodleenterprisecustomerconfiguration` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `platform` varchar(50) NOT NULL, - `version` varchar(50) NOT NULL, - `major_version` int(11) NOT NULL, - `minor_version` int(11) NOT NULL, - `patch_version` int(11) NOT NULL, - `expire_at` datetime(6) DEFAULT NULL, - `enabled` tinyint(1) NOT NULL, - `created_at` datetime(6) NOT NULL, - `updated_at` datetime(6) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `active` tinyint(1) NOT NULL, + `transmission_chunk_size` int(11) NOT NULL, + `channel_worker_username` varchar(255) NOT NULL, + `catalogs_to_transmit` longtext NOT NULL, + `moodle_base_url` varchar(255) NOT NULL, + `service_short_name` varchar(255) NOT NULL, + `category_id` int(11) DEFAULT NULL, + `username` varchar(255) NOT NULL, + `password` varchar(255) NOT NULL, + `token` varchar(255) NOT NULL, + `enterprise_customer_id` char(32) NOT NULL, + `idp_id` varchar(255) NOT NULL, + `disable_learner_data_transmissions` tinyint(1) NOT NULL, + `display_name` varchar(255) NOT NULL, + `dry_run_mode_enabled` tinyint(1) NOT NULL, + `deleted_at` datetime(6) DEFAULT NULL, + `grade_assignment_name` varchar(255) NOT NULL, + `grade_scale` int(11) NOT NULL, + `last_content_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_content_sync_errored_at` datetime(6) DEFAULT NULL, + `last_learner_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_learner_sync_errored_at` datetime(6) DEFAULT NULL, + `last_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_sync_errored_at` datetime(6) DEFAULT NULL, + `last_modified_at` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `mobile_api_appversionconfig_platform_d34993f68d46008_uniq` (`platform`,`version`) + KEY `moodle_moodleenterprisecust_enterprise_customer_id_6668537b` (`enterprise_customer_id`), + CONSTRAINT `moodle_moodleenterpr_enterprise_customer__6668537b_fk_enterpris` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `mobile_api_appversionconfig` +-- Dumping data for table `moodle_moodleenterprisecustomerconfiguration` -- -LOCK TABLES `mobile_api_appversionconfig` WRITE; -/*!40000 ALTER TABLE `mobile_api_appversionconfig` DISABLE KEYS */; -/*!40000 ALTER TABLE `mobile_api_appversionconfig` ENABLE KEYS */; +LOCK TABLES `moodle_moodleenterprisecustomerconfiguration` WRITE; +/*!40000 ALTER TABLE `moodle_moodleenterprisecustomerconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `moodle_moodleenterprisecustomerconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `mobile_api_ignoremobileavailableflagconfig` +-- Table structure for table `moodle_moodlelearnerdatatransmissionaudit` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `mobile_api_ignoremobileavailableflagconfig` ( +CREATE TABLE `moodle_moodlelearnerdatatransmissionaudit` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, + `moodle_user_email` varchar(255) NOT NULL, + `enterprise_course_enrollment_id` int(11) DEFAULT NULL, + `course_id` varchar(255) NOT NULL, + `grade` double DEFAULT NULL, + `total_hours` double DEFAULT NULL, + `course_completed` tinyint(1) NOT NULL, + `moodle_completed_timestamp` varchar(10) DEFAULT NULL, + `status` varchar(100) DEFAULT NULL, + `error_message` longtext, + `created` datetime(6) NOT NULL, + `enterprise_customer_uuid` char(32) DEFAULT NULL, + `instructor_name` varchar(255) NOT NULL, + `modified` datetime(6) NOT NULL, + `plugin_configuration_id` int(11) DEFAULT NULL, + `subsection_id` varchar(255) DEFAULT NULL, + `subsection_name` varchar(255) DEFAULT NULL, + `friendly_status_message` varchar(255) DEFAULT NULL, + `api_record_id` int(11) DEFAULT NULL, + `content_title` varchar(255) DEFAULT NULL, + `progress_status` varchar(255) NOT NULL, + `user_email` varchar(255) DEFAULT NULL, + `completed_timestamp` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `mobile_api_ignore_changed_by_id_754382e31d5f9d51_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `mobile_api_ignore_changed_by_id_754382e31d5f9d51_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `api_record_id` (`api_record_id`), + KEY `moodle_moodlelearnerdatatra_enterprise_course_enrollmen_70fa10d7` (`enterprise_course_enrollment_id`), + KEY `moodle_moodlelearnerdatatransmissionaudit_subsection_id_fcac3b8c` (`subsection_id`), + KEY `moodle_mldta_85936b55_idx` (`enterprise_customer_uuid`,`plugin_configuration_id`), + CONSTRAINT `moodle_moodlelearner_api_record_id_749298db_fk_integrate` FOREIGN KEY (`api_record_id`) REFERENCES `integrated_channel_apiresponserecord` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `mobile_api_ignoremobileavailableflagconfig` +-- Dumping data for table `moodle_moodlelearnerdatatransmissionaudit` -- -LOCK TABLES `mobile_api_ignoremobileavailableflagconfig` WRITE; -/*!40000 ALTER TABLE `mobile_api_ignoremobileavailableflagconfig` DISABLE KEYS */; -/*!40000 ALTER TABLE `mobile_api_ignoremobileavailableflagconfig` ENABLE KEYS */; +LOCK TABLES `moodle_moodlelearnerdatatransmissionaudit` WRITE; +/*!40000 ALTER TABLE `moodle_moodlelearnerdatatransmissionaudit` DISABLE KEYS */; +/*!40000 ALTER TABLE `moodle_moodlelearnerdatatransmissionaudit` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `mobile_api_mobileapiconfig` +-- Table structure for table `nameaffirmation_verifiedname` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `mobile_api_mobileapiconfig` ( +CREATE TABLE `nameaffirmation_verifiedname` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `video_profiles` longtext NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `verified_name` varchar(255) NOT NULL, + `profile_name` varchar(255) DEFAULT NULL, + `verification_attempt_id` int(10) unsigned DEFAULT NULL, + `proctored_exam_attempt_id` int(10) unsigned DEFAULT NULL, + `user_id` int(11) NOT NULL, + `status` varchar(32) NOT NULL, PRIMARY KEY (`id`), - KEY `mobile_api_mobile_changed_by_id_439d2c27670d0fc4_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `mobile_api_mobile_changed_by_id_439d2c27670d0fc4_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `nameaffirmation_verifiedname_user_id_e272fb19_fk_auth_user_id` (`user_id`), + KEY `nameaffirmation_verifiedname_verified_name_7097d450` (`verified_name`), + CONSTRAINT `nameaffirmation_verifiedname_user_id_e272fb19_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `mobile_api_mobileapiconfig` +-- Dumping data for table `nameaffirmation_verifiedname` -- -LOCK TABLES `mobile_api_mobileapiconfig` WRITE; -/*!40000 ALTER TABLE `mobile_api_mobileapiconfig` DISABLE KEYS */; -/*!40000 ALTER TABLE `mobile_api_mobileapiconfig` ENABLE KEYS */; +LOCK TABLES `nameaffirmation_verifiedname` WRITE; +/*!40000 ALTER TABLE `nameaffirmation_verifiedname` DISABLE KEYS */; +/*!40000 ALTER TABLE `nameaffirmation_verifiedname` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `notes_note` +-- Table structure for table `nameaffirmation_verifiednameconfig` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `notes_note` ( +CREATE TABLE `nameaffirmation_verifiednameconfig` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `course_id` varchar(255) NOT NULL, - `uri` varchar(255) NOT NULL, - `text` longtext NOT NULL, - `quote` longtext NOT NULL, - `range_start` varchar(2048) NOT NULL, - `range_start_offset` int(11) NOT NULL, - `range_end` varchar(2048) NOT NULL, - `range_end_offset` int(11) NOT NULL, - `tags` longtext NOT NULL, - `created` datetime(6) DEFAULT NULL, - `updated` datetime(6) NOT NULL, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `use_verified_name_for_certs` tinyint(1) NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `notes_note_user_id_2aa1ff88fd937cb3_fk_auth_user_id` (`user_id`), - KEY `notes_note_ea134da7` (`course_id`), - KEY `notes_note_9305b73d` (`uri`), - KEY `notes_note_e2fa5388` (`created`), - KEY `notes_note_0f81d52e` (`updated`), - CONSTRAINT `notes_note_user_id_2aa1ff88fd937cb3_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + KEY `nameaffirmation_veri_changed_by_id_e6d2f562_fk_auth_user` (`changed_by_id`), + KEY `nameaffirmation_veri_user_id_5b5e177e_fk_auth_user` (`user_id`), + CONSTRAINT `nameaffirmation_veri_changed_by_id_e6d2f562_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `nameaffirmation_veri_user_id_5b5e177e_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `notes_note` +-- Dumping data for table `nameaffirmation_verifiednameconfig` -- -LOCK TABLES `notes_note` WRITE; -/*!40000 ALTER TABLE `notes_note` DISABLE KEYS */; -/*!40000 ALTER TABLE `notes_note` ENABLE KEYS */; +LOCK TABLES `nameaffirmation_verifiednameconfig` WRITE; +/*!40000 ALTER TABLE `nameaffirmation_verifiednameconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `nameaffirmation_verifiednameconfig` ENABLE KEYS */; UNLOCK TABLES; -- @@ -6198,8 +10252,8 @@ CREATE TABLE `notify_notification` ( `created` datetime(6) NOT NULL, `subscription_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `notify_notification_ef42673f` (`subscription_id`), - CONSTRAINT `D48032390695e0699e92b8d7ccdbff7e` FOREIGN KEY (`subscription_id`) REFERENCES `notify_subscription` (`subscription_id`) + KEY `notify_notification_subscription_id_0eae0084_fk_notify_su` (`subscription_id`), + CONSTRAINT `notify_notification_subscription_id_0eae0084_fk_notify_su` FOREIGN KEY (`subscription_id`) REFERENCES `notify_subscription` (`subscription_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -6223,8 +10277,8 @@ CREATE TABLE `notify_notificationtype` ( `label` varchar(128) DEFAULT NULL, `content_type_id` int(11) DEFAULT NULL, PRIMARY KEY (`key`), - KEY `notif_content_type_id_181f055892581fd8_fk_django_content_type_id` (`content_type_id`), - CONSTRAINT `notif_content_type_id_181f055892581fd8_fk_django_content_type_id` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`) + KEY `notify_notificationt_content_type_id_f575bac5_fk_django_co` (`content_type_id`), + CONSTRAINT `notify_notificationt_content_type_id_f575bac5_fk_django_co` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -6248,8 +10302,8 @@ CREATE TABLE `notify_settings` ( `interval` smallint(6) NOT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `notify_settings_user_id_14e062dc3d4345b3_fk_auth_user_id` (`user_id`), - CONSTRAINT `notify_settings_user_id_14e062dc3d4345b3_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + KEY `notify_settings_user_id_088ebffc_fk_auth_user_id` (`user_id`), + CONSTRAINT `notify_settings_user_id_088ebffc_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -6275,10 +10329,10 @@ CREATE TABLE `notify_subscription` ( `notification_type_id` varchar(128) NOT NULL, `settings_id` int(11) NOT NULL, PRIMARY KEY (`subscription_id`), - KEY `a2462650bbefc26547210b80dec61069` (`notification_type_id`), - KEY `notify_subscr_settings_id_64d594d127e8ca95_fk_notify_settings_id` (`settings_id`), - CONSTRAINT `a2462650bbefc26547210b80dec61069` FOREIGN KEY (`notification_type_id`) REFERENCES `notify_notificationtype` (`key`), - CONSTRAINT `notify_subscr_settings_id_64d594d127e8ca95_fk_notify_settings_id` FOREIGN KEY (`settings_id`) REFERENCES `notify_settings` (`id`) + KEY `notify_subscription_notification_type_id_f73a8b13_fk_notify_no` (`notification_type_id`), + KEY `notify_subscription_settings_id_dbc3961d_fk_notify_settings_id` (`settings_id`), + CONSTRAINT `notify_subscription_notification_type_id_f73a8b13_fk_notify_no` FOREIGN KEY (`notification_type_id`) REFERENCES `notify_notificationtype` (`key`), + CONSTRAINT `notify_subscription_settings_id_dbc3961d_fk_notify_settings_id` FOREIGN KEY (`settings_id`) REFERENCES `notify_settings` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -6291,103 +10345,6 @@ LOCK TABLES `notify_subscription` WRITE; /*!40000 ALTER TABLE `notify_subscription` ENABLE KEYS */; UNLOCK TABLES; --- --- Table structure for table `oauth2_accesstoken` --- - -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `oauth2_accesstoken` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `token` varchar(255) NOT NULL, - `expires` datetime(6) NOT NULL, - `scope` int(11) NOT NULL, - `client_id` int(11) NOT NULL, - `user_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `oauth2_accesstoken_94a08da1` (`token`), - KEY `oauth2_accesstoken_2bfe9d72` (`client_id`), - KEY `oauth2_accesstoken_e8701ad4` (`user_id`), - CONSTRAINT `oauth2_accesstoke_client_id_20c73b03a7c139a2_fk_oauth2_client_id` FOREIGN KEY (`client_id`) REFERENCES `oauth2_client` (`id`), - CONSTRAINT `oauth2_accesstoken_user_id_7a865c7085722378_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `oauth2_accesstoken` --- - -LOCK TABLES `oauth2_accesstoken` WRITE; -/*!40000 ALTER TABLE `oauth2_accesstoken` DISABLE KEYS */; -INSERT INTO `oauth2_accesstoken` VALUES (1,'4f18eb17733e5854dde769e1af9032a2e5975b0c','2018-06-07 00:48:11.256868',39,2,4),(2,'69e1bcdf78dbc96086005e1d6c9f695a6712f0ea','2018-06-21 16:09:02.563269',39,2,4),(3,'1d66ef834f77cc45b8b290645f365248627053b4','2019-01-31 21:22:46.293242',39,3,1),(4,'bda601532c7a6e9503fc8e1807fce19254634740','2019-01-31 21:24:46.650858',39,2,4); -/*!40000 ALTER TABLE `oauth2_accesstoken` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `oauth2_client` --- - -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `oauth2_client` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(255) NOT NULL, - `url` varchar(200) NOT NULL, - `redirect_uri` varchar(200) NOT NULL, - `client_id` varchar(255) NOT NULL, - `client_secret` varchar(255) NOT NULL, - `client_type` int(11) NOT NULL, - `user_id` int(11) DEFAULT NULL, - `logout_uri` varchar(200) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `oauth2_client_user_id_2b47284bbd512fe1_fk_auth_user_id` (`user_id`), - CONSTRAINT `oauth2_client_user_id_2b47284bbd512fe1_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `oauth2_client` --- - -LOCK TABLES `oauth2_client` WRITE; -/*!40000 ALTER TABLE `oauth2_client` DISABLE KEYS */; -INSERT INTO `oauth2_client` VALUES (1,'credentials','http://localhost:18150','http://localhost:18150/complete/edx-oidc/','credentials-key','credentials-secret',0,3,'http://localhost:18150/logout/'),(2,'discovery','http://localhost:18381','http://localhost:18381/complete/edx-oidc/','discovery-key','discovery-secret',0,4,'http://localhost:18381/logout/'),(3,'ecommerce','http://localhost:18130','http://localhost:18130/complete/edx-oidc/','ecommerce-key','ecommerce-secret',0,1,'http://localhost:18130/logout/'),(4,'programs','http://localhost:18140','http://localhost:18140/complete/edx-oidc/','programs-key','programs-secret',0,5,'http://localhost:18140/logout/'); -/*!40000 ALTER TABLE `oauth2_client` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `oauth2_grant` --- - -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `oauth2_grant` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(255) NOT NULL, - `expires` datetime(6) NOT NULL, - `redirect_uri` varchar(255) NOT NULL, - `scope` int(11) NOT NULL, - `client_id` int(11) NOT NULL, - `user_id` int(11) NOT NULL, - `nonce` varchar(255) NOT NULL, - PRIMARY KEY (`id`), - KEY `oauth2_grant_user_id_3de96a461bb76819_fk_auth_user_id` (`user_id`), - KEY `oauth2_grant_client_id_7f83b952b3c51985_idx` (`client_id`,`code`,`expires`), - CONSTRAINT `oauth2_grant_client_id_fbfc174fbc856af_fk_oauth2_client_id` FOREIGN KEY (`client_id`) REFERENCES `oauth2_client` (`id`), - CONSTRAINT `oauth2_grant_user_id_3de96a461bb76819_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `oauth2_grant` --- - -LOCK TABLES `oauth2_grant` WRITE; -/*!40000 ALTER TABLE `oauth2_grant` DISABLE KEYS */; -INSERT INTO `oauth2_grant` VALUES (1,'e478ebb176d4b84fbddc2c3b2e6b17bf8a608414','2016-12-17 06:29:58.431878','http://localhost:18381/complete/edx-oidc/',39,2,2,''),(2,'94e3dd2bd8d776bcde855025ece04c02537d17be','2016-12-18 05:21:32.161245','http://localhost:18381/complete/edx-oidc/',39,2,2,''); -/*!40000 ALTER TABLE `oauth2_grant` ENABLE KEYS */; -UNLOCK TABLES; - -- -- Table structure for table `oauth2_provider_accesstoken` -- @@ -6395,19 +10352,24 @@ UNLOCK TABLES; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `oauth2_provider_accesstoken` ( - `id` int(11) NOT NULL AUTO_INCREMENT, + `id` bigint(20) NOT NULL AUTO_INCREMENT, `token` varchar(255) NOT NULL, `expires` datetime(6) NOT NULL, `scope` longtext NOT NULL, - `application_id` int(11) NOT NULL, + `application_id` bigint(20) DEFAULT NULL, `user_id` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `oauth2_provider_accesstoken_token_3f77f86fb4ecbe0f_uniq` (`token`), - KEY `D5ac3019ee1c474fd85718b015e3d3a1` (`application_id`), - KEY `oauth2_provider_accesst_user_id_5e2f004fdebea22d_fk_auth_user_id` (`user_id`), - CONSTRAINT `D5ac3019ee1c474fd85718b015e3d3a1` FOREIGN KEY (`application_id`) REFERENCES `oauth2_provider_application` (`id`), - CONSTRAINT `oauth2_provider_accesst_user_id_5e2f004fdebea22d_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + `created` datetime(6) NOT NULL, + `updated` datetime(6) NOT NULL, + `source_refresh_token_id` bigint(20) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `token` (`token`), + UNIQUE KEY `source_refresh_token_id` (`source_refresh_token_id`), + KEY `oauth2_provider_acce_application_id_b22886e1_fk_oauth2_pr` (`application_id`), + KEY `oauth2_provider_accesstoken_user_id_6e4c9a65_fk_auth_user_id` (`user_id`), + CONSTRAINT `oauth2_provider_acce_application_id_b22886e1_fk_oauth2_pr` FOREIGN KEY (`application_id`) REFERENCES `oauth2_provider_application` (`id`), + CONSTRAINT `oauth2_provider_acce_source_refresh_token_e66fbc72_fk_oauth2_pr` FOREIGN KEY (`source_refresh_token_id`) REFERENCES `oauth2_provider_refreshtoken` (`id`), + CONSTRAINT `oauth2_provider_accesstoken_user_id_6e4c9a65_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6416,6 +10378,7 @@ CREATE TABLE `oauth2_provider_accesstoken` ( LOCK TABLES `oauth2_provider_accesstoken` WRITE; /*!40000 ALTER TABLE `oauth2_provider_accesstoken` DISABLE KEYS */; +INSERT INTO `oauth2_provider_accesstoken` VALUES (1,'9LmBvHCdRKOEsXVPqgregDgaacclKC','2023-02-22 00:41:59.864879','read write email profile',7,11,'2023-02-21 14:41:59.840767','2023-02-21 14:41:59.869501',NULL); /*!40000 ALTER TABLE `oauth2_provider_accesstoken` ENABLE KEYS */; UNLOCK TABLES; @@ -6426,7 +10389,7 @@ UNLOCK TABLES; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `oauth2_provider_application` ( - `id` int(11) NOT NULL AUTO_INCREMENT, + `id` bigint(20) NOT NULL AUTO_INCREMENT, `client_id` varchar(100) NOT NULL, `redirect_uris` longtext NOT NULL, `client_type` varchar(32) NOT NULL, @@ -6435,12 +10398,14 @@ CREATE TABLE `oauth2_provider_application` ( `name` varchar(255) NOT NULL, `user_id` int(11) DEFAULT NULL, `skip_authorization` tinyint(1) NOT NULL, + `created` datetime(6) NOT NULL, + `updated` datetime(6) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `client_id` (`client_id`), - KEY `oauth2_provider_application_9d667c2b` (`client_secret`), - KEY `oauth2_provider_applica_user_id_7fa13387c260b798_fk_auth_user_id` (`user_id`), - CONSTRAINT `oauth2_provider_applica_user_id_7fa13387c260b798_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + KEY `oauth2_provider_application_user_id_79829054_fk_auth_user_id` (`user_id`), + KEY `oauth2_provider_application_client_secret_53133678` (`client_secret`), + CONSTRAINT `oauth2_provider_application_user_id_79829054_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -6449,6 +10414,7 @@ CREATE TABLE `oauth2_provider_application` ( LOCK TABLES `oauth2_provider_application` WRITE; /*!40000 ALTER TABLE `oauth2_provider_application` DISABLE KEYS */; +INSERT INTO `oauth2_provider_application` VALUES (1,'login-service-client-id','','public','password','pvZnl8tp2fTy8OahmJOwZ72b92glVVB8igFF5wOy1KE9HCCvH1pqebamJ1mVBcp1MnrsRcCIjt9rnh4N1XR0ToHW85k5ah9XkicRKpaUHAth3EVghTEe0SXq1HCE4kUt','Login Service for JWT Cookies',2,0,'2023-02-21 14:10:50.956718','2023-02-21 14:10:50.956749'),(2,'enterprise-backend-service-key','','confidential','client-credentials','enterprise-backend-service-secret','enterprise-backend-service',4,0,'2023-02-21 14:19:44.951695','2023-02-21 14:19:44.951755'),(3,'studio-sso-key','http://localhost:18010/complete/edx-oauth2/','confidential','authorization-code','studio-sso-secret','studio-sso',9,1,'2023-02-21 14:29:32.045802','2023-02-21 14:29:32.045858'),(4,'studio-backend-service-key','','confidential','client-credentials','studio-backend-service-secret','studio-backend-service',9,0,'2023-02-21 14:29:42.672176','2023-02-21 14:29:42.672228'),(5,'48JirUwtsCgfpuOCK5RKP1rIpvGQHWK6c3zyvsMf','','confidential','client-credentials','WTYWhvtfCKmkX5Qh3pCWqLn5RAW8I8V9aEhpcwIYk5LTTwRzc1VYQmYMeAOlsetU8hky2RObZt32dtuSo1ILGLhap5VyyFIYn5UXPrW0SiyZoMv6ZK6USFKDTkmkSHpx','retirement',10,0,'2023-02-21 14:30:03.200959','2023-02-21 14:30:03.201010'),(6,'ecommerce-sso-key','http://localhost:18130/complete/edx-oauth2/','confidential','authorization-code','ecommerce-sso-secret','ecommerce-sso',11,1,'2023-02-21 14:39:13.815179','2023-02-21 14:39:13.815235'),(7,'ecommerce-backend-service-key','','confidential','client-credentials','ecommerce-backend-service-secret','ecommerce-backend-service',11,0,'2023-02-21 14:39:29.303725','2023-02-21 14:39:29.303778'); /*!40000 ALTER TABLE `oauth2_provider_application` ENABLE KEYS */; UNLOCK TABLES; @@ -6459,19 +10425,23 @@ UNLOCK TABLES; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `oauth2_provider_grant` ( - `id` int(11) NOT NULL AUTO_INCREMENT, + `id` bigint(20) NOT NULL AUTO_INCREMENT, `code` varchar(255) NOT NULL, `expires` datetime(6) NOT NULL, `redirect_uri` varchar(255) NOT NULL, `scope` longtext NOT NULL, - `application_id` int(11) NOT NULL, + `application_id` bigint(20) NOT NULL, `user_id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `updated` datetime(6) NOT NULL, + `code_challenge` varchar(128) NOT NULL, + `code_challenge_method` varchar(10) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `oauth2_provider_grant_code_a5c88732687483b_uniq` (`code`), - KEY `D6b2a4f1402d4f338b690c38b795830a` (`application_id`), - KEY `oauth2_provider_grant_user_id_3111344894d452da_fk_auth_user_id` (`user_id`), - CONSTRAINT `D6b2a4f1402d4f338b690c38b795830a` FOREIGN KEY (`application_id`) REFERENCES `oauth2_provider_application` (`id`), - CONSTRAINT `oauth2_provider_grant_user_id_3111344894d452da_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `code` (`code`), + KEY `oauth2_provider_gran_application_id_81923564_fk_oauth2_pr` (`application_id`), + KEY `oauth2_provider_grant_user_id_e8f62af8_fk_auth_user_id` (`user_id`), + CONSTRAINT `oauth2_provider_gran_application_id_81923564_fk_oauth2_pr` FOREIGN KEY (`application_id`) REFERENCES `oauth2_provider_application` (`id`), + CONSTRAINT `oauth2_provider_grant_user_id_e8f62af8_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -6491,19 +10461,22 @@ UNLOCK TABLES; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `oauth2_provider_refreshtoken` ( - `id` int(11) NOT NULL AUTO_INCREMENT, + `id` bigint(20) NOT NULL AUTO_INCREMENT, `token` varchar(255) NOT NULL, - `access_token_id` int(11) NOT NULL, - `application_id` int(11) NOT NULL, + `access_token_id` bigint(20) DEFAULT NULL, + `application_id` bigint(20) NOT NULL, `user_id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `updated` datetime(6) NOT NULL, + `revoked` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `access_token_id` (`access_token_id`), - UNIQUE KEY `oauth2_provider_refreshtoken_token_1e4e9388e6a22527_uniq` (`token`), - KEY `d3e264ceec355cabed6ff9976fc42a06` (`application_id`), - KEY `oauth2_provider_refresh_user_id_3f695b639cfbc9a3_fk_auth_user_id` (`user_id`), - CONSTRAINT `b58d9cb3b93afb36b11b7741bf1bcc1a` FOREIGN KEY (`access_token_id`) REFERENCES `oauth2_provider_accesstoken` (`id`), - CONSTRAINT `d3e264ceec355cabed6ff9976fc42a06` FOREIGN KEY (`application_id`) REFERENCES `oauth2_provider_application` (`id`), - CONSTRAINT `oauth2_provider_refresh_user_id_3f695b639cfbc9a3_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `oauth2_provider_refreshtoken_token_revoked_af8a5134_uniq` (`token`,`revoked`), + KEY `oauth2_provider_refr_application_id_2d1c311b_fk_oauth2_pr` (`application_id`), + KEY `oauth2_provider_refreshtoken_user_id_da837fce_fk_auth_user_id` (`user_id`), + CONSTRAINT `oauth2_provider_refr_access_token_id_775e84e8_fk_oauth2_pr` FOREIGN KEY (`access_token_id`) REFERENCES `oauth2_provider_accesstoken` (`id`), + CONSTRAINT `oauth2_provider_refr_application_id_2d1c311b_fk_oauth2_pr` FOREIGN KEY (`application_id`) REFERENCES `oauth2_provider_application` (`id`), + CONSTRAINT `oauth2_provider_refreshtoken_user_id_da837fce_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -6517,60 +10490,58 @@ LOCK TABLES `oauth2_provider_refreshtoken` WRITE; UNLOCK TABLES; -- --- Table structure for table `oauth2_provider_trustedclient` +-- Table structure for table `oauth_dispatch_applicationaccess` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `oauth2_provider_trustedclient` ( +CREATE TABLE `oauth_dispatch_applicationaccess` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `client_id` int(11) NOT NULL, + `scopes` varchar(825) NOT NULL, + `application_id` bigint(20) NOT NULL, + `filters` varchar(825) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `oauth2_provider_tr_client_id_bb96ea0be42c00a_fk_oauth2_client_id` (`client_id`), - CONSTRAINT `oauth2_provider_tr_client_id_bb96ea0be42c00a_fk_oauth2_client_id` FOREIGN KEY (`client_id`) REFERENCES `oauth2_client` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; + UNIQUE KEY `application_id` (`application_id`), + CONSTRAINT `oauth_dispatch_appli_application_id_dcddee6e_fk_oauth2_pr` FOREIGN KEY (`application_id`) REFERENCES `oauth2_provider_application` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `oauth2_provider_trustedclient` +-- Dumping data for table `oauth_dispatch_applicationaccess` -- -LOCK TABLES `oauth2_provider_trustedclient` WRITE; -/*!40000 ALTER TABLE `oauth2_provider_trustedclient` DISABLE KEYS */; -INSERT INTO `oauth2_provider_trustedclient` VALUES (1,1),(2,2),(3,3),(4,4); -/*!40000 ALTER TABLE `oauth2_provider_trustedclient` ENABLE KEYS */; +LOCK TABLES `oauth_dispatch_applicationaccess` WRITE; +/*!40000 ALTER TABLE `oauth_dispatch_applicationaccess` DISABLE KEYS */; +INSERT INTO `oauth_dispatch_applicationaccess` VALUES (1,'user_id',3,NULL),(2,'user_id',6,NULL); +/*!40000 ALTER TABLE `oauth_dispatch_applicationaccess` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `oauth2_refreshtoken` +-- Table structure for table `oauth_dispatch_applicationorganization` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `oauth2_refreshtoken` ( +CREATE TABLE `oauth_dispatch_applicationorganization` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `token` varchar(255) NOT NULL, - `expired` tinyint(1) NOT NULL, - `access_token_id` int(11) NOT NULL, - `client_id` int(11) NOT NULL, - `user_id` int(11) NOT NULL, + `relation_type` varchar(32) NOT NULL, + `application_id` bigint(20) NOT NULL, + `organization_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `access_token_id` (`access_token_id`), - KEY `oauth2_refreshtok_client_id_2f55036ac9aa614e_fk_oauth2_client_id` (`client_id`), - KEY `oauth2_refreshtoken_user_id_acecf94460b787c_fk_auth_user_id` (`user_id`), - CONSTRAINT `oauth2__access_token_id_f99377d503a000b_fk_oauth2_accesstoken_id` FOREIGN KEY (`access_token_id`) REFERENCES `oauth2_accesstoken` (`id`), - CONSTRAINT `oauth2_refreshtok_client_id_2f55036ac9aa614e_fk_oauth2_client_id` FOREIGN KEY (`client_id`) REFERENCES `oauth2_client` (`id`), - CONSTRAINT `oauth2_refreshtoken_user_id_acecf94460b787c_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `oauth_dispatch_applicati_application_id_relation__1b4017f2_uniq` (`application_id`,`relation_type`,`organization_id`), + KEY `oauth_dispatch_appli_organization_id_fe63a7f2_fk_organizat` (`organization_id`), + CONSTRAINT `oauth_dispatch_appli_application_id_dea619c6_fk_oauth2_pr` FOREIGN KEY (`application_id`) REFERENCES `oauth2_provider_application` (`id`), + CONSTRAINT `oauth_dispatch_appli_organization_id_fe63a7f2_fk_organizat` FOREIGN KEY (`organization_id`) REFERENCES `organizations_organization` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `oauth2_refreshtoken` +-- Dumping data for table `oauth_dispatch_applicationorganization` -- -LOCK TABLES `oauth2_refreshtoken` WRITE; -/*!40000 ALTER TABLE `oauth2_refreshtoken` DISABLE KEYS */; -/*!40000 ALTER TABLE `oauth2_refreshtoken` ENABLE KEYS */; +LOCK TABLES `oauth_dispatch_applicationorganization` WRITE; +/*!40000 ALTER TABLE `oauth_dispatch_applicationorganization` DISABLE KEYS */; +/*!40000 ALTER TABLE `oauth_dispatch_applicationorganization` ENABLE KEYS */; UNLOCK TABLES; -- @@ -6581,10 +10552,10 @@ UNLOCK TABLES; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `oauth_dispatch_restrictedapplication` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `application_id` int(11) NOT NULL, + `application_id` bigint(20) NOT NULL, PRIMARY KEY (`id`), - KEY `d0faf25b802e0044a322123f797a61c7` (`application_id`), - CONSTRAINT `d0faf25b802e0044a322123f797a61c7` FOREIGN KEY (`application_id`) REFERENCES `oauth2_provider_application` (`id`) + KEY `oauth_dispatch_restr_application_id_6b8d0930_fk_oauth2_pr` (`application_id`), + CONSTRAINT `oauth_dispatch_restr_application_id_6b8d0930_fk_oauth2_pr` FOREIGN KEY (`application_id`) REFERENCES `oauth2_provider_application` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -6598,121 +10569,77 @@ LOCK TABLES `oauth_dispatch_restrictedapplication` WRITE; UNLOCK TABLES; -- --- Table structure for table `oauth_provider_consumer` --- - -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `oauth_provider_consumer` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(255) NOT NULL, - `description` longtext NOT NULL, - `key` varchar(256) NOT NULL, - `secret` varchar(16) NOT NULL, - `status` smallint(6) NOT NULL, - `xauth_allowed` tinyint(1) NOT NULL, - `user_id` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `oauth_provider_consumer_user_id_4f22b60d2b258006_fk_auth_user_id` (`user_id`), - CONSTRAINT `oauth_provider_consumer_user_id_4f22b60d2b258006_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `oauth_provider_consumer` --- - -LOCK TABLES `oauth_provider_consumer` WRITE; -/*!40000 ALTER TABLE `oauth_provider_consumer` DISABLE KEYS */; -/*!40000 ALTER TABLE `oauth_provider_consumer` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `oauth_provider_nonce` --- - -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `oauth_provider_nonce` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `token_key` varchar(32) NOT NULL, - `consumer_key` varchar(256) NOT NULL, - `key` varchar(255) NOT NULL, - `timestamp` int(10) unsigned NOT NULL, - PRIMARY KEY (`id`), - KEY `oauth_provider_nonce_d7e6d55b` (`timestamp`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `oauth_provider_nonce` --- - -LOCK TABLES `oauth_provider_nonce` WRITE; -/*!40000 ALTER TABLE `oauth_provider_nonce` DISABLE KEYS */; -/*!40000 ALTER TABLE `oauth_provider_nonce` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `oauth_provider_scope` +-- Table structure for table `organizations_historicalorganization` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `oauth_provider_scope` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `organizations_historicalorganization` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, `name` varchar(255) NOT NULL, - `url` longtext NOT NULL, - `is_readonly` tinyint(1) NOT NULL, - PRIMARY KEY (`id`) + `short_name` varchar(255) NOT NULL, + `description` longtext, + `logo` longtext, + `active` tinyint(1) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `organizations_histor_history_user_id_bb516493_fk_auth_user` (`history_user_id`), + KEY `organizations_historicalorganization_id_4327d8f9` (`id`), + KEY `organizations_historicalorganization_name_5f4e354b` (`name`), + KEY `organizations_historicalorganization_short_name_07087b46` (`short_name`), + CONSTRAINT `organizations_histor_history_user_id_bb516493_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `oauth_provider_scope` +-- Dumping data for table `organizations_historicalorganization` -- -LOCK TABLES `oauth_provider_scope` WRITE; -/*!40000 ALTER TABLE `oauth_provider_scope` DISABLE KEYS */; -/*!40000 ALTER TABLE `oauth_provider_scope` ENABLE KEYS */; +LOCK TABLES `organizations_historicalorganization` WRITE; +/*!40000 ALTER TABLE `organizations_historicalorganization` DISABLE KEYS */; +/*!40000 ALTER TABLE `organizations_historicalorganization` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `oauth_provider_token` +-- Table structure for table `organizations_historicalorganizationcourse` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `oauth_provider_token` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `key` varchar(32) DEFAULT NULL, - `secret` varchar(16) DEFAULT NULL, - `token_type` smallint(6) NOT NULL, - `timestamp` int(11) NOT NULL, - `is_approved` tinyint(1) NOT NULL, - `verifier` varchar(10) NOT NULL, - `callback` varchar(2083) DEFAULT NULL, - `callback_confirmed` tinyint(1) NOT NULL, - `consumer_id` int(11) NOT NULL, - `scope_id` int(11) DEFAULT NULL, - `user_id` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `oauth_consumer_id_1b9915b5bcf1ee5b_fk_oauth_provider_consumer_id` (`consumer_id`), - KEY `oauth_provi_scope_id_459821b6fecbc02a_fk_oauth_provider_scope_id` (`scope_id`), - KEY `oauth_provider_token_user_id_588adbcffc892186_fk_auth_user_id` (`user_id`), - CONSTRAINT `oauth_consumer_id_1b9915b5bcf1ee5b_fk_oauth_provider_consumer_id` FOREIGN KEY (`consumer_id`) REFERENCES `oauth_provider_consumer` (`id`), - CONSTRAINT `oauth_provi_scope_id_459821b6fecbc02a_fk_oauth_provider_scope_id` FOREIGN KEY (`scope_id`) REFERENCES `oauth_provider_scope` (`id`), - CONSTRAINT `oauth_provider_token_user_id_588adbcffc892186_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +CREATE TABLE `organizations_historicalorganizationcourse` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `course_id` varchar(255) NOT NULL, + `active` tinyint(1) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `organization_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `organizations_histor_history_user_id_0f165c1b_fk_auth_user` (`history_user_id`), + KEY `organizations_historicalorganizationcourse_id_9a1564c8` (`id`), + KEY `organizations_historicalorganizationcourse_course_id_4c93708c` (`course_id`), + KEY `organizations_historicalorg_organization_id_7cc0ed83` (`organization_id`), + CONSTRAINT `organizations_histor_history_user_id_0f165c1b_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `oauth_provider_token` +-- Dumping data for table `organizations_historicalorganizationcourse` -- -LOCK TABLES `oauth_provider_token` WRITE; -/*!40000 ALTER TABLE `oauth_provider_token` DISABLE KEYS */; -/*!40000 ALTER TABLE `oauth_provider_token` ENABLE KEYS */; +LOCK TABLES `organizations_historicalorganizationcourse` WRITE; +/*!40000 ALTER TABLE `organizations_historicalorganizationcourse` DISABLE KEYS */; +/*!40000 ALTER TABLE `organizations_historicalorganizationcourse` ENABLE KEYS */; UNLOCK TABLES; -- @@ -6731,8 +10658,8 @@ CREATE TABLE `organizations_organization` ( `logo` varchar(255) DEFAULT NULL, `active` tinyint(1) NOT NULL, PRIMARY KEY (`id`), - KEY `organizations_organization_b068931c` (`name`), - KEY `organizations_organization_4698bac7` (`short_name`) + UNIQUE KEY `organizations_organization_short_name_ef338963_uniq` (`short_name`), + KEY `organizations_organization_name_71edc74b` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -6759,10 +10686,10 @@ CREATE TABLE `organizations_organizationcourse` ( `active` tinyint(1) NOT NULL, `organization_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `organizations_organizationcourse_course_id_3f0149776c0495ff_uniq` (`course_id`,`organization_id`), - KEY `a7b04b16eba98e518fbe21d390bd8e3e` (`organization_id`), - KEY `organizations_organizationcourse_ea134da7` (`course_id`), - CONSTRAINT `a7b04b16eba98e518fbe21d390bd8e3e` FOREIGN KEY (`organization_id`) REFERENCES `organizations_organization` (`id`) + UNIQUE KEY `organizations_organizati_course_id_organization_i_06b1db31_uniq` (`course_id`,`organization_id`), + KEY `organizations_organi_organization_id_99e77fe0_fk_organizat` (`organization_id`), + KEY `organizations_organizationcourse_course_id_227b73bc` (`course_id`), + CONSTRAINT `organizations_organi_organization_id_99e77fe0_fk_organizat` FOREIGN KEY (`organization_id`) REFERENCES `organizations_organization` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -6776,1292 +10703,1328 @@ LOCK TABLES `organizations_organizationcourse` WRITE; UNLOCK TABLES; -- --- Table structure for table `problem_builder_answer` --- - -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `problem_builder_answer` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(50) NOT NULL, - `student_id` varchar(32) NOT NULL, - `student_input` longtext NOT NULL, - `created_on` datetime(6) NOT NULL, - `modified_on` datetime(6) NOT NULL, - `course_key` varchar(255) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `problem_builder_answer_student_id_2ce682a818c95cbc_uniq` (`student_id`,`course_key`,`name`), - KEY `problem_builder_answer_b068931c` (`name`), - KEY `problem_builder_answer_30a811f6` (`student_id`), - KEY `problem_builder_answer_c8235886` (`course_key`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `problem_builder_answer` --- - -LOCK TABLES `problem_builder_answer` WRITE; -/*!40000 ALTER TABLE `problem_builder_answer` DISABLE KEYS */; -/*!40000 ALTER TABLE `problem_builder_answer` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `problem_builder_share` +-- Table structure for table `outcome_surveys_coursegoal` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `problem_builder_share` ( +CREATE TABLE `outcome_surveys_coursegoal` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `submission_uid` varchar(32) NOT NULL, - `block_id` varchar(255) NOT NULL, - `notified` tinyint(1) NOT NULL, - `shared_by_id` int(11) NOT NULL, - `shared_with_id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `survey_id` int(11) NOT NULL, + `survey_response_id` bigint(20) NOT NULL, + `enrollment_type` varchar(16) DEFAULT NULL, + `lms_enrollment_id` int(11) DEFAULT NULL, + `goal_achieved` tinyint(1) DEFAULT NULL, + `online_learning_goal` longtext, + `open_to_outreach` tinyint(1) DEFAULT NULL, + `salary_change` tinyint(1) DEFAULT NULL, + `job_promotion` tinyint(1) DEFAULT NULL, + `learning_experience_importance` varchar(256) DEFAULT NULL, + `experience_impacted_goals` longtext, + `close_to_goal` varchar(256) DEFAULT NULL, + `factors_influenced_timeline` longtext, + `achieve_goal_sooner` longtext, PRIMARY KEY (`id`), - UNIQUE KEY `problem_builder_share_shared_by_id_4e845ea266d66e1_uniq` (`shared_by_id`,`shared_with_id`,`block_id`), - KEY `problem_builder__shared_with_id_573844d7dca07647_fk_auth_user_id` (`shared_with_id`), - KEY `problem_builder_share_7e53bca2` (`block_id`), - KEY `problem_builder_share_e559ad34` (`notified`), - CONSTRAINT `problem_builder__shared_with_id_573844d7dca07647_fk_auth_user_id` FOREIGN KEY (`shared_with_id`) REFERENCES `auth_user` (`id`), - CONSTRAINT `problem_builder_sh_shared_by_id_35201b15adc664ce_fk_auth_user_id` FOREIGN KEY (`shared_by_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `outcome_surveys_coursego_survey_id_survey_respons_cb97bf9e_uniq` (`survey_id`,`survey_response_id`), + KEY `outcome_sur_lms_enr_9c26bd_idx` (`lms_enrollment_id`), + KEY `outcome_sur_survey__8d827f_idx` (`survey_id`,`survey_response_id`), + KEY `outcome_sur_survey__f64c25_idx` (`survey_response_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `problem_builder_share` +-- Dumping data for table `outcome_surveys_coursegoal` -- -LOCK TABLES `problem_builder_share` WRITE; -/*!40000 ALTER TABLE `problem_builder_share` DISABLE KEYS */; -/*!40000 ALTER TABLE `problem_builder_share` ENABLE KEYS */; +LOCK TABLES `outcome_surveys_coursegoal` WRITE; +/*!40000 ALTER TABLE `outcome_surveys_coursegoal` DISABLE KEYS */; +/*!40000 ALTER TABLE `outcome_surveys_coursegoal` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `proctoring_proctoredexam` +-- Table structure for table `outcome_surveys_coursegoal_online_learning_goals` -- /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `proctoring_proctoredexam` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, - `course_id` varchar(255) NOT NULL, - `content_id` varchar(255) NOT NULL, - `external_id` varchar(255) DEFAULT NULL, - `exam_name` longtext NOT NULL, - `time_limit_mins` int(11) NOT NULL, - `due_date` datetime(6) DEFAULT NULL, - `is_proctored` tinyint(1) NOT NULL, - `is_practice_exam` tinyint(1) NOT NULL, - `is_active` tinyint(1) NOT NULL, - `hide_after_due` tinyint(1) NOT NULL, +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `outcome_surveys_coursegoal_online_learning_goals` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `coursegoal_id` int(11) NOT NULL, + `multichoiceresponse_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `proctoring_proctoredexam_course_id_7d8ab189323890c0_uniq` (`course_id`,`content_id`), - KEY `proctoring_proctoredexam_ea134da7` (`course_id`), - KEY `proctoring_proctoredexam_e14f02ad` (`content_id`), - KEY `proctoring_proctoredexam_0e684294` (`external_id`) + UNIQUE KEY `outcome_surveys_coursego_coursegoal_id_multichoic_bb8f094a_uniq` (`coursegoal_id`,`multichoiceresponse_id`), + KEY `outcome_surveys_cour_multichoiceresponse__332c96b0_fk_outcome_s` (`multichoiceresponse_id`), + CONSTRAINT `outcome_surveys_cour_coursegoal_id_4f4f26d1_fk_outcome_s` FOREIGN KEY (`coursegoal_id`) REFERENCES `outcome_surveys_coursegoal` (`id`), + CONSTRAINT `outcome_surveys_cour_multichoiceresponse__332c96b0_fk_outcome_s` FOREIGN KEY (`multichoiceresponse_id`) REFERENCES `outcome_surveys_multichoiceresponse` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `proctoring_proctoredexam` +-- Dumping data for table `outcome_surveys_coursegoal_online_learning_goals` -- -LOCK TABLES `proctoring_proctoredexam` WRITE; -/*!40000 ALTER TABLE `proctoring_proctoredexam` DISABLE KEYS */; -/*!40000 ALTER TABLE `proctoring_proctoredexam` ENABLE KEYS */; +LOCK TABLES `outcome_surveys_coursegoal_online_learning_goals` WRITE; +/*!40000 ALTER TABLE `outcome_surveys_coursegoal_online_learning_goals` DISABLE KEYS */; +/*!40000 ALTER TABLE `outcome_surveys_coursegoal_online_learning_goals` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `proctoring_proctoredexamreviewpolicy` +-- Table structure for table `outcome_surveys_coursereflection` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `proctoring_proctoredexamreviewpolicy` ( +CREATE TABLE `outcome_surveys_coursereflection` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `review_policy` longtext NOT NULL, - `proctored_exam_id` int(11) NOT NULL, - `set_by_user_id` int(11) NOT NULL, + `survey_id` int(11) NOT NULL, + `survey_response_id` bigint(20) NOT NULL, + `enrollment_type` varchar(16) DEFAULT NULL, + `lms_enrollment_id` int(11) DEFAULT NULL, + `help_reach_goal` varchar(256) DEFAULT NULL, + `course_rating` int(11) DEFAULT NULL, + `course_experience` longtext, + `open_to_outreach` tinyint(1) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `D32bab97500954b362d3f768dd89b6da` (`proctored_exam_id`), - KEY `proctoring_proct_set_by_user_id_75a66580aa44cd84_fk_auth_user_id` (`set_by_user_id`), - CONSTRAINT `D32bab97500954b362d3f768dd89b6da` FOREIGN KEY (`proctored_exam_id`) REFERENCES `proctoring_proctoredexam` (`id`), - CONSTRAINT `proctoring_proct_set_by_user_id_75a66580aa44cd84_fk_auth_user_id` FOREIGN KEY (`set_by_user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `outcome_surveys_coursere_survey_id_survey_respons_150db796_uniq` (`survey_id`,`survey_response_id`), + KEY `outcome_sur_lms_enr_245902_idx` (`lms_enrollment_id`), + KEY `outcome_sur_survey__8a6a99_idx` (`survey_id`,`survey_response_id`), + KEY `outcome_sur_survey__16601f_idx` (`survey_response_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `proctoring_proctoredexamreviewpolicy` +-- Dumping data for table `outcome_surveys_coursereflection` -- -LOCK TABLES `proctoring_proctoredexamreviewpolicy` WRITE; -/*!40000 ALTER TABLE `proctoring_proctoredexamreviewpolicy` DISABLE KEYS */; -/*!40000 ALTER TABLE `proctoring_proctoredexamreviewpolicy` ENABLE KEYS */; +LOCK TABLES `outcome_surveys_coursereflection` WRITE; +/*!40000 ALTER TABLE `outcome_surveys_coursereflection` DISABLE KEYS */; +/*!40000 ALTER TABLE `outcome_surveys_coursereflection` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `proctoring_proctoredexamreviewpolicyhistory` +-- Table structure for table `outcome_surveys_coursereflection_goal_decisions` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `proctoring_proctoredexamreviewpolicyhistory` ( +CREATE TABLE `outcome_surveys_coursereflection_goal_decisions` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, - `original_id` int(11) NOT NULL, - `review_policy` longtext NOT NULL, - `proctored_exam_id` int(11) NOT NULL, - `set_by_user_id` int(11) NOT NULL, + `coursereflection_id` int(11) NOT NULL, + `multichoiceresponse_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `d9965d8af87bebd0587414ca1ba4826f` (`proctored_exam_id`), - KEY `proctoring_procto_set_by_user_id_31fae610848d90f_fk_auth_user_id` (`set_by_user_id`), - KEY `proctoring_proctoredexamreviewpolicyhistory_524b09d0` (`original_id`), - CONSTRAINT `d9965d8af87bebd0587414ca1ba4826f` FOREIGN KEY (`proctored_exam_id`) REFERENCES `proctoring_proctoredexam` (`id`), - CONSTRAINT `proctoring_procto_set_by_user_id_31fae610848d90f_fk_auth_user_id` FOREIGN KEY (`set_by_user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `outcome_surveys_coursere_coursereflection_id_mult_89d1af54_uniq` (`coursereflection_id`,`multichoiceresponse_id`), + KEY `outcome_surveys_cour_multichoiceresponse__b3e6a8b6_fk_outcome_s` (`multichoiceresponse_id`), + CONSTRAINT `outcome_surveys_cour_coursereflection_id_3806b9ae_fk_outcome_s` FOREIGN KEY (`coursereflection_id`) REFERENCES `outcome_surveys_coursereflection` (`id`), + CONSTRAINT `outcome_surveys_cour_multichoiceresponse__b3e6a8b6_fk_outcome_s` FOREIGN KEY (`multichoiceresponse_id`) REFERENCES `outcome_surveys_multichoiceresponse` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `proctoring_proctoredexamreviewpolicyhistory` +-- Dumping data for table `outcome_surveys_coursereflection_goal_decisions` -- -LOCK TABLES `proctoring_proctoredexamreviewpolicyhistory` WRITE; -/*!40000 ALTER TABLE `proctoring_proctoredexamreviewpolicyhistory` DISABLE KEYS */; -/*!40000 ALTER TABLE `proctoring_proctoredexamreviewpolicyhistory` ENABLE KEYS */; +LOCK TABLES `outcome_surveys_coursereflection_goal_decisions` WRITE; +/*!40000 ALTER TABLE `outcome_surveys_coursereflection_goal_decisions` DISABLE KEYS */; +/*!40000 ALTER TABLE `outcome_surveys_coursereflection_goal_decisions` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `proctoring_proctoredexamsoftwaresecurereview` +-- Table structure for table `outcome_surveys_coursereflection_online_learning_goals` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `proctoring_proctoredexamsoftwaresecurereview` ( +CREATE TABLE `outcome_surveys_coursereflection_online_learning_goals` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `created` datetime(6) NOT NULL, - `modified` datetime(6) NOT NULL, - `attempt_code` varchar(255) NOT NULL, - `review_status` varchar(255) NOT NULL, - `raw_data` longtext NOT NULL, - `video_url` longtext NOT NULL, - `exam_id` int(11) DEFAULT NULL, - `reviewed_by_id` int(11) DEFAULT NULL, - `student_id` int(11) DEFAULT NULL, + `coursereflection_id` int(11) NOT NULL, + `multichoiceresponse_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `proctoring_proctoredexamsoftw_attempt_code_69b9866a54964afb_uniq` (`attempt_code`), - KEY `proctori_exam_id_635059f5fe2cc392_fk_proctoring_proctoredexam_id` (`exam_id`), - KEY `proctoring_proct_reviewed_by_id_4cff67b7de094f65_fk_auth_user_id` (`reviewed_by_id`), - KEY `proctoring_proctored_student_id_14c182517b0cbb5b_fk_auth_user_id` (`student_id`), - KEY `proctoring_proctoredexamsoftwaresecurereview_b38e5b0e` (`attempt_code`), - CONSTRAINT `proctori_exam_id_635059f5fe2cc392_fk_proctoring_proctoredexam_id` FOREIGN KEY (`exam_id`) REFERENCES `proctoring_proctoredexam` (`id`), - CONSTRAINT `proctoring_proct_reviewed_by_id_4cff67b7de094f65_fk_auth_user_id` FOREIGN KEY (`reviewed_by_id`) REFERENCES `auth_user` (`id`), - CONSTRAINT `proctoring_proctored_student_id_14c182517b0cbb5b_fk_auth_user_id` FOREIGN KEY (`student_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `outcome_surveys_coursere_coursereflection_id_mult_d674a28b_uniq` (`coursereflection_id`,`multichoiceresponse_id`), + KEY `outcome_surveys_cour_multichoiceresponse__0e4d8322_fk_outcome_s` (`multichoiceresponse_id`), + CONSTRAINT `outcome_surveys_cour_coursereflection_id_5ae3ab28_fk_outcome_s` FOREIGN KEY (`coursereflection_id`) REFERENCES `outcome_surveys_coursereflection` (`id`), + CONSTRAINT `outcome_surveys_cour_multichoiceresponse__0e4d8322_fk_outcome_s` FOREIGN KEY (`multichoiceresponse_id`) REFERENCES `outcome_surveys_multichoiceresponse` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `proctoring_proctoredexamsoftwaresecurereview` +-- Dumping data for table `outcome_surveys_coursereflection_online_learning_goals` -- -LOCK TABLES `proctoring_proctoredexamsoftwaresecurereview` WRITE; -/*!40000 ALTER TABLE `proctoring_proctoredexamsoftwaresecurereview` DISABLE KEYS */; -/*!40000 ALTER TABLE `proctoring_proctoredexamsoftwaresecurereview` ENABLE KEYS */; +LOCK TABLES `outcome_surveys_coursereflection_online_learning_goals` WRITE; +/*!40000 ALTER TABLE `outcome_surveys_coursereflection_online_learning_goals` DISABLE KEYS */; +/*!40000 ALTER TABLE `outcome_surveys_coursereflection_online_learning_goals` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `proctoring_proctoredexamsoftwaresecurereviewhistory` +-- Table structure for table `outcome_surveys_learnercourseevent` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `proctoring_proctoredexamsoftwaresecurereviewhistory` ( +CREATE TABLE `outcome_surveys_learnercourseevent` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `attempt_code` varchar(255) NOT NULL, - `review_status` varchar(255) NOT NULL, - `raw_data` longtext NOT NULL, - `video_url` longtext NOT NULL, - `exam_id` int(11) DEFAULT NULL, - `reviewed_by_id` int(11) DEFAULT NULL, - `student_id` int(11) DEFAULT NULL, + `user_id` int(11) NOT NULL, + `course_id` varchar(255) NOT NULL, + `data` longtext NOT NULL, + `follow_up_date` date NOT NULL, + `event_type` varchar(255) NOT NULL, + `already_sent` tinyint(1) NOT NULL, PRIMARY KEY (`id`), - KEY `proctori_exam_id_73969ae423813477_fk_proctoring_proctoredexam_id` (`exam_id`), - KEY `proctoring_proct_reviewed_by_id_139568d0bf423998_fk_auth_user_id` (`reviewed_by_id`), - KEY `proctoring_proctored_student_id_6922ba3b791462d8_fk_auth_user_id` (`student_id`), - KEY `proctoring_proctoredexamsoftwaresecurereviewhistory_b38e5b0e` (`attempt_code`), - CONSTRAINT `proctori_exam_id_73969ae423813477_fk_proctoring_proctoredexam_id` FOREIGN KEY (`exam_id`) REFERENCES `proctoring_proctoredexam` (`id`), - CONSTRAINT `proctoring_proct_reviewed_by_id_139568d0bf423998_fk_auth_user_id` FOREIGN KEY (`reviewed_by_id`) REFERENCES `auth_user` (`id`), - CONSTRAINT `proctoring_proctored_student_id_6922ba3b791462d8_fk_auth_user_id` FOREIGN KEY (`student_id`) REFERENCES `auth_user` (`id`) + KEY `outcome_sur_follow__a60cf0_idx` (`follow_up_date`), + KEY `outcome_sur_created_80c513_idx` (`created`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `proctoring_proctoredexamsoftwaresecurereviewhistory` +-- Dumping data for table `outcome_surveys_learnercourseevent` -- -LOCK TABLES `proctoring_proctoredexamsoftwaresecurereviewhistory` WRITE; -/*!40000 ALTER TABLE `proctoring_proctoredexamsoftwaresecurereviewhistory` DISABLE KEYS */; -/*!40000 ALTER TABLE `proctoring_proctoredexamsoftwaresecurereviewhistory` ENABLE KEYS */; +LOCK TABLES `outcome_surveys_learnercourseevent` WRITE; +/*!40000 ALTER TABLE `outcome_surveys_learnercourseevent` DISABLE KEYS */; +/*!40000 ALTER TABLE `outcome_surveys_learnercourseevent` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `proctoring_proctoredexamstudentallowance` +-- Table structure for table `outcome_surveys_multichoiceresponse` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `proctoring_proctoredexamstudentallowance` ( +CREATE TABLE `outcome_surveys_multichoiceresponse` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `key` varchar(255) NOT NULL, - `value` varchar(255) NOT NULL, - `proctored_exam_id` int(11) NOT NULL, - `user_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `proctoring_proctoredexamstudentall_user_id_665ed945152c2f60_uniq` (`user_id`,`proctored_exam_id`,`key`), - KEY `db55b83a7875e70b3a0ebd1f81a898d8` (`proctored_exam_id`), - CONSTRAINT `db55b83a7875e70b3a0ebd1f81a898d8` FOREIGN KEY (`proctored_exam_id`) REFERENCES `proctoring_proctoredexam` (`id`), - CONSTRAINT `proctoring_proctoredexam_user_id_a0a0681d4a01661_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + `answer` longtext NOT NULL, + PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `proctoring_proctoredexamstudentallowance` +-- Dumping data for table `outcome_surveys_multichoiceresponse` -- -LOCK TABLES `proctoring_proctoredexamstudentallowance` WRITE; -/*!40000 ALTER TABLE `proctoring_proctoredexamstudentallowance` DISABLE KEYS */; -/*!40000 ALTER TABLE `proctoring_proctoredexamstudentallowance` ENABLE KEYS */; +LOCK TABLES `outcome_surveys_multichoiceresponse` WRITE; +/*!40000 ALTER TABLE `outcome_surveys_multichoiceresponse` DISABLE KEYS */; +/*!40000 ALTER TABLE `outcome_surveys_multichoiceresponse` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `proctoring_proctoredexamstudentallowancehistory` +-- Table structure for table `outcome_surveys_surveyexport` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `proctoring_proctoredexamstudentallowancehistory` ( +CREATE TABLE `outcome_surveys_surveyexport` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `allowance_id` int(11) NOT NULL, - `key` varchar(255) NOT NULL, - `value` varchar(255) NOT NULL, - `proctored_exam_id` int(11) NOT NULL, - `user_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `D169ec97a7fca1dbf6b0bb2929d41ccc` (`proctored_exam_id`), - KEY `proctoring_proctoredexa_user_id_68e25e3abb187580_fk_auth_user_id` (`user_id`), - CONSTRAINT `D169ec97a7fca1dbf6b0bb2929d41ccc` FOREIGN KEY (`proctored_exam_id`) REFERENCES `proctoring_proctoredexam` (`id`), - CONSTRAINT `proctoring_proctoredexa_user_id_68e25e3abb187580_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + `survey_id` int(11) NOT NULL, + `last_successfull_export_at` datetime(6) NOT NULL, + PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `proctoring_proctoredexamstudentallowancehistory` +-- Dumping data for table `outcome_surveys_surveyexport` -- -LOCK TABLES `proctoring_proctoredexamstudentallowancehistory` WRITE; -/*!40000 ALTER TABLE `proctoring_proctoredexamstudentallowancehistory` DISABLE KEYS */; -/*!40000 ALTER TABLE `proctoring_proctoredexamstudentallowancehistory` ENABLE KEYS */; +LOCK TABLES `outcome_surveys_surveyexport` WRITE; +/*!40000 ALTER TABLE `outcome_surveys_surveyexport` DISABLE KEYS */; +/*!40000 ALTER TABLE `outcome_surveys_surveyexport` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `proctoring_proctoredexamstudentattempt` +-- Table structure for table `proctoring_proctoredexam` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `proctoring_proctoredexamstudentattempt` ( +CREATE TABLE `proctoring_proctoredexam` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `started_at` datetime(6) DEFAULT NULL, - `completed_at` datetime(6) DEFAULT NULL, - `last_poll_timestamp` datetime(6) DEFAULT NULL, - `last_poll_ipaddr` varchar(32) DEFAULT NULL, - `attempt_code` varchar(255) DEFAULT NULL, + `course_id` varchar(255) NOT NULL, + `content_id` varchar(255) NOT NULL, `external_id` varchar(255) DEFAULT NULL, - `allowed_time_limit_mins` int(11) NOT NULL, - `status` varchar(64) NOT NULL, - `taking_as_proctored` tinyint(1) NOT NULL, - `is_sample_attempt` tinyint(1) NOT NULL, - `student_name` varchar(255) NOT NULL, - `review_policy_id` int(11) DEFAULT NULL, - `proctored_exam_id` int(11) NOT NULL, - `user_id` int(11) NOT NULL, - `is_status_acknowledged` tinyint(1) NOT NULL, + `exam_name` longtext NOT NULL, + `time_limit_mins` int(11) NOT NULL, + `due_date` datetime(6) DEFAULT NULL, + `is_proctored` tinyint(1) NOT NULL, + `is_practice_exam` tinyint(1) NOT NULL, + `is_active` tinyint(1) NOT NULL, + `hide_after_due` tinyint(1) NOT NULL, + `backend` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `proctoring_proctoredexamstudentatt_user_id_15d13fa8dac316a0_uniq` (`user_id`,`proctored_exam_id`), - KEY `D5e0a120c32f715bfe04a0a57f399ec0` (`proctored_exam_id`), - KEY `proctoring_proctoredexamstudentattempt_b38e5b0e` (`attempt_code`), - KEY `proctoring_proctoredexamstudentattempt_0e684294` (`external_id`), - CONSTRAINT `D5e0a120c32f715bfe04a0a57f399ec0` FOREIGN KEY (`proctored_exam_id`) REFERENCES `proctoring_proctoredexam` (`id`), - CONSTRAINT `proctoring_proctoredexa_user_id_633fd8f4f65a0cac_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `proctoring_proctoredexam_course_id_content_id_1d8358cc_uniq` (`course_id`,`content_id`), + KEY `proctoring_proctoredexam_course_id_8787b34f` (`course_id`), + KEY `proctoring_proctoredexam_content_id_13d3bec4` (`content_id`), + KEY `proctoring_proctoredexam_external_id_0181c110` (`external_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `proctoring_proctoredexamstudentattempt` +-- Dumping data for table `proctoring_proctoredexam` -- -LOCK TABLES `proctoring_proctoredexamstudentattempt` WRITE; -/*!40000 ALTER TABLE `proctoring_proctoredexamstudentattempt` DISABLE KEYS */; -/*!40000 ALTER TABLE `proctoring_proctoredexamstudentattempt` ENABLE KEYS */; +LOCK TABLES `proctoring_proctoredexam` WRITE; +/*!40000 ALTER TABLE `proctoring_proctoredexam` DISABLE KEYS */; +/*!40000 ALTER TABLE `proctoring_proctoredexam` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `proctoring_proctoredexamstudentattemptcomment` +-- Table structure for table `proctoring_proctoredexamhistory` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `proctoring_proctoredexamstudentattemptcomment` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `proctoring_proctoredexamhistory` ( + `id` int(11) NOT NULL, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `start_time` int(11) NOT NULL, - `stop_time` int(11) NOT NULL, - `duration` int(11) NOT NULL, - `comment` longtext NOT NULL, - `status` varchar(255) NOT NULL, - `review_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `proctoring_proctoredexamstudentattemptcomment_5bd2a989` (`review_id`), - CONSTRAINT `D596dd9c7d948d9256c2e29e6194b5e7` FOREIGN KEY (`review_id`) REFERENCES `proctoring_proctoredexamsoftwaresecurereview` (`id`) + `course_id` varchar(255) NOT NULL, + `content_id` varchar(255) NOT NULL, + `external_id` varchar(255) DEFAULT NULL, + `exam_name` longtext NOT NULL, + `time_limit_mins` int(11) NOT NULL, + `due_date` datetime(6) DEFAULT NULL, + `is_proctored` tinyint(1) NOT NULL, + `is_practice_exam` tinyint(1) NOT NULL, + `is_active` tinyint(1) NOT NULL, + `hide_after_due` tinyint(1) NOT NULL, + `backend` varchar(255) DEFAULT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `proctoring_proctored_history_user_id_f11ddc53_fk_auth_user` (`history_user_id`), + KEY `proctoring_proctoredexamhistory_id_bcb725e3` (`id`), + KEY `proctoring_proctoredexamhistory_course_id_66a57818` (`course_id`), + KEY `proctoring_proctoredexamhistory_content_id_ac9543fc` (`content_id`), + KEY `proctoring_proctoredexamhistory_external_id_711a44cd` (`external_id`), + CONSTRAINT `proctoring_proctored_history_user_id_f11ddc53_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `proctoring_proctoredexamstudentattemptcomment` +-- Dumping data for table `proctoring_proctoredexamhistory` -- -LOCK TABLES `proctoring_proctoredexamstudentattemptcomment` WRITE; -/*!40000 ALTER TABLE `proctoring_proctoredexamstudentattemptcomment` DISABLE KEYS */; -/*!40000 ALTER TABLE `proctoring_proctoredexamstudentattemptcomment` ENABLE KEYS */; +LOCK TABLES `proctoring_proctoredexamhistory` WRITE; +/*!40000 ALTER TABLE `proctoring_proctoredexamhistory` DISABLE KEYS */; +/*!40000 ALTER TABLE `proctoring_proctoredexamhistory` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `proctoring_proctoredexamstudentattempthistory` +-- Table structure for table `proctoring_proctoredexamreviewpolicy` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `proctoring_proctoredexamstudentattempthistory` ( +CREATE TABLE `proctoring_proctoredexamreviewpolicy` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `attempt_id` int(11) DEFAULT NULL, - `started_at` datetime(6) DEFAULT NULL, - `completed_at` datetime(6) DEFAULT NULL, - `attempt_code` varchar(255) DEFAULT NULL, - `external_id` varchar(255) DEFAULT NULL, - `allowed_time_limit_mins` int(11) NOT NULL, - `status` varchar(64) NOT NULL, - `taking_as_proctored` tinyint(1) NOT NULL, - `is_sample_attempt` tinyint(1) NOT NULL, - `student_name` varchar(255) NOT NULL, - `review_policy_id` int(11) DEFAULT NULL, - `last_poll_timestamp` datetime(6) DEFAULT NULL, - `last_poll_ipaddr` varchar(32) DEFAULT NULL, + `review_policy` longtext NOT NULL, `proctored_exam_id` int(11) NOT NULL, - `user_id` int(11) NOT NULL, + `set_by_user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `cbccbfd5c4c427541fdce96e77e6bf6c` (`proctored_exam_id`), - KEY `proctoring_proctoredexa_user_id_59ce75db7c4fc769_fk_auth_user_id` (`user_id`), - KEY `proctoring_proctoredexamstudentattempthistory_b38e5b0e` (`attempt_code`), - KEY `proctoring_proctoredexamstudentattempthistory_0e684294` (`external_id`), - CONSTRAINT `cbccbfd5c4c427541fdce96e77e6bf6c` FOREIGN KEY (`proctored_exam_id`) REFERENCES `proctoring_proctoredexam` (`id`), - CONSTRAINT `proctoring_proctoredexa_user_id_59ce75db7c4fc769_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + KEY `proctoring_proctored_proctored_exam_id_57f9ce30_fk_proctorin` (`proctored_exam_id`), + KEY `proctoring_proctored_set_by_user_id_7c101300_fk_auth_user` (`set_by_user_id`), + CONSTRAINT `proctoring_proctored_proctored_exam_id_57f9ce30_fk_proctorin` FOREIGN KEY (`proctored_exam_id`) REFERENCES `proctoring_proctoredexam` (`id`), + CONSTRAINT `proctoring_proctored_set_by_user_id_7c101300_fk_auth_user` FOREIGN KEY (`set_by_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `proctoring_proctoredexamstudentattempthistory` +-- Dumping data for table `proctoring_proctoredexamreviewpolicy` -- -LOCK TABLES `proctoring_proctoredexamstudentattempthistory` WRITE; -/*!40000 ALTER TABLE `proctoring_proctoredexamstudentattempthistory` DISABLE KEYS */; -/*!40000 ALTER TABLE `proctoring_proctoredexamstudentattempthistory` ENABLE KEYS */; +LOCK TABLES `proctoring_proctoredexamreviewpolicy` WRITE; +/*!40000 ALTER TABLE `proctoring_proctoredexamreviewpolicy` DISABLE KEYS */; +/*!40000 ALTER TABLE `proctoring_proctoredexamreviewpolicy` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `programs_programsapiconfig` +-- Table structure for table `proctoring_proctoredexamreviewpolicyhistory` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `programs_programsapiconfig` ( +CREATE TABLE `proctoring_proctoredexamreviewpolicyhistory` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, - `marketing_path` varchar(255) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `original_id` int(11) NOT NULL, + `review_policy` longtext NOT NULL, + `proctored_exam_id` int(11) NOT NULL, + `set_by_user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `programs_programsa_changed_by_id_b7c3b49d5c0dcd3_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `programs_programsa_changed_by_id_b7c3b49d5c0dcd3_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `proctoring_proctored_proctored_exam_id_8126b616_fk_proctorin` (`proctored_exam_id`), + KEY `proctoring_proctored_set_by_user_id_42ce126e_fk_auth_user` (`set_by_user_id`), + KEY `proctoring_proctoredexamreviewpolicyhistory_original_id_ca04913d` (`original_id`), + CONSTRAINT `proctoring_proctored_proctored_exam_id_8126b616_fk_proctorin` FOREIGN KEY (`proctored_exam_id`) REFERENCES `proctoring_proctoredexam` (`id`), + CONSTRAINT `proctoring_proctored_set_by_user_id_42ce126e_fk_auth_user` FOREIGN KEY (`set_by_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `programs_programsapiconfig` +-- Dumping data for table `proctoring_proctoredexamreviewpolicyhistory` -- -LOCK TABLES `programs_programsapiconfig` WRITE; -/*!40000 ALTER TABLE `programs_programsapiconfig` DISABLE KEYS */; -/*!40000 ALTER TABLE `programs_programsapiconfig` ENABLE KEYS */; +LOCK TABLES `proctoring_proctoredexamreviewpolicyhistory` WRITE; +/*!40000 ALTER TABLE `proctoring_proctoredexamreviewpolicyhistory` DISABLE KEYS */; +/*!40000 ALTER TABLE `proctoring_proctoredexamreviewpolicyhistory` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `rss_proxy_whitelistedrssurl` +-- Table structure for table `proctoring_proctoredexamsoftwaresecurereview` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `rss_proxy_whitelistedrssurl` ( +CREATE TABLE `proctoring_proctoredexamsoftwaresecurereview` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `url` varchar(255) NOT NULL, + `attempt_code` varchar(255) NOT NULL, + `review_status` varchar(255) NOT NULL, + `raw_data` longtext NOT NULL, + `exam_id` int(11) DEFAULT NULL, + `reviewed_by_id` int(11) DEFAULT NULL, + `student_id` int(11) DEFAULT NULL, + `is_attempt_active` tinyint(1) NOT NULL, + `encrypted_video_url` longblob, PRIMARY KEY (`id`), - UNIQUE KEY `url` (`url`) + UNIQUE KEY `proctoring_proctoredexam_attempt_code_706d3717_uniq` (`attempt_code`), + KEY `proctoring_proctored_exam_id_ea6095a3_fk_proctorin` (`exam_id`), + KEY `proctoring_proctored_reviewed_by_id_546b4204_fk_auth_user` (`reviewed_by_id`), + KEY `proctoring_proctored_student_id_7e197288_fk_auth_user` (`student_id`), + CONSTRAINT `proctoring_proctored_exam_id_ea6095a3_fk_proctorin` FOREIGN KEY (`exam_id`) REFERENCES `proctoring_proctoredexam` (`id`), + CONSTRAINT `proctoring_proctored_reviewed_by_id_546b4204_fk_auth_user` FOREIGN KEY (`reviewed_by_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `proctoring_proctored_student_id_7e197288_fk_auth_user` FOREIGN KEY (`student_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `rss_proxy_whitelistedrssurl` +-- Dumping data for table `proctoring_proctoredexamsoftwaresecurereview` -- -LOCK TABLES `rss_proxy_whitelistedrssurl` WRITE; -/*!40000 ALTER TABLE `rss_proxy_whitelistedrssurl` DISABLE KEYS */; -/*!40000 ALTER TABLE `rss_proxy_whitelistedrssurl` ENABLE KEYS */; +LOCK TABLES `proctoring_proctoredexamsoftwaresecurereview` WRITE; +/*!40000 ALTER TABLE `proctoring_proctoredexamsoftwaresecurereview` DISABLE KEYS */; +/*!40000 ALTER TABLE `proctoring_proctoredexamsoftwaresecurereview` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `sap_success_factors_historicalsapsuccessfactorsenterprisecus80ad` +-- Table structure for table `proctoring_proctoredexamsoftwaresecurereviewhistory` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `sap_success_factors_historicalsapsuccessfactorsenterprisecus80ad` ( - `id` int(11) NOT NULL, +CREATE TABLE `proctoring_proctoredexamsoftwaresecurereviewhistory` ( + `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `active` tinyint(1) NOT NULL, - `sapsf_base_url` varchar(255) NOT NULL, - `key` varchar(255) NOT NULL, - `secret` varchar(255) NOT NULL, - `history_id` int(11) NOT NULL AUTO_INCREMENT, - `history_date` datetime(6) NOT NULL, - `history_type` varchar(1) NOT NULL, - `enterprise_customer_id` char(32) DEFAULT NULL, - `history_user_id` int(11) DEFAULT NULL, - `sapsf_company_id` varchar(255) NOT NULL, - `sapsf_user_id` varchar(255) NOT NULL, - `user_type` varchar(20) NOT NULL, - `history_change_reason` varchar(100), - PRIMARY KEY (`history_id`), - KEY `sap_success_fac_history_user_id_2cd9fa0a2a669e26_fk_auth_user_id` (`history_user_id`), - KEY `sap_success_factors_historicalsapsuccessfactorsenterprisecus4cf7` (`id`), - CONSTRAINT `sap_success_fac_history_user_id_2cd9fa0a2a669e26_fk_auth_user_id` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) + `attempt_code` varchar(255) NOT NULL, + `review_status` varchar(255) NOT NULL, + `raw_data` longtext NOT NULL, + `exam_id` int(11) DEFAULT NULL, + `reviewed_by_id` int(11) DEFAULT NULL, + `student_id` int(11) DEFAULT NULL, + `is_attempt_active` tinyint(1) NOT NULL, + `encrypted_video_url` longblob, + PRIMARY KEY (`id`), + KEY `proctoring_proctored_exam_id_380d8588_fk_proctorin` (`exam_id`), + KEY `proctoring_proctored_reviewed_by_id_bb993b3a_fk_auth_user` (`reviewed_by_id`), + KEY `proctoring_proctored_student_id_97a63653_fk_auth_user` (`student_id`), + KEY `proctoring_proctoredexamsof_attempt_code_695faa63` (`attempt_code`), + CONSTRAINT `proctoring_proctored_exam_id_380d8588_fk_proctorin` FOREIGN KEY (`exam_id`) REFERENCES `proctoring_proctoredexam` (`id`), + CONSTRAINT `proctoring_proctored_reviewed_by_id_bb993b3a_fk_auth_user` FOREIGN KEY (`reviewed_by_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `proctoring_proctored_student_id_97a63653_fk_auth_user` FOREIGN KEY (`student_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `sap_success_factors_historicalsapsuccessfactorsenterprisecus80ad` +-- Dumping data for table `proctoring_proctoredexamsoftwaresecurereviewhistory` -- -LOCK TABLES `sap_success_factors_historicalsapsuccessfactorsenterprisecus80ad` WRITE; -/*!40000 ALTER TABLE `sap_success_factors_historicalsapsuccessfactorsenterprisecus80ad` DISABLE KEYS */; -/*!40000 ALTER TABLE `sap_success_factors_historicalsapsuccessfactorsenterprisecus80ad` ENABLE KEYS */; +LOCK TABLES `proctoring_proctoredexamsoftwaresecurereviewhistory` WRITE; +/*!40000 ALTER TABLE `proctoring_proctoredexamsoftwaresecurereviewhistory` DISABLE KEYS */; +/*!40000 ALTER TABLE `proctoring_proctoredexamsoftwaresecurereviewhistory` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `sap_success_factors_sapsuccessfactorsenterprisecustomerconfidb8a` +-- Table structure for table `proctoring_proctoredexamstudentallowance` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `sap_success_factors_sapsuccessfactorsenterprisecustomerconfidb8a` ( +CREATE TABLE `proctoring_proctoredexamstudentallowance` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `active` tinyint(1) NOT NULL, - `sapsf_base_url` varchar(255) NOT NULL, `key` varchar(255) NOT NULL, - `secret` varchar(255) NOT NULL, - `enterprise_customer_id` char(32) NOT NULL, - `sapsf_company_id` varchar(255) NOT NULL, - `sapsf_user_id` varchar(255) NOT NULL, - `user_type` varchar(20) NOT NULL, + `value` varchar(255) NOT NULL, + `proctored_exam_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `enterprise_customer_id` (`enterprise_customer_id`), - CONSTRAINT `ce017234bb371f21da2524ecc3c0dbc4` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) + UNIQUE KEY `proctoring_proctoredexam_user_id_proctored_exam_i_56de5b8f_uniq` (`user_id`,`proctored_exam_id`,`key`), + KEY `proctoring_proctored_proctored_exam_id_9baf5a64_fk_proctorin` (`proctored_exam_id`), + CONSTRAINT `proctoring_proctored_proctored_exam_id_9baf5a64_fk_proctorin` FOREIGN KEY (`proctored_exam_id`) REFERENCES `proctoring_proctoredexam` (`id`), + CONSTRAINT `proctoring_proctored_user_id_f21ce9b6_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `sap_success_factors_sapsuccessfactorsenterprisecustomerconfidb8a` +-- Dumping data for table `proctoring_proctoredexamstudentallowance` -- -LOCK TABLES `sap_success_factors_sapsuccessfactorsenterprisecustomerconfidb8a` WRITE; -/*!40000 ALTER TABLE `sap_success_factors_sapsuccessfactorsenterprisecustomerconfidb8a` DISABLE KEYS */; -/*!40000 ALTER TABLE `sap_success_factors_sapsuccessfactorsenterprisecustomerconfidb8a` ENABLE KEYS */; +LOCK TABLES `proctoring_proctoredexamstudentallowance` WRITE; +/*!40000 ALTER TABLE `proctoring_proctoredexamstudentallowance` DISABLE KEYS */; +/*!40000 ALTER TABLE `proctoring_proctoredexamstudentallowance` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `sap_success_factors_sapsuccessfactorsglobalconfiguration` +-- Table structure for table `proctoring_proctoredexamstudentallowancehistory` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `sap_success_factors_sapsuccessfactorsglobalconfiguration` ( +CREATE TABLE `proctoring_proctoredexamstudentallowancehistory` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `completion_status_api_path` varchar(255) NOT NULL, - `course_api_path` varchar(255) NOT NULL, - `oauth_api_path` varchar(255) NOT NULL, - `provider_id` varchar(100) NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `allowance_id` int(11) NOT NULL, + `key` varchar(255) NOT NULL, + `value` varchar(255) NOT NULL, + `proctored_exam_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `sap_success_facto_changed_by_id_1afac95cc5c52140_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `sap_success_facto_changed_by_id_1afac95cc5c52140_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `proctoring_proctored_proctored_exam_id_a4c8237c_fk_proctorin` (`proctored_exam_id`), + KEY `proctoring_proctored_user_id_29b863c1_fk_auth_user` (`user_id`), + CONSTRAINT `proctoring_proctored_proctored_exam_id_a4c8237c_fk_proctorin` FOREIGN KEY (`proctored_exam_id`) REFERENCES `proctoring_proctoredexam` (`id`), + CONSTRAINT `proctoring_proctored_user_id_29b863c1_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `sap_success_factors_sapsuccessfactorsglobalconfiguration` +-- Dumping data for table `proctoring_proctoredexamstudentallowancehistory` -- -LOCK TABLES `sap_success_factors_sapsuccessfactorsglobalconfiguration` WRITE; -/*!40000 ALTER TABLE `sap_success_factors_sapsuccessfactorsglobalconfiguration` DISABLE KEYS */; -/*!40000 ALTER TABLE `sap_success_factors_sapsuccessfactorsglobalconfiguration` ENABLE KEYS */; +LOCK TABLES `proctoring_proctoredexamstudentallowancehistory` WRITE; +/*!40000 ALTER TABLE `proctoring_proctoredexamstudentallowancehistory` DISABLE KEYS */; +/*!40000 ALTER TABLE `proctoring_proctoredexamstudentallowancehistory` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `sap_success_factors_sapsuccessfactorslearnerdatatransmission3ce5` +-- Table structure for table `proctoring_proctoredexamstudentattempt` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `sap_success_factors_sapsuccessfactorslearnerdatatransmission3ce5` ( +CREATE TABLE `proctoring_proctoredexamstudentattempt` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `enterprise_course_enrollment_id` int(10) unsigned NOT NULL, - `sapsf_user_id` varchar(255) NOT NULL, - `course_id` varchar(255) NOT NULL, - `course_completed` tinyint(1) NOT NULL, - `completed_timestamp` bigint(20) NOT NULL, - `instructor_name` varchar(255) NOT NULL, - `grade` varchar(100) NOT NULL, - `status` varchar(100) NOT NULL, - `error_message` longtext NOT NULL, `created` datetime(6) NOT NULL, - PRIMARY KEY (`id`) + `modified` datetime(6) NOT NULL, + `started_at` datetime(6) DEFAULT NULL, + `completed_at` datetime(6) DEFAULT NULL, + `attempt_code` varchar(255) DEFAULT NULL, + `external_id` varchar(255) DEFAULT NULL, + `allowed_time_limit_mins` int(11) DEFAULT NULL, + `status` varchar(64) NOT NULL, + `taking_as_proctored` tinyint(1) NOT NULL, + `is_sample_attempt` tinyint(1) NOT NULL, + `review_policy_id` int(11) DEFAULT NULL, + `proctored_exam_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `is_status_acknowledged` tinyint(1) NOT NULL, + `time_remaining_seconds` int(11) DEFAULT NULL, + `is_resumable` tinyint(1) NOT NULL, + `ready_to_resume` tinyint(1) NOT NULL, + `resumed` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + KEY `proctoring_proctored_proctored_exam_id_0732c688_fk_proctorin` (`proctored_exam_id`), + KEY `proctoring_proctoredexamstudentattempt_attempt_code_b10ad854` (`attempt_code`), + KEY `proctoring_proctoredexamstudentattempt_external_id_9c302af3` (`external_id`), + KEY `proctoring_proctoredexamstudentattempt_user_id_2b58b7ed` (`user_id`), + CONSTRAINT `proctoring_proctored_proctored_exam_id_0732c688_fk_proctorin` FOREIGN KEY (`proctored_exam_id`) REFERENCES `proctoring_proctoredexam` (`id`), + CONSTRAINT `proctoring_proctored_user_id_2b58b7ed_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `sap_success_factors_sapsuccessfactorslearnerdatatransmission3ce5` +-- Dumping data for table `proctoring_proctoredexamstudentattempt` -- -LOCK TABLES `sap_success_factors_sapsuccessfactorslearnerdatatransmission3ce5` WRITE; -/*!40000 ALTER TABLE `sap_success_factors_sapsuccessfactorslearnerdatatransmission3ce5` DISABLE KEYS */; -/*!40000 ALTER TABLE `sap_success_factors_sapsuccessfactorslearnerdatatransmission3ce5` ENABLE KEYS */; +LOCK TABLES `proctoring_proctoredexamstudentattempt` WRITE; +/*!40000 ALTER TABLE `proctoring_proctoredexamstudentattempt` DISABLE KEYS */; +/*!40000 ALTER TABLE `proctoring_proctoredexamstudentattempt` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `schedules_schedule` +-- Table structure for table `proctoring_proctoredexamstudentattempt_history` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `schedules_schedule` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `proctoring_proctoredexamstudentattempt_history` ( + `id` int(11) NOT NULL, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `active` tinyint(1) NOT NULL, - `start` datetime(6) NOT NULL, - `upgrade_deadline` datetime(6) DEFAULT NULL, - `enrollment_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `enrollment_id` (`enrollment_id`), - KEY `schedules_schedule_start_796b08534b0ea8a8_uniq` (`start`), - KEY `schedules_schedule_upgrade_deadline_29b3e0a021034e_uniq` (`upgrade_deadline`), - CONSTRAINT `sc_enrollment_id_73757e1116f677ec_fk_student_courseenrollment_id` FOREIGN KEY (`enrollment_id`) REFERENCES `student_courseenrollment` (`id`) + `started_at` datetime(6) DEFAULT NULL, + `completed_at` datetime(6) DEFAULT NULL, + `attempt_code` varchar(255) DEFAULT NULL, + `external_id` varchar(255) DEFAULT NULL, + `allowed_time_limit_mins` int(11) DEFAULT NULL, + `status` varchar(64) NOT NULL, + `taking_as_proctored` tinyint(1) NOT NULL, + `is_sample_attempt` tinyint(1) NOT NULL, + `review_policy_id` int(11) DEFAULT NULL, + `is_status_acknowledged` tinyint(1) NOT NULL, + `time_remaining_seconds` int(11) DEFAULT NULL, + `is_resumable` tinyint(1) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `proctored_exam_id` int(11) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + `ready_to_resume` tinyint(1) NOT NULL, + `resumed` tinyint(1) NOT NULL, + PRIMARY KEY (`history_id`), + KEY `proctoring_proctored_history_user_id_8594589b_fk_auth_user` (`history_user_id`), + KEY `proctoring_proctoredexamstudentattempt_history_id_849280b0` (`id`), + KEY `proctoring_proctoredexamstu_attempt_code_2719f85f` (`attempt_code`), + KEY `proctoring_proctoredexamstu_external_id_210c6def` (`external_id`), + KEY `proctoring_proctoredexamstu_proctored_exam_id_446aaba3` (`proctored_exam_id`), + KEY `proctoring_proctoredexamstudentattempt_history_user_id_ea9fa127` (`user_id`), + CONSTRAINT `proctoring_proctored_history_user_id_8594589b_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `schedules_schedule` +-- Dumping data for table `proctoring_proctoredexamstudentattempt_history` -- -LOCK TABLES `schedules_schedule` WRITE; -/*!40000 ALTER TABLE `schedules_schedule` DISABLE KEYS */; -/*!40000 ALTER TABLE `schedules_schedule` ENABLE KEYS */; +LOCK TABLES `proctoring_proctoredexamstudentattempt_history` WRITE; +/*!40000 ALTER TABLE `proctoring_proctoredexamstudentattempt_history` DISABLE KEYS */; +/*!40000 ALTER TABLE `proctoring_proctoredexamstudentattempt_history` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `schedules_scheduleconfig` +-- Table structure for table `proctoring_proctoredexamstudentattemptcomment` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `schedules_scheduleconfig` ( +CREATE TABLE `proctoring_proctoredexamstudentattemptcomment` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `create_schedules` tinyint(1) NOT NULL, - `enqueue_recurring_nudge` tinyint(1) NOT NULL, - `deliver_recurring_nudge` tinyint(1) NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, - `site_id` int(11) NOT NULL, - `deliver_upgrade_reminder` tinyint(1) NOT NULL, - `enqueue_upgrade_reminder` tinyint(1) NOT NULL, - `deliver_course_update` tinyint(1) NOT NULL, - `enqueue_course_update` tinyint(1) NOT NULL, - `hold_back_ratio` double NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `start_time` int(11) NOT NULL, + `stop_time` int(11) NOT NULL, + `duration` int(11) NOT NULL, + `comment` longtext NOT NULL, + `status` varchar(255) NOT NULL, + `review_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `schedules_schedul_changed_by_id_5f7d8004127c3aac_fk_auth_user_id` (`changed_by_id`), - KEY `schedules_schedulecon_site_id_5c0875f7e76f2d1f_fk_django_site_id` (`site_id`), - CONSTRAINT `schedules_schedul_changed_by_id_5f7d8004127c3aac_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`), - CONSTRAINT `schedules_schedulecon_site_id_5c0875f7e76f2d1f_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) + KEY `proctoring_proctored_review_id_7f4eec67_fk_proctorin` (`review_id`), + CONSTRAINT `proctoring_proctored_review_id_7f4eec67_fk_proctorin` FOREIGN KEY (`review_id`) REFERENCES `proctoring_proctoredexamsoftwaresecurereview` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `schedules_scheduleconfig` +-- Dumping data for table `proctoring_proctoredexamstudentattemptcomment` -- -LOCK TABLES `schedules_scheduleconfig` WRITE; -/*!40000 ALTER TABLE `schedules_scheduleconfig` DISABLE KEYS */; -/*!40000 ALTER TABLE `schedules_scheduleconfig` ENABLE KEYS */; +LOCK TABLES `proctoring_proctoredexamstudentattemptcomment` WRITE; +/*!40000 ALTER TABLE `proctoring_proctoredexamstudentattemptcomment` DISABLE KEYS */; +/*!40000 ALTER TABLE `proctoring_proctoredexamstudentattemptcomment` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `schedules_scheduleexperience` +-- Table structure for table `program_enrollments_courseaccessroleassignment` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `schedules_scheduleexperience` ( +CREATE TABLE `program_enrollments_courseaccessroleassignment` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `experience_type` smallint(5) unsigned NOT NULL, - `schedule_id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `role` varchar(64) NOT NULL, + `enrollment_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `schedule_id` (`schedule_id`), - CONSTRAINT `schedules__schedule_id_5ca03607383f8535_fk_schedules_schedule_id` FOREIGN KEY (`schedule_id`) REFERENCES `schedules_schedule` (`id`) + UNIQUE KEY `program_enrollments_cour_role_enrollment_id_5a7bfa63_uniq` (`role`,`enrollment_id`), + KEY `program_enrollments__enrollment_id_4e0853f0_fk_program_e` (`enrollment_id`), + CONSTRAINT `program_enrollments__enrollment_id_4e0853f0_fk_program_e` FOREIGN KEY (`enrollment_id`) REFERENCES `program_enrollments_programcourseenrollment` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `schedules_scheduleexperience` +-- Dumping data for table `program_enrollments_courseaccessroleassignment` -- -LOCK TABLES `schedules_scheduleexperience` WRITE; -/*!40000 ALTER TABLE `schedules_scheduleexperience` DISABLE KEYS */; -/*!40000 ALTER TABLE `schedules_scheduleexperience` ENABLE KEYS */; +LOCK TABLES `program_enrollments_courseaccessroleassignment` WRITE; +/*!40000 ALTER TABLE `program_enrollments_courseaccessroleassignment` DISABLE KEYS */; +/*!40000 ALTER TABLE `program_enrollments_courseaccessroleassignment` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `self_paced_selfpacedconfiguration` +-- Table structure for table `program_enrollments_historicalprogramcourseenrollment` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `self_paced_selfpacedconfiguration` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `enable_course_home_improvements` tinyint(1) NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `self_paced_selfpa_changed_by_id_62c0bd4c6725fd15_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `self_paced_selfpa_changed_by_id_62c0bd4c6725fd15_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +CREATE TABLE `program_enrollments_historicalprogramcourseenrollment` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `course_key` varchar(255) NOT NULL, + `status` varchar(9) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `course_enrollment_id` int(11) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `program_enrollment_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `program_enrollments__history_user_id_428d002e_fk_auth_user` (`history_user_id`), + KEY `program_enrollments_histori_id_fe3a72a7` (`id`), + KEY `program_enrollments_histori_course_enrollment_id_4014ff73` (`course_enrollment_id`), + KEY `program_enrollments_histori_program_enrollment_id_ebb94d42` (`program_enrollment_id`), + CONSTRAINT `program_enrollments__history_user_id_428d002e_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `self_paced_selfpacedconfiguration` +-- Dumping data for table `program_enrollments_historicalprogramcourseenrollment` -- -LOCK TABLES `self_paced_selfpacedconfiguration` WRITE; -/*!40000 ALTER TABLE `self_paced_selfpacedconfiguration` DISABLE KEYS */; -/*!40000 ALTER TABLE `self_paced_selfpacedconfiguration` ENABLE KEYS */; +LOCK TABLES `program_enrollments_historicalprogramcourseenrollment` WRITE; +/*!40000 ALTER TABLE `program_enrollments_historicalprogramcourseenrollment` DISABLE KEYS */; +/*!40000 ALTER TABLE `program_enrollments_historicalprogramcourseenrollment` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `shoppingcart_certificateitem` +-- Table structure for table `program_enrollments_historicalprogramenrollment` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `shoppingcart_certificateitem` ( - `orderitem_ptr_id` int(11) NOT NULL, - `course_id` varchar(128) NOT NULL, - `mode` varchar(50) NOT NULL, - `course_enrollment_id` int(11) NOT NULL, - PRIMARY KEY (`orderitem_ptr_id`), - KEY `D231cb871868cb92e6ed1ee8e53a1bee` (`course_enrollment_id`), - KEY `shoppingcart_certificateitem_ea134da7` (`course_id`), - KEY `shoppingcart_certificateitem_15d61712` (`mode`), - CONSTRAINT `D231cb871868cb92e6ed1ee8e53a1bee` FOREIGN KEY (`course_enrollment_id`) REFERENCES `student_courseenrollment` (`id`), - CONSTRAINT `s_orderitem_ptr_id_5127313bc5a09762_fk_shoppingcart_orderitem_id` FOREIGN KEY (`orderitem_ptr_id`) REFERENCES `shoppingcart_orderitem` (`id`) +CREATE TABLE `program_enrollments_historicalprogramenrollment` ( + `id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `external_user_key` varchar(255) DEFAULT NULL, + `program_uuid` char(32) NOT NULL, + `curriculum_uuid` char(32) NOT NULL, + `status` varchar(9) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `program_enrollments__history_user_id_abf2d584_fk_auth_user` (`history_user_id`), + KEY `program_enrollments_historicalprogramenrollment_id_947c385f` (`id`), + KEY `program_enrollments_histori_external_user_key_5cd8d804` (`external_user_key`), + KEY `program_enrollments_histori_program_uuid_4c520e40` (`program_uuid`), + KEY `program_enrollments_histori_curriculum_uuid_a8325208` (`curriculum_uuid`), + KEY `program_enrollments_historicalprogramenrollment_user_id_e205ccdf` (`user_id`), + CONSTRAINT `program_enrollments__history_user_id_abf2d584_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `shoppingcart_certificateitem` +-- Dumping data for table `program_enrollments_historicalprogramenrollment` -- -LOCK TABLES `shoppingcart_certificateitem` WRITE; -/*!40000 ALTER TABLE `shoppingcart_certificateitem` DISABLE KEYS */; -/*!40000 ALTER TABLE `shoppingcart_certificateitem` ENABLE KEYS */; +LOCK TABLES `program_enrollments_historicalprogramenrollment` WRITE; +/*!40000 ALTER TABLE `program_enrollments_historicalprogramenrollment` DISABLE KEYS */; +/*!40000 ALTER TABLE `program_enrollments_historicalprogramenrollment` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `shoppingcart_coupon` +-- Table structure for table `program_enrollments_programcourseenrollment` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `shoppingcart_coupon` ( +CREATE TABLE `program_enrollments_programcourseenrollment` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(32) NOT NULL, - `description` varchar(255) DEFAULT NULL, - `course_id` varchar(255) NOT NULL, - `percentage_discount` int(11) NOT NULL, - `created_at` datetime(6) NOT NULL, - `is_active` tinyint(1) NOT NULL, - `expiration_date` datetime(6) DEFAULT NULL, - `created_by_id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `course_key` varchar(255) NOT NULL, + `status` varchar(9) NOT NULL, + `course_enrollment_id` int(11) DEFAULT NULL, + `program_enrollment_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `shoppingcart_coup_created_by_id_625ade1b541f5324_fk_auth_user_id` (`created_by_id`), - KEY `shoppingcart_coupon_c1336794` (`code`), - CONSTRAINT `shoppingcart_coup_created_by_id_625ade1b541f5324_fk_auth_user_id` FOREIGN KEY (`created_by_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `program_enrollments_prog_program_enrollment_id_co_7d2701fb_uniq` (`program_enrollment_id`,`course_key`), + KEY `program_enrollments_program_course_enrollment_id_d7890690` (`course_enrollment_id`), + CONSTRAINT `program_enrollments__course_enrollment_id_d7890690_fk_student_c` FOREIGN KEY (`course_enrollment_id`) REFERENCES `student_courseenrollment` (`id`), + CONSTRAINT `program_enrollments__program_enrollment_i_02ce2c32_fk_program_e` FOREIGN KEY (`program_enrollment_id`) REFERENCES `program_enrollments_programenrollment` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `shoppingcart_coupon` +-- Dumping data for table `program_enrollments_programcourseenrollment` -- -LOCK TABLES `shoppingcart_coupon` WRITE; -/*!40000 ALTER TABLE `shoppingcart_coupon` DISABLE KEYS */; -/*!40000 ALTER TABLE `shoppingcart_coupon` ENABLE KEYS */; +LOCK TABLES `program_enrollments_programcourseenrollment` WRITE; +/*!40000 ALTER TABLE `program_enrollments_programcourseenrollment` DISABLE KEYS */; +/*!40000 ALTER TABLE `program_enrollments_programcourseenrollment` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `shoppingcart_couponredemption` +-- Table structure for table `program_enrollments_programenrollment` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `shoppingcart_couponredemption` ( +CREATE TABLE `program_enrollments_programenrollment` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `coupon_id` int(11) NOT NULL, - `order_id` int(11) NOT NULL, - `user_id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `external_user_key` varchar(255) DEFAULT NULL, + `program_uuid` char(32) NOT NULL, + `curriculum_uuid` char(32) NOT NULL, + `status` varchar(9) NOT NULL, + `user_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `shoppingcar_coupon_id_1afa016627ac44bb_fk_shoppingcart_coupon_id` (`coupon_id`), - KEY `shoppingcart_couponredemption_69dfcb07` (`order_id`), - KEY `shoppingcart_couponredemption_e8701ad4` (`user_id`), - CONSTRAINT `shoppingcar_coupon_id_1afa016627ac44bb_fk_shoppingcart_coupon_id` FOREIGN KEY (`coupon_id`) REFERENCES `shoppingcart_coupon` (`id`), - CONSTRAINT `shoppingcart__order_id_5ba031c3bfaf643a_fk_shoppingcart_order_id` FOREIGN KEY (`order_id`) REFERENCES `shoppingcart_order` (`id`), - CONSTRAINT `shoppingcart_couponredemp_user_id_f5b814b7d92666_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `program_enrollments_prog_user_id_program_uuid_cur_ecf769fd_uniq` (`user_id`,`program_uuid`,`curriculum_uuid`), + UNIQUE KEY `program_enrollments_prog_external_user_key_progra_ec52a567_uniq` (`external_user_key`,`program_uuid`,`curriculum_uuid`), + KEY `program_enrollments_programenrollment_external_user_key_c27b83c5` (`external_user_key`), + KEY `program_enrollments_programenrollment_program_uuid_131378e0` (`program_uuid`), + KEY `program_enrollments_programenrollment_curriculum_uuid_da64e123` (`curriculum_uuid`), + KEY `program_enrollments_programenrollment_user_id_dcfde442` (`user_id`), + CONSTRAINT `program_enrollments__user_id_dcfde442_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `shoppingcart_couponredemption` +-- Dumping data for table `program_enrollments_programenrollment` -- -LOCK TABLES `shoppingcart_couponredemption` WRITE; -/*!40000 ALTER TABLE `shoppingcart_couponredemption` DISABLE KEYS */; -/*!40000 ALTER TABLE `shoppingcart_couponredemption` ENABLE KEYS */; +LOCK TABLES `program_enrollments_programenrollment` WRITE; +/*!40000 ALTER TABLE `program_enrollments_programenrollment` DISABLE KEYS */; +/*!40000 ALTER TABLE `program_enrollments_programenrollment` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `shoppingcart_courseregcodeitem` +-- Table structure for table `programs_historicalprogramdiscussionsconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `shoppingcart_courseregcodeitem` ( - `orderitem_ptr_id` int(11) NOT NULL, - `course_id` varchar(128) NOT NULL, - `mode` varchar(50) NOT NULL, - PRIMARY KEY (`orderitem_ptr_id`), - KEY `shoppingcart_courseregcodeitem_ea134da7` (`course_id`), - KEY `shoppingcart_courseregcodeitem_15d61712` (`mode`), - CONSTRAINT `s_orderitem_ptr_id_7ca6c1b9c7df7905_fk_shoppingcart_orderitem_id` FOREIGN KEY (`orderitem_ptr_id`) REFERENCES `shoppingcart_orderitem` (`id`) +CREATE TABLE `programs_historicalprogramdiscussionsconfiguration` ( + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `program_uuid` varchar(50) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `provider_type` varchar(50) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `lti_configuration_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `programs_historicalp_history_user_id_f7f2a83d_fk_auth_user` (`history_user_id`), + KEY `programs_historicalprogramd_program_uuid_688a7a3b` (`program_uuid`), + KEY `programs_historicalprogramd_lti_configuration_id_d06284f6` (`lti_configuration_id`), + CONSTRAINT `programs_historicalp_history_user_id_f7f2a83d_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `shoppingcart_courseregcodeitem` +-- Dumping data for table `programs_historicalprogramdiscussionsconfiguration` -- -LOCK TABLES `shoppingcart_courseregcodeitem` WRITE; -/*!40000 ALTER TABLE `shoppingcart_courseregcodeitem` DISABLE KEYS */; -/*!40000 ALTER TABLE `shoppingcart_courseregcodeitem` ENABLE KEYS */; +LOCK TABLES `programs_historicalprogramdiscussionsconfiguration` WRITE; +/*!40000 ALTER TABLE `programs_historicalprogramdiscussionsconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `programs_historicalprogramdiscussionsconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `shoppingcart_courseregcodeitemannotation` +-- Table structure for table `programs_historicalprogramliveconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `shoppingcart_courseregcodeitemannotation` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `course_id` varchar(128) NOT NULL, - `annotation` longtext, - PRIMARY KEY (`id`), - UNIQUE KEY `course_id` (`course_id`) +CREATE TABLE `programs_historicalprogramliveconfiguration` ( + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `program_uuid` varchar(50) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `provider_type` varchar(50) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `lti_configuration_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `programs_historicalp_history_user_id_80056ec3_fk_auth_user` (`history_user_id`), + KEY `programs_historicalprograml_program_uuid_61256da7` (`program_uuid`), + KEY `programs_historicalprograml_lti_configuration_id_db7b44b9` (`lti_configuration_id`), + CONSTRAINT `programs_historicalp_history_user_id_80056ec3_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `shoppingcart_courseregcodeitemannotation` +-- Dumping data for table `programs_historicalprogramliveconfiguration` -- -LOCK TABLES `shoppingcart_courseregcodeitemannotation` WRITE; -/*!40000 ALTER TABLE `shoppingcart_courseregcodeitemannotation` DISABLE KEYS */; -/*!40000 ALTER TABLE `shoppingcart_courseregcodeitemannotation` ENABLE KEYS */; +LOCK TABLES `programs_historicalprogramliveconfiguration` WRITE; +/*!40000 ALTER TABLE `programs_historicalprogramliveconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `programs_historicalprogramliveconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `shoppingcart_courseregistrationcode` +-- Table structure for table `programs_programdiscussionsconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `shoppingcart_courseregistrationcode` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(32) NOT NULL, - `course_id` varchar(255) NOT NULL, - `created_at` datetime(6) NOT NULL, - `mode_slug` varchar(100) DEFAULT NULL, - `is_valid` tinyint(1) NOT NULL, - `created_by_id` int(11) NOT NULL, - `invoice_id` int(11) DEFAULT NULL, - `order_id` int(11) DEFAULT NULL, - `invoice_item_id` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `code` (`code`), - KEY `shoppingcart_cour_created_by_id_11125a9667aa01c9_fk_auth_user_id` (`created_by_id`), - KEY `shoppingcart_courseregistrationcode_ea134da7` (`course_id`), - KEY `shoppingcart_courseregistrationcode_f1f5d967` (`invoice_id`), - KEY `shoppingcart_courseregistrationcode_69dfcb07` (`order_id`), - KEY `shoppingcart_courseregistrationcode_7a471658` (`invoice_item_id`), - CONSTRAINT `f040030b6361304bd87eb40c09a82094` FOREIGN KEY (`invoice_item_id`) REFERENCES `shoppingcart_courseregistrationcodeinvoiceitem` (`invoiceitem_ptr_id`), - CONSTRAINT `shoppingc_invoice_id_422f26bdc7c5cb99_fk_shoppingcart_invoice_id` FOREIGN KEY (`invoice_id`) REFERENCES `shoppingcart_invoice` (`id`), - CONSTRAINT `shoppingcart__order_id_279d7e2df3fe6b6a_fk_shoppingcart_order_id` FOREIGN KEY (`order_id`) REFERENCES `shoppingcart_order` (`id`), - CONSTRAINT `shoppingcart_cour_created_by_id_11125a9667aa01c9_fk_auth_user_id` FOREIGN KEY (`created_by_id`) REFERENCES `auth_user` (`id`) +CREATE TABLE `programs_programdiscussionsconfiguration` ( + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `program_uuid` varchar(50) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `provider_type` varchar(50) NOT NULL, + `lti_configuration_id` int(11) DEFAULT NULL, + PRIMARY KEY (`program_uuid`), + KEY `programs_programdisc_lti_configuration_id_822f71be_fk_lti_consu` (`lti_configuration_id`), + CONSTRAINT `programs_programdisc_lti_configuration_id_822f71be_fk_lti_consu` FOREIGN KEY (`lti_configuration_id`) REFERENCES `lti_consumer_lticonfiguration` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `shoppingcart_courseregistrationcode` +-- Dumping data for table `programs_programdiscussionsconfiguration` -- -LOCK TABLES `shoppingcart_courseregistrationcode` WRITE; -/*!40000 ALTER TABLE `shoppingcart_courseregistrationcode` DISABLE KEYS */; -/*!40000 ALTER TABLE `shoppingcart_courseregistrationcode` ENABLE KEYS */; +LOCK TABLES `programs_programdiscussionsconfiguration` WRITE; +/*!40000 ALTER TABLE `programs_programdiscussionsconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `programs_programdiscussionsconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `shoppingcart_courseregistrationcodeinvoiceitem` +-- Table structure for table `programs_programliveconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `shoppingcart_courseregistrationcodeinvoiceitem` ( - `invoiceitem_ptr_id` int(11) NOT NULL, - `course_id` varchar(128) NOT NULL, - PRIMARY KEY (`invoiceitem_ptr_id`), - KEY `shoppingcart_courseregistrationcodeinvoiceitem_ea134da7` (`course_id`), - CONSTRAINT `D75797188300cb2dc6a7b16353295aaf` FOREIGN KEY (`invoiceitem_ptr_id`) REFERENCES `shoppingcart_invoiceitem` (`id`) +CREATE TABLE `programs_programliveconfiguration` ( + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `program_uuid` varchar(50) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `provider_type` varchar(50) NOT NULL, + `lti_configuration_id` int(11) DEFAULT NULL, + PRIMARY KEY (`program_uuid`), + KEY `programs_programlive_lti_configuration_id_c72e8df4_fk_lti_consu` (`lti_configuration_id`), + CONSTRAINT `programs_programlive_lti_configuration_id_c72e8df4_fk_lti_consu` FOREIGN KEY (`lti_configuration_id`) REFERENCES `lti_consumer_lticonfiguration` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `shoppingcart_courseregistrationcodeinvoiceitem` +-- Dumping data for table `programs_programliveconfiguration` -- -LOCK TABLES `shoppingcart_courseregistrationcodeinvoiceitem` WRITE; -/*!40000 ALTER TABLE `shoppingcart_courseregistrationcodeinvoiceitem` DISABLE KEYS */; -/*!40000 ALTER TABLE `shoppingcart_courseregistrationcodeinvoiceitem` ENABLE KEYS */; +LOCK TABLES `programs_programliveconfiguration` WRITE; +/*!40000 ALTER TABLE `programs_programliveconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `programs_programliveconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `shoppingcart_donation` +-- Table structure for table `programs_programsapiconfig` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `shoppingcart_donation` ( - `orderitem_ptr_id` int(11) NOT NULL, - `donation_type` varchar(32) NOT NULL, - `course_id` varchar(255) NOT NULL, - PRIMARY KEY (`orderitem_ptr_id`), - KEY `shoppingcart_donation_ea134da7` (`course_id`), - CONSTRAINT `s_orderitem_ptr_id_18caefe119e0bd2f_fk_shoppingcart_orderitem_id` FOREIGN KEY (`orderitem_ptr_id`) REFERENCES `shoppingcart_orderitem` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `programs_programsapiconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + `marketing_path` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `programs_programsapi_changed_by_id_93e09d74_fk_auth_user` (`changed_by_id`), + CONSTRAINT `programs_programsapi_changed_by_id_93e09d74_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `shoppingcart_donation` +-- Dumping data for table `programs_programsapiconfig` -- -LOCK TABLES `shoppingcart_donation` WRITE; -/*!40000 ALTER TABLE `shoppingcart_donation` DISABLE KEYS */; -/*!40000 ALTER TABLE `shoppingcart_donation` ENABLE KEYS */; +LOCK TABLES `programs_programsapiconfig` WRITE; +/*!40000 ALTER TABLE `programs_programsapiconfig` DISABLE KEYS */; +INSERT INTO `programs_programsapiconfig` VALUES (1,'2023-02-21 14:30:11.135179',1,NULL,''); +/*!40000 ALTER TABLE `programs_programsapiconfig` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `shoppingcart_donationconfiguration` +-- Table structure for table `rss_proxy_whitelistedrssurl` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `shoppingcart_donationconfiguration` ( +CREATE TABLE `rss_proxy_whitelistedrssurl` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `url` varchar(255) NOT NULL, PRIMARY KEY (`id`), - KEY `shoppingcart_dona_changed_by_id_10ac60a96e315545_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `shoppingcart_dona_changed_by_id_10ac60a96e315545_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `url` (`url`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `shoppingcart_donationconfiguration` +-- Dumping data for table `rss_proxy_whitelistedrssurl` -- -LOCK TABLES `shoppingcart_donationconfiguration` WRITE; -/*!40000 ALTER TABLE `shoppingcart_donationconfiguration` DISABLE KEYS */; -/*!40000 ALTER TABLE `shoppingcart_donationconfiguration` ENABLE KEYS */; +LOCK TABLES `rss_proxy_whitelistedrssurl` WRITE; +/*!40000 ALTER TABLE `rss_proxy_whitelistedrssurl` DISABLE KEYS */; +/*!40000 ALTER TABLE `rss_proxy_whitelistedrssurl` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `shoppingcart_invoice` +-- Table structure for table `sap_success_factors_sapsuccessfactorsenterprisecustomerconfidb8a` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `shoppingcart_invoice` ( +CREATE TABLE `sap_success_factors_sapsuccessfactorsenterprisecustomerconfidb8a` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `company_name` varchar(255) NOT NULL, - `company_contact_name` varchar(255) NOT NULL, - `company_contact_email` varchar(255) NOT NULL, - `recipient_name` varchar(255) NOT NULL, - `recipient_email` varchar(255) NOT NULL, - `address_line_1` varchar(255) NOT NULL, - `address_line_2` varchar(255) DEFAULT NULL, - `address_line_3` varchar(255) DEFAULT NULL, - `city` varchar(255) DEFAULT NULL, - `state` varchar(255) DEFAULT NULL, - `zip` varchar(15) DEFAULT NULL, - `country` varchar(64) DEFAULT NULL, - `total_amount` double NOT NULL, - `course_id` varchar(255) NOT NULL, - `internal_reference` varchar(255) DEFAULT NULL, - `customer_reference_number` varchar(63) DEFAULT NULL, - `is_valid` tinyint(1) NOT NULL, + `active` tinyint(1) NOT NULL, + `transmission_chunk_size` int(11) NOT NULL, + `channel_worker_username` varchar(255) NOT NULL, + `catalogs_to_transmit` longtext NOT NULL, + `key` varchar(255) NOT NULL, + `sapsf_base_url` varchar(255) NOT NULL, + `sapsf_company_id` varchar(255) NOT NULL, + `sapsf_user_id` varchar(255) NOT NULL, + `secret` varchar(255) NOT NULL, + `user_type` varchar(20) NOT NULL, + `additional_locales` longtext NOT NULL, + `show_course_price` tinyint(1) NOT NULL, + `transmit_total_hours` tinyint(1) NOT NULL, + `enterprise_customer_id` char(32) NOT NULL, + `prevent_self_submit_grades` tinyint(1) NOT NULL, + `idp_id` varchar(255) NOT NULL, + `disable_learner_data_transmissions` tinyint(1) NOT NULL, + `display_name` varchar(255) NOT NULL, + `dry_run_mode_enabled` tinyint(1) NOT NULL, + `deleted_at` datetime(6) DEFAULT NULL, + `last_content_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_content_sync_errored_at` datetime(6) DEFAULT NULL, + `last_learner_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_learner_sync_errored_at` datetime(6) DEFAULT NULL, + `last_sync_attempted_at` datetime(6) DEFAULT NULL, + `last_sync_errored_at` datetime(6) DEFAULT NULL, + `last_modified_at` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `shoppingcart_invoice_c1007e8a` (`company_name`), - KEY `shoppingcart_invoice_ea134da7` (`course_id`) + KEY `sap_success_factors__enterprise_customer__4819a28c_fk_enterpris` (`enterprise_customer_id`), + CONSTRAINT `sap_success_factors__enterprise_customer__4819a28c_fk_enterpris` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `shoppingcart_invoice` +-- Dumping data for table `sap_success_factors_sapsuccessfactorsenterprisecustomerconfidb8a` -- -LOCK TABLES `shoppingcart_invoice` WRITE; -/*!40000 ALTER TABLE `shoppingcart_invoice` DISABLE KEYS */; -/*!40000 ALTER TABLE `shoppingcart_invoice` ENABLE KEYS */; +LOCK TABLES `sap_success_factors_sapsuccessfactorsenterprisecustomerconfidb8a` WRITE; +/*!40000 ALTER TABLE `sap_success_factors_sapsuccessfactorsenterprisecustomerconfidb8a` DISABLE KEYS */; +/*!40000 ALTER TABLE `sap_success_factors_sapsuccessfactorsenterprisecustomerconfidb8a` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `shoppingcart_invoicehistory` +-- Table structure for table `sap_success_factors_sapsuccessfactorsglobalconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `shoppingcart_invoicehistory` ( +CREATE TABLE `sap_success_factors_sapsuccessfactorsglobalconfiguration` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `timestamp` datetime(6) NOT NULL, - `snapshot` longtext NOT NULL, - `invoice_id` int(11) NOT NULL, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `completion_status_api_path` varchar(255) NOT NULL, + `course_api_path` varchar(255) NOT NULL, + `oauth_api_path` varchar(255) NOT NULL, + `search_student_api_path` varchar(255) NOT NULL, + `provider_id` varchar(100) NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `shoppingca_invoice_id_e314dc5a906704d_fk_shoppingcart_invoice_id` (`invoice_id`), - KEY `shoppingcart_invoicehistory_d7e6d55b` (`timestamp`), - CONSTRAINT `shoppingca_invoice_id_e314dc5a906704d_fk_shoppingcart_invoice_id` FOREIGN KEY (`invoice_id`) REFERENCES `shoppingcart_invoice` (`id`) + KEY `sap_success_factors__changed_by_id_e3241cc9_fk_auth_user` (`changed_by_id`), + CONSTRAINT `sap_success_factors__changed_by_id_e3241cc9_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `shoppingcart_invoicehistory` +-- Dumping data for table `sap_success_factors_sapsuccessfactorsglobalconfiguration` -- -LOCK TABLES `shoppingcart_invoicehistory` WRITE; -/*!40000 ALTER TABLE `shoppingcart_invoicehistory` DISABLE KEYS */; -/*!40000 ALTER TABLE `shoppingcart_invoicehistory` ENABLE KEYS */; +LOCK TABLES `sap_success_factors_sapsuccessfactorsglobalconfiguration` WRITE; +/*!40000 ALTER TABLE `sap_success_factors_sapsuccessfactorsglobalconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `sap_success_factors_sapsuccessfactorsglobalconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `shoppingcart_invoiceitem` +-- Table structure for table `sap_success_factors_sapsuccessfactorslearnerdatatransmission3ce5` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `shoppingcart_invoiceitem` ( +CREATE TABLE `sap_success_factors_sapsuccessfactorslearnerdatatransmission3ce5` ( `id` int(11) NOT NULL AUTO_INCREMENT, + `sapsf_user_id` varchar(255) NOT NULL, + `enterprise_course_enrollment_id` int(11) DEFAULT NULL, + `course_id` varchar(255) NOT NULL, + `course_completed` tinyint(1) NOT NULL, + `instructor_name` varchar(255) NOT NULL, + `grade` varchar(100) NOT NULL, + `total_hours` double DEFAULT NULL, + `sap_completed_timestamp` bigint(20) DEFAULT NULL, + `status` varchar(100) DEFAULT NULL, + `error_message` longtext, `created` datetime(6) NOT NULL, + `credit_hours` double DEFAULT NULL, + `enterprise_customer_uuid` char(32) DEFAULT NULL, `modified` datetime(6) NOT NULL, - `qty` int(11) NOT NULL, - `unit_price` decimal(30,2) NOT NULL, - `currency` varchar(8) NOT NULL, - `invoice_id` int(11) NOT NULL, + `subsection_id` varchar(255) DEFAULT NULL, + `subsection_name` varchar(255) DEFAULT NULL, + `plugin_configuration_id` int(11) DEFAULT NULL, + `friendly_status_message` varchar(255) DEFAULT NULL, + `api_record_id` int(11) DEFAULT NULL, + `content_title` varchar(255) DEFAULT NULL, + `progress_status` varchar(255) NOT NULL, + `user_email` varchar(255) DEFAULT NULL, + `completed_timestamp` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `shoppingcart_invoiceitem_f1f5d967` (`invoice_id`), - CONSTRAINT `shoppingc_invoice_id_35828791c8405d01_fk_shoppingcart_invoice_id` FOREIGN KEY (`invoice_id`) REFERENCES `shoppingcart_invoice` (`id`) + UNIQUE KEY `api_record_id` (`api_record_id`), + KEY `sap_success_factors_sapsucc_enterprise_course_enrollmen_99be77d5` (`enterprise_course_enrollment_id`), + KEY `sap_success_factors_sapsucc_subsection_id_16d4fa9f` (`subsection_id`), + KEY `sapsf_sldta_85936b55_idx` (`enterprise_customer_uuid`,`plugin_configuration_id`), + CONSTRAINT `sap_success_factors__api_record_id_17e80380_fk_integrate` FOREIGN KEY (`api_record_id`) REFERENCES `integrated_channel_apiresponserecord` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `shoppingcart_invoiceitem` +-- Dumping data for table `sap_success_factors_sapsuccessfactorslearnerdatatransmission3ce5` -- -LOCK TABLES `shoppingcart_invoiceitem` WRITE; -/*!40000 ALTER TABLE `shoppingcart_invoiceitem` DISABLE KEYS */; -/*!40000 ALTER TABLE `shoppingcart_invoiceitem` ENABLE KEYS */; +LOCK TABLES `sap_success_factors_sapsuccessfactorslearnerdatatransmission3ce5` WRITE; +/*!40000 ALTER TABLE `sap_success_factors_sapsuccessfactorslearnerdatatransmission3ce5` DISABLE KEYS */; +/*!40000 ALTER TABLE `sap_success_factors_sapsuccessfactorslearnerdatatransmission3ce5` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `shoppingcart_invoicetransaction` +-- Table structure for table `save_for_later_savedcourse` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `shoppingcart_invoicetransaction` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `save_for_later_savedcourse` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `amount` decimal(30,2) NOT NULL, - `currency` varchar(8) NOT NULL, - `comments` longtext, - `status` varchar(32) NOT NULL, - `created_by_id` int(11) NOT NULL, - `invoice_id` int(11) NOT NULL, - `last_modified_by_id` int(11) NOT NULL, + `email` varchar(254) NOT NULL, + `course_id` varchar(255) NOT NULL, + `user_id` int(11) DEFAULT NULL, + `marketing_url` varchar(255) DEFAULT NULL, + `max_effort` int(11) DEFAULT NULL, + `min_effort` int(11) DEFAULT NULL, + `org_img_url` varchar(255) DEFAULT NULL, + `weeks_to_complete` int(11) DEFAULT NULL, + `email_sent_count` int(11) DEFAULT NULL, + `reminder_email_sent` tinyint(1) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `shoppingcart_invoi_created_by_id_f5f3d90ce55a145_fk_auth_user_id` (`created_by_id`), - KEY `shoppingc_invoice_id_66bdbfa6f029288b_fk_shoppingcart_invoice_id` (`invoice_id`), - KEY `shoppingcar_last_modified_by_id_5e10e433f9576d91_fk_auth_user_id` (`last_modified_by_id`), - CONSTRAINT `shoppingc_invoice_id_66bdbfa6f029288b_fk_shoppingcart_invoice_id` FOREIGN KEY (`invoice_id`) REFERENCES `shoppingcart_invoice` (`id`), - CONSTRAINT `shoppingcar_last_modified_by_id_5e10e433f9576d91_fk_auth_user_id` FOREIGN KEY (`last_modified_by_id`) REFERENCES `auth_user` (`id`), - CONSTRAINT `shoppingcart_invoi_created_by_id_f5f3d90ce55a145_fk_auth_user_id` FOREIGN KEY (`created_by_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `save_for_later_savedcourse_email_course_id_1f83cc89_uniq` (`email`,`course_id`), + KEY `save_for_later_savedcourse_email_a7a78246` (`email`), + KEY `save_for_later_savedcourse_course_id_563c1de2` (`course_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `shoppingcart_invoicetransaction` +-- Dumping data for table `save_for_later_savedcourse` -- -LOCK TABLES `shoppingcart_invoicetransaction` WRITE; -/*!40000 ALTER TABLE `shoppingcart_invoicetransaction` DISABLE KEYS */; -/*!40000 ALTER TABLE `shoppingcart_invoicetransaction` ENABLE KEYS */; +LOCK TABLES `save_for_later_savedcourse` WRITE; +/*!40000 ALTER TABLE `save_for_later_savedcourse` DISABLE KEYS */; +/*!40000 ALTER TABLE `save_for_later_savedcourse` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `shoppingcart_order` +-- Table structure for table `save_for_later_savedprogram` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `shoppingcart_order` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `currency` varchar(8) NOT NULL, - `status` varchar(32) NOT NULL, - `purchase_time` datetime(6) DEFAULT NULL, - `refunded_time` datetime(6) DEFAULT NULL, - `bill_to_first` varchar(64) NOT NULL, - `bill_to_last` varchar(64) NOT NULL, - `bill_to_street1` varchar(128) NOT NULL, - `bill_to_street2` varchar(128) NOT NULL, - `bill_to_city` varchar(64) NOT NULL, - `bill_to_state` varchar(8) NOT NULL, - `bill_to_postalcode` varchar(16) NOT NULL, - `bill_to_country` varchar(64) NOT NULL, - `bill_to_ccnum` varchar(8) NOT NULL, - `bill_to_cardtype` varchar(32) NOT NULL, - `processor_reply_dump` longtext NOT NULL, - `company_name` varchar(255) DEFAULT NULL, - `company_contact_name` varchar(255) DEFAULT NULL, - `company_contact_email` varchar(255) DEFAULT NULL, - `recipient_name` varchar(255) DEFAULT NULL, - `recipient_email` varchar(255) DEFAULT NULL, - `customer_reference_number` varchar(63) DEFAULT NULL, - `order_type` varchar(32) NOT NULL, - `user_id` int(11) NOT NULL, +CREATE TABLE `save_for_later_savedprogram` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `email` varchar(254) NOT NULL, + `program_uuid` char(32) NOT NULL, + `user_id` int(11) DEFAULT NULL, + `email_sent_count` int(11) DEFAULT NULL, + `reminder_email_sent` tinyint(1) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `shoppingcart_order_user_id_4e1f3e3b06ee22a6_fk_auth_user_id` (`user_id`), - CONSTRAINT `shoppingcart_order_user_id_4e1f3e3b06ee22a6_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `save_for_later_savedprogram_email_program_uuid_2ea5e0c1_uniq` (`email`,`program_uuid`), + KEY `save_for_later_savedprogram_email_af38009b` (`email`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `shoppingcart_order` +-- Dumping data for table `save_for_later_savedprogram` -- -LOCK TABLES `shoppingcart_order` WRITE; -/*!40000 ALTER TABLE `shoppingcart_order` DISABLE KEYS */; -/*!40000 ALTER TABLE `shoppingcart_order` ENABLE KEYS */; +LOCK TABLES `save_for_later_savedprogram` WRITE; +/*!40000 ALTER TABLE `save_for_later_savedprogram` DISABLE KEYS */; +/*!40000 ALTER TABLE `save_for_later_savedprogram` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `shoppingcart_orderitem` +-- Table structure for table `schedules_historicalschedule` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `shoppingcart_orderitem` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `schedules_historicalschedule` ( + `id` int(11) NOT NULL, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `status` varchar(32) NOT NULL, - `qty` int(11) NOT NULL, - `unit_cost` decimal(30,2) NOT NULL, - `list_price` decimal(30,2) DEFAULT NULL, - `line_desc` varchar(1024) NOT NULL, - `currency` varchar(8) NOT NULL, - `fulfilled_time` datetime(6) DEFAULT NULL, - `refund_requested_time` datetime(6) DEFAULT NULL, - `service_fee` decimal(30,2) NOT NULL, - `report_comments` longtext NOT NULL, - `order_id` int(11) NOT NULL, - `user_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `shoppingcart_orderitem_9acb4454` (`status`), - KEY `shoppingcart_orderitem_3b927c91` (`fulfilled_time`), - KEY `shoppingcart_orderitem_76ed2946` (`refund_requested_time`), - KEY `shoppingcart_orderitem_69dfcb07` (`order_id`), - KEY `shoppingcart_orderitem_e8701ad4` (`user_id`), - CONSTRAINT `shoppingcart__order_id_325e5347f18743e3_fk_shoppingcart_order_id` FOREIGN KEY (`order_id`) REFERENCES `shoppingcart_order` (`id`), - CONSTRAINT `shoppingcart_orderitem_user_id_5708ec7aabe24a31_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + `active` tinyint(1) NOT NULL, + `start_date` datetime(6) DEFAULT NULL, + `upgrade_deadline` datetime(6) DEFAULT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `enrollment_id` int(11) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `schedules_historicalschedule_id_f1648c81` (`id`), + KEY `schedules_historicalschedule_start_date_8c02ff20` (`start_date`), + KEY `schedules_historicalschedule_upgrade_deadline_ba67bbd9` (`upgrade_deadline`), + KEY `schedules_historicalschedule_enrollment_id_cd620413` (`enrollment_id`), + KEY `schedules_historical_history_user_id_6f5d6d7b_fk_auth_user` (`history_user_id`), + CONSTRAINT `schedules_historical_history_user_id_6f5d6d7b_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `shoppingcart_orderitem` +-- Dumping data for table `schedules_historicalschedule` -- -LOCK TABLES `shoppingcart_orderitem` WRITE; -/*!40000 ALTER TABLE `shoppingcart_orderitem` DISABLE KEYS */; -/*!40000 ALTER TABLE `shoppingcart_orderitem` ENABLE KEYS */; +LOCK TABLES `schedules_historicalschedule` WRITE; +/*!40000 ALTER TABLE `schedules_historicalschedule` DISABLE KEYS */; +/*!40000 ALTER TABLE `schedules_historicalschedule` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `shoppingcart_paidcourseregistration` +-- Table structure for table `schedules_schedule` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `shoppingcart_paidcourseregistration` ( - `orderitem_ptr_id` int(11) NOT NULL, - `course_id` varchar(128) NOT NULL, - `mode` varchar(50) NOT NULL, - `course_enrollment_id` int(11) DEFAULT NULL, - PRIMARY KEY (`orderitem_ptr_id`), - KEY `D8d681d7e59c2dcf2ea55e7e5e06553d` (`course_enrollment_id`), - KEY `shoppingcart_paidcourseregistration_ea134da7` (`course_id`), - KEY `shoppingcart_paidcourseregistration_15d61712` (`mode`), - CONSTRAINT `D8d681d7e59c2dcf2ea55e7e5e06553d` FOREIGN KEY (`course_enrollment_id`) REFERENCES `student_courseenrollment` (`id`), - CONSTRAINT `s_orderitem_ptr_id_3c991acc5d644f13_fk_shoppingcart_orderitem_id` FOREIGN KEY (`orderitem_ptr_id`) REFERENCES `shoppingcart_orderitem` (`id`) +CREATE TABLE `schedules_schedule` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `active` tinyint(1) NOT NULL, + `upgrade_deadline` datetime(6) DEFAULT NULL, + `enrollment_id` int(11) NOT NULL, + `start_date` datetime(6) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `enrollment_id` (`enrollment_id`), + KEY `schedules_schedule_upgrade_deadline_0079081d` (`upgrade_deadline`), + KEY `schedules_schedule_start_date_3a1c341e` (`start_date`), + CONSTRAINT `schedules_schedule_enrollment_id_91bf8152_fk_student_c` FOREIGN KEY (`enrollment_id`) REFERENCES `student_courseenrollment` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `shoppingcart_paidcourseregistration` +-- Dumping data for table `schedules_schedule` -- -LOCK TABLES `shoppingcart_paidcourseregistration` WRITE; -/*!40000 ALTER TABLE `shoppingcart_paidcourseregistration` DISABLE KEYS */; -/*!40000 ALTER TABLE `shoppingcart_paidcourseregistration` ENABLE KEYS */; +LOCK TABLES `schedules_schedule` WRITE; +/*!40000 ALTER TABLE `schedules_schedule` DISABLE KEYS */; +/*!40000 ALTER TABLE `schedules_schedule` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `shoppingcart_paidcourseregistrationannotation` +-- Table structure for table `schedules_scheduleconfig` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `shoppingcart_paidcourseregistrationannotation` ( +CREATE TABLE `schedules_scheduleconfig` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `course_id` varchar(128) NOT NULL, - `annotation` longtext, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `enqueue_recurring_nudge` tinyint(1) NOT NULL, + `deliver_recurring_nudge` tinyint(1) NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + `site_id` int(11) NOT NULL, + `deliver_upgrade_reminder` tinyint(1) NOT NULL, + `enqueue_upgrade_reminder` tinyint(1) NOT NULL, + `deliver_course_update` tinyint(1) NOT NULL, + `enqueue_course_update` tinyint(1) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `course_id` (`course_id`) + KEY `schedules_scheduleconfig_changed_by_id_38ef599b_fk_auth_user_id` (`changed_by_id`), + KEY `schedules_scheduleconfig_site_id_44296ee1_fk_django_site_id` (`site_id`), + CONSTRAINT `schedules_scheduleconfig_changed_by_id_38ef599b_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `schedules_scheduleconfig_site_id_44296ee1_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `shoppingcart_paidcourseregistrationannotation` +-- Dumping data for table `schedules_scheduleconfig` -- -LOCK TABLES `shoppingcart_paidcourseregistrationannotation` WRITE; -/*!40000 ALTER TABLE `shoppingcart_paidcourseregistrationannotation` DISABLE KEYS */; -/*!40000 ALTER TABLE `shoppingcart_paidcourseregistrationannotation` ENABLE KEYS */; +LOCK TABLES `schedules_scheduleconfig` WRITE; +/*!40000 ALTER TABLE `schedules_scheduleconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `schedules_scheduleconfig` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `shoppingcart_registrationcoderedemption` +-- Table structure for table `schedules_scheduleexperience` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `shoppingcart_registrationcoderedemption` ( +CREATE TABLE `schedules_scheduleexperience` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `redeemed_at` datetime(6) DEFAULT NULL, - `course_enrollment_id` int(11) DEFAULT NULL, - `order_id` int(11) DEFAULT NULL, - `redeemed_by_id` int(11) NOT NULL, - `registration_code_id` int(11) NOT NULL, + `experience_type` smallint(5) unsigned NOT NULL, + `schedule_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `D6654a8efe686d45804b6116dfc6bee1` (`course_enrollment_id`), - KEY `shoppingcart_r_order_id_752ddc3003afe96_fk_shoppingcart_order_id` (`order_id`), - KEY `shoppingcart_reg_redeemed_by_id_455df2dd74004fff_fk_auth_user_id` (`redeemed_by_id`), - KEY `D1ed44c4be114e424571929bce972f54` (`registration_code_id`), - CONSTRAINT `D1ed44c4be114e424571929bce972f54` FOREIGN KEY (`registration_code_id`) REFERENCES `shoppingcart_courseregistrationcode` (`id`), - CONSTRAINT `D6654a8efe686d45804b6116dfc6bee1` FOREIGN KEY (`course_enrollment_id`) REFERENCES `student_courseenrollment` (`id`), - CONSTRAINT `shoppingcart_r_order_id_752ddc3003afe96_fk_shoppingcart_order_id` FOREIGN KEY (`order_id`) REFERENCES `shoppingcart_order` (`id`), - CONSTRAINT `shoppingcart_reg_redeemed_by_id_455df2dd74004fff_fk_auth_user_id` FOREIGN KEY (`redeemed_by_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `schedule_id` (`schedule_id`), + CONSTRAINT `schedules_scheduleex_schedule_id_ed95c8e7_fk_schedules` FOREIGN KEY (`schedule_id`) REFERENCES `schedules_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `shoppingcart_registrationcoderedemption` +-- Dumping data for table `schedules_scheduleexperience` -- -LOCK TABLES `shoppingcart_registrationcoderedemption` WRITE; -/*!40000 ALTER TABLE `shoppingcart_registrationcoderedemption` DISABLE KEYS */; -/*!40000 ALTER TABLE `shoppingcart_registrationcoderedemption` ENABLE KEYS */; +LOCK TABLES `schedules_scheduleexperience` WRITE; +/*!40000 ALTER TABLE `schedules_scheduleexperience` DISABLE KEYS */; +/*!40000 ALTER TABLE `schedules_scheduleexperience` ENABLE KEYS */; UNLOCK TABLES; -- @@ -8072,13 +12035,13 @@ UNLOCK TABLES; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `site_configuration_siteconfiguration` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `values` longtext NOT NULL, `site_id` int(11) NOT NULL, `enabled` tinyint(1) NOT NULL, + `site_values` longtext NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `site_id` (`site_id`), - CONSTRAINT `site_configuration_si_site_id_51c4aa24ab9238cb_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + CONSTRAINT `site_configuration_s_site_id_84302d1f_fk_django_si` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8087,6 +12050,7 @@ CREATE TABLE `site_configuration_siteconfiguration` ( LOCK TABLES `site_configuration_siteconfiguration` WRITE; /*!40000 ALTER TABLE `site_configuration_siteconfiguration` DISABLE KEYS */; +INSERT INTO `site_configuration_siteconfiguration` VALUES (1,1,1,'{\n \"COURSE_CATALOG_API_URL\": \"http://edx.devstack.discovery:18381/api/v1/\"\n}'); /*!40000 ALTER TABLE `site_configuration_siteconfiguration` ENABLE KEYS */; UNLOCK TABLES; @@ -8100,13 +12064,13 @@ CREATE TABLE `site_configuration_siteconfigurationhistory` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `values` longtext NOT NULL, `site_id` int(11) NOT NULL, `enabled` tinyint(1) NOT NULL, + `site_values` longtext NOT NULL, PRIMARY KEY (`id`), - KEY `site_configuration_si_site_id_20c9c1a5f8c3358e_fk_django_site_id` (`site_id`), - CONSTRAINT `site_configuration_si_site_id_20c9c1a5f8c3358e_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + KEY `site_configuration_s_site_id_272f5c1a_fk_django_si` (`site_id`), + CONSTRAINT `site_configuration_s_site_id_272f5c1a_fk_django_si` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8115,6 +12079,7 @@ CREATE TABLE `site_configuration_siteconfigurationhistory` ( LOCK TABLES `site_configuration_siteconfigurationhistory` WRITE; /*!40000 ALTER TABLE `site_configuration_siteconfigurationhistory` DISABLE KEYS */; +INSERT INTO `site_configuration_siteconfigurationhistory` VALUES (1,'2023-02-21 14:30:11.153776','2023-02-21 14:30:11.153776',1,1,'{\n \"COURSE_CATALOG_API_URL\": \"http://edx.devstack.discovery:18381/api/v1/\"\n}'); /*!40000 ALTER TABLE `site_configuration_siteconfigurationhistory` ENABLE KEYS */; UNLOCK TABLES; @@ -8133,7 +12098,7 @@ CREATE TABLE `social_auth_association` ( `lifetime` int(11) NOT NULL, `assoc_type` varchar(64) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `social_auth_association_server_url_17bf7e87f2968244_uniq` (`server_url`,`handle`) + UNIQUE KEY `social_auth_association_server_url_handle_078befa2_uniq` (`server_url`,`handle`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -8157,9 +12122,11 @@ CREATE TABLE `social_auth_code` ( `email` varchar(254) NOT NULL, `code` varchar(32) NOT NULL, `verified` tinyint(1) NOT NULL, + `timestamp` datetime(6) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `social_auth_code_email_75f27066d057e3b6_uniq` (`email`,`code`), - KEY `social_auth_code_c1336794` (`code`) + UNIQUE KEY `social_auth_code_email_code_801b2d02_uniq` (`email`,`code`), + KEY `social_auth_code_code_a2393167` (`code`), + KEY `social_auth_code_timestamp_176b341f` (`timestamp`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -8184,7 +12151,7 @@ CREATE TABLE `social_auth_nonce` ( `timestamp` int(11) NOT NULL, `salt` varchar(65) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `social_auth_nonce_server_url_36601f978463b4_uniq` (`server_url`,`timestamp`,`salt`) + UNIQUE KEY `social_auth_nonce_server_url_timestamp_salt_f6284463_uniq` (`server_url`,`timestamp`,`salt`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -8209,8 +12176,10 @@ CREATE TABLE `social_auth_partial` ( `next_step` smallint(5) unsigned NOT NULL, `backend` varchar(32) NOT NULL, `data` longtext NOT NULL, + `timestamp` datetime(6) NOT NULL, PRIMARY KEY (`id`), - KEY `social_auth_partial_94a08da1` (`token`) + KEY `social_auth_partial_token_3017fea3` (`token`), + KEY `social_auth_partial_timestamp_50f2119f` (`timestamp`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -8235,10 +12204,13 @@ CREATE TABLE `social_auth_usersocialauth` ( `uid` varchar(255) NOT NULL, `extra_data` longtext NOT NULL, `user_id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `social_auth_usersocialauth_provider_2f763109e2c4a1fb_uniq` (`provider`,`uid`), - KEY `social_auth_usersociala_user_id_193b2d80880502b2_fk_auth_user_id` (`user_id`), - CONSTRAINT `social_auth_usersociala_user_id_193b2d80880502b2_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `social_auth_usersocialauth_provider_uid_e6b5e668_uniq` (`provider`,`uid`), + KEY `social_auth_usersocialauth_user_id_17d28448_fk_auth_user_id` (`user_id`), + KEY `social_auth_usersocialauth_uid_796e51dc` (`uid`), + CONSTRAINT `social_auth_usersocialauth_user_id_17d28448_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -8268,8 +12240,8 @@ CREATE TABLE `splash_splashconfig` ( `redirect_url` varchar(200) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `splash_splashconf_changed_by_id_735b38ad8ed19270_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `splash_splashconf_changed_by_id_735b38ad8ed19270_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `splash_splashconfig_changed_by_id_883b17ba_fk_auth_user_id` (`changed_by_id`), + CONSTRAINT `splash_splashconfig_changed_by_id_883b17ba_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -8283,140 +12255,355 @@ LOCK TABLES `splash_splashconfig` WRITE; UNLOCK TABLES; -- --- Table structure for table `static_replace_assetbaseurlconfig` +-- Table structure for table `split_modulestore_django_historicalsplitmodulestorecourseindex` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `split_modulestore_django_historicalsplitmodulestorecourseindex` ( + `id` int(11) NOT NULL, + `objectid` varchar(24) NOT NULL, + `course_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `org` varchar(255) NOT NULL, + `draft_version` varchar(24) NOT NULL, + `published_version` varchar(24) NOT NULL, + `library_version` varchar(24) NOT NULL, + `wiki_slug` varchar(255) NOT NULL, + `base_store` varchar(20) NOT NULL, + `edited_on` datetime(6) NOT NULL, + `last_update` datetime(6) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `edited_by_id` int(11) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `split_modulestore_dj_history_user_id_754e3954_fk_auth_user` (`history_user_id`), + KEY `split_modulestore_django_hi_id_cca5b74e` (`id`), + KEY `split_modulestore_django_hi_objectid_9082e8b9` (`objectid`), + KEY `split_modulestore_django_hi_course_id_5d260730` (`course_id`), + KEY `split_modulestore_django_hi_org_fa289e5d` (`org`), + KEY `split_modulestore_django_hi_wiki_slug_74bcb405` (`wiki_slug`), + CONSTRAINT `split_modulestore_dj_history_user_id_754e3954_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `split_modulestore_django_historicalsplitmodulestorecourseindex` +-- + +LOCK TABLES `split_modulestore_django_historicalsplitmodulestorecourseindex` WRITE; +/*!40000 ALTER TABLE `split_modulestore_django_historicalsplitmodulestorecourseindex` DISABLE KEYS */; +/*!40000 ALTER TABLE `split_modulestore_django_historicalsplitmodulestorecourseindex` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `split_modulestore_django_splitmodulestorecourseindex` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `split_modulestore_django_splitmodulestorecourseindex` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `objectid` varchar(24) NOT NULL, + `course_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `org` varchar(255) NOT NULL, + `draft_version` varchar(24) NOT NULL, + `published_version` varchar(24) NOT NULL, + `library_version` varchar(24) NOT NULL, + `wiki_slug` varchar(255) NOT NULL, + `base_store` varchar(20) NOT NULL, + `edited_on` datetime(6) NOT NULL, + `last_update` datetime(6) NOT NULL, + `edited_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `objectid` (`objectid`), + UNIQUE KEY `course_id` (`course_id`), + UNIQUE KEY `course_id_2` (`course_id`), + KEY `split_modulestore_django_sp_org_47b4a2ef` (`org`), + KEY `split_modulestore_django_sp_wiki_slug_20040736` (`wiki_slug`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `split_modulestore_django_splitmodulestorecourseindex` +-- + +LOCK TABLES `split_modulestore_django_splitmodulestorecourseindex` WRITE; +/*!40000 ALTER TABLE `split_modulestore_django_splitmodulestorecourseindex` DISABLE KEYS */; +/*!40000 ALTER TABLE `split_modulestore_django_splitmodulestorecourseindex` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `staffgrader_submissiongradinglock` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `staffgrader_submissiongradinglock` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `submission_uuid` varchar(128) NOT NULL, + `owner_id` varchar(40) NOT NULL, + `created_at` datetime(6) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `submission_uuid` (`submission_uuid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `staffgrader_submissiongradinglock` +-- + +LOCK TABLES `staffgrader_submissiongradinglock` WRITE; +/*!40000 ALTER TABLE `staffgrader_submissiongradinglock` DISABLE KEYS */; +/*!40000 ALTER TABLE `staffgrader_submissiongradinglock` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `static_replace_assetbaseurlconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `static_replace_assetbaseurlconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `base_url` longtext NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `static_replace_asset_changed_by_id_f592e050_fk_auth_user` (`changed_by_id`), + CONSTRAINT `static_replace_asset_changed_by_id_f592e050_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `static_replace_assetbaseurlconfig` +-- + +LOCK TABLES `static_replace_assetbaseurlconfig` WRITE; +/*!40000 ALTER TABLE `static_replace_assetbaseurlconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `static_replace_assetbaseurlconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `static_replace_assetexcludedextensionsconfig` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `static_replace_assetexcludedextensionsconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `excluded_extensions` longtext NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `static_replace_asset_changed_by_id_e58299b3_fk_auth_user` (`changed_by_id`), + CONSTRAINT `static_replace_asset_changed_by_id_e58299b3_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `static_replace_assetexcludedextensionsconfig` +-- + +LOCK TABLES `static_replace_assetexcludedextensionsconfig` WRITE; +/*!40000 ALTER TABLE `static_replace_assetexcludedextensionsconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `static_replace_assetexcludedextensionsconfig` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `status_coursemessage` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `status_coursemessage` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `course_key` varchar(255) NOT NULL, + `message` longtext, + `global_message_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `status_coursemessage_global_message_id_01bbfbe6_fk_status_gl` (`global_message_id`), + KEY `status_coursemessage_course_key_90c77a2e` (`course_key`), + CONSTRAINT `status_coursemessage_global_message_id_01bbfbe6_fk_status_gl` FOREIGN KEY (`global_message_id`) REFERENCES `status_globalstatusmessage` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `status_coursemessage` +-- + +LOCK TABLES `status_coursemessage` WRITE; +/*!40000 ALTER TABLE `status_coursemessage` DISABLE KEYS */; +/*!40000 ALTER TABLE `status_coursemessage` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `status_globalstatusmessage` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `status_globalstatusmessage` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `message` longtext, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `status_globalstatusm_changed_by_id_3c627848_fk_auth_user` (`changed_by_id`), + CONSTRAINT `status_globalstatusm_changed_by_id_3c627848_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `status_globalstatusmessage` +-- + +LOCK TABLES `status_globalstatusmessage` WRITE; +/*!40000 ALTER TABLE `status_globalstatusmessage` DISABLE KEYS */; +/*!40000 ALTER TABLE `status_globalstatusmessage` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `student_accountrecoveryconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `static_replace_assetbaseurlconfig` ( +CREATE TABLE `student_accountrecoveryconfiguration` ( `id` int(11) NOT NULL AUTO_INCREMENT, `change_date` datetime(6) NOT NULL, `enabled` tinyint(1) NOT NULL, - `base_url` longtext NOT NULL, + `csv_file` varchar(100) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `static_replace_as_changed_by_id_796c2e5b1bee7027_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `static_replace_as_changed_by_id_796c2e5b1bee7027_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `student_accountrecov_changed_by_id_d9d1ddf6_fk_auth_user` (`changed_by_id`), + CONSTRAINT `student_accountrecov_changed_by_id_d9d1ddf6_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `static_replace_assetbaseurlconfig` +-- Dumping data for table `student_accountrecoveryconfiguration` -- -LOCK TABLES `static_replace_assetbaseurlconfig` WRITE; -/*!40000 ALTER TABLE `static_replace_assetbaseurlconfig` DISABLE KEYS */; -/*!40000 ALTER TABLE `static_replace_assetbaseurlconfig` ENABLE KEYS */; +LOCK TABLES `student_accountrecoveryconfiguration` WRITE; +/*!40000 ALTER TABLE `student_accountrecoveryconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `student_accountrecoveryconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `static_replace_assetexcludedextensionsconfig` +-- Table structure for table `student_allowedauthuser` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `static_replace_assetexcludedextensionsconfig` ( +CREATE TABLE `student_allowedauthuser` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `excluded_extensions` longtext NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `email` varchar(254) NOT NULL, + `site_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `static_replace_as_changed_by_id_5885827de4f271dc_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `static_replace_as_changed_by_id_5885827de4f271dc_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `email` (`email`), + KEY `student_allowedauthuser_site_id_9a6aae9b_fk_django_site_id` (`site_id`), + CONSTRAINT `student_allowedauthuser_site_id_9a6aae9b_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `static_replace_assetexcludedextensionsconfig` +-- Dumping data for table `student_allowedauthuser` -- -LOCK TABLES `static_replace_assetexcludedextensionsconfig` WRITE; -/*!40000 ALTER TABLE `static_replace_assetexcludedextensionsconfig` DISABLE KEYS */; -/*!40000 ALTER TABLE `static_replace_assetexcludedextensionsconfig` ENABLE KEYS */; +LOCK TABLES `student_allowedauthuser` WRITE; +/*!40000 ALTER TABLE `student_allowedauthuser` DISABLE KEYS */; +/*!40000 ALTER TABLE `student_allowedauthuser` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `status_coursemessage` +-- Table structure for table `student_anonymoususerid` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `status_coursemessage` ( +CREATE TABLE `student_anonymoususerid` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `course_key` varchar(255) NOT NULL, - `message` longtext, - `global_message_id` int(11) NOT NULL, + `anonymous_user_id` varchar(32) NOT NULL, + `course_id` varchar(255) NOT NULL, + `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `status_coursemessage_c8235886` (`course_key`), - KEY `status_coursemessage_ba4cddbf` (`global_message_id`), - CONSTRAINT `be73d6672c3000f87521c37bc8ad4139` FOREIGN KEY (`global_message_id`) REFERENCES `status_globalstatusmessage` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + UNIQUE KEY `anonymous_user_id` (`anonymous_user_id`), + KEY `student_anonymoususerid_user_id_0fb2ad5c_fk_auth_user_id` (`user_id`), + KEY `student_anonymoususerid_course_id_99cc6a18` (`course_id`), + CONSTRAINT `student_anonymoususerid_user_id_0fb2ad5c_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `status_coursemessage` +-- Dumping data for table `student_anonymoususerid` -- -LOCK TABLES `status_coursemessage` WRITE; -/*!40000 ALTER TABLE `status_coursemessage` DISABLE KEYS */; -/*!40000 ALTER TABLE `status_coursemessage` ENABLE KEYS */; +LOCK TABLES `student_anonymoususerid` WRITE; +/*!40000 ALTER TABLE `student_anonymoususerid` DISABLE KEYS */; +INSERT INTO `student_anonymoususerid` VALUES (1,'c9eac113d5ec22b2e5c36ea75b380659','',11); +/*!40000 ALTER TABLE `student_anonymoususerid` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `status_globalstatusmessage` +-- Table structure for table `student_bulkchangeenrollmentconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `status_globalstatusmessage` ( +CREATE TABLE `student_bulkchangeenrollmentconfiguration` ( `id` int(11) NOT NULL AUTO_INCREMENT, `change_date` datetime(6) NOT NULL, `enabled` tinyint(1) NOT NULL, - `message` longtext, + `csv_file` varchar(100) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `status_globalstat_changed_by_id_76ab1cf17be5644d_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `status_globalstat_changed_by_id_76ab1cf17be5644d_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `student_bulkchangeen_changed_by_id_38bf23de_fk_auth_user` (`changed_by_id`), + CONSTRAINT `student_bulkchangeen_changed_by_id_38bf23de_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `status_globalstatusmessage` +-- Dumping data for table `student_bulkchangeenrollmentconfiguration` -- -LOCK TABLES `status_globalstatusmessage` WRITE; -/*!40000 ALTER TABLE `status_globalstatusmessage` DISABLE KEYS */; -/*!40000 ALTER TABLE `status_globalstatusmessage` ENABLE KEYS */; +LOCK TABLES `student_bulkchangeenrollmentconfiguration` WRITE; +/*!40000 ALTER TABLE `student_bulkchangeenrollmentconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `student_bulkchangeenrollmentconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `student_anonymoususerid` +-- Table structure for table `student_bulkunenrollconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `student_anonymoususerid` ( +CREATE TABLE `student_bulkunenrollconfiguration` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `anonymous_user_id` varchar(32) NOT NULL, - `course_id` varchar(255) NOT NULL, - `user_id` int(11) NOT NULL, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `csv_file` varchar(100) NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `anonymous_user_id` (`anonymous_user_id`), - KEY `student_anonymoususerid_user_id_1a18af72cf6b95f7_fk_auth_user_id` (`user_id`), - KEY `student_anonymoususerid_ea134da7` (`course_id`), - CONSTRAINT `student_anonymoususerid_user_id_1a18af72cf6b95f7_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; + KEY `student_bulkunenroll_changed_by_id_7b6131b9_fk_auth_user` (`changed_by_id`), + CONSTRAINT `student_bulkunenroll_changed_by_id_7b6131b9_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `student_anonymoususerid` +-- Dumping data for table `student_bulkunenrollconfiguration` -- -LOCK TABLES `student_anonymoususerid` WRITE; -/*!40000 ALTER TABLE `student_anonymoususerid` DISABLE KEYS */; -INSERT INTO `student_anonymoususerid` VALUES (1,'184991cfb69ca3afd578cc3c2b9d5f37','',4),(2,'5afe5d9bb03796557ee2614f5c9611fb','',1); -/*!40000 ALTER TABLE `student_anonymoususerid` ENABLE KEYS */; +LOCK TABLES `student_bulkunenrollconfiguration` WRITE; +/*!40000 ALTER TABLE `student_bulkunenrollconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `student_bulkunenrollconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- @@ -8432,11 +12619,11 @@ CREATE TABLE `student_courseaccessrole` ( `role` varchar(64) NOT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `student_courseaccessrole_user_id_3203176c4f474414_uniq` (`user_id`,`org`,`course_id`,`role`), - KEY `student_courseaccessrole_5a445d71` (`org`), - KEY `student_courseaccessrole_ea134da7` (`course_id`), - KEY `student_courseaccessrole_29a7e964` (`role`), - CONSTRAINT `student_courseaccessrol_user_id_5e0f68b978ad0792_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `student_courseaccessrole_user_id_org_course_id_ro_bbf71126_uniq` (`user_id`,`org`,`course_id`,`role`), + KEY `student_courseaccessrole_org_6d2dbb7a` (`org`), + KEY `student_courseaccessrole_course_id_60fb355e` (`course_id`), + KEY `student_courseaccessrole_role_1ac888ea` (`role`), + CONSTRAINT `student_courseaccessrole_user_id_90cf21fe_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -8463,11 +12650,13 @@ CREATE TABLE `student_courseenrollment` ( `mode` varchar(100) NOT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `student_courseenrollment_user_id_2d2a572f07dd8e37_uniq` (`user_id`,`course_id`), - KEY `student_courseenrollment_ea134da7` (`course_id`), - KEY `student_courseenrollment_e2fa5388` (`created`), - CONSTRAINT `student_courseenrollmen_user_id_15beaaebc8333ce4_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; + UNIQUE KEY `student_courseenrollment_user_id_course_id_5d34a47f_uniq` (`user_id`,`course_id`), + KEY `student_courseenrollment_user_id_4263a8e2` (`user_id`), + KEY `student_cou_user_id_b19dcd_idx` (`user_id`,`created`), + KEY `student_courseenrollment_course_id_a6f93be8` (`course_id`), + KEY `student_courseenrollment_created_79829893` (`created`), + CONSTRAINT `student_courseenrollment_user_id_4263a8e2_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8476,10 +12665,46 @@ CREATE TABLE `student_courseenrollment` ( LOCK TABLES `student_courseenrollment` WRITE; /*!40000 ALTER TABLE `student_courseenrollment` DISABLE KEYS */; -INSERT INTO `student_courseenrollment` VALUES (1,'course-v1:edX+DemoX+Demo_Course','2017-06-07 00:44:28.308850',1,'audit',6),(2,'course-v1:edX+DemoX+Demo_Course','2017-06-07 00:44:32.887985',1,'audit',7),(3,'course-v1:edX+DemoX+Demo_Course','2017-06-07 00:44:37.447686',1,'audit',8),(4,'course-v1:edX+DemoX+Demo_Course','2017-06-07 00:44:41.997373',1,'audit',9); /*!40000 ALTER TABLE `student_courseenrollment` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `student_courseenrollment_history` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `student_courseenrollment_history` ( + `id` int(11) NOT NULL, + `created` datetime(6) DEFAULT NULL, + `is_active` tinyint(1) NOT NULL, + `mode` varchar(100) NOT NULL, + `history_id` char(32) NOT NULL, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `course_id` varchar(255) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `student_courseenroll_history_user_id_7065c772_fk_auth_user` (`history_user_id`), + KEY `student_courseenrollment_history_id_2d80b9b3` (`id`), + KEY `student_courseenrollment_history_created_6b3154af` (`created`), + KEY `student_courseenrollment_history_course_id_98f13917` (`course_id`), + KEY `student_courseenrollment_history_user_id_5f94c628` (`user_id`), + CONSTRAINT `student_courseenroll_history_user_id_7065c772_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `student_courseenrollment_history` +-- + +LOCK TABLES `student_courseenrollment_history` WRITE; +/*!40000 ALTER TABLE `student_courseenrollment_history` DISABLE KEYS */; +/*!40000 ALTER TABLE `student_courseenrollment_history` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `student_courseenrollmentallowed` -- @@ -8492,11 +12717,14 @@ CREATE TABLE `student_courseenrollmentallowed` ( `course_id` varchar(255) NOT NULL, `auto_enroll` tinyint(1) NOT NULL, `created` datetime(6) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `student_courseenrollmentallowed_email_6f3eafd4a6c58591_uniq` (`email`,`course_id`), - KEY `student_courseenrollmentallowed_0c83f57c` (`email`), - KEY `student_courseenrollmentallowed_ea134da7` (`course_id`), - KEY `student_courseenrollmentallowed_e2fa5388` (`created`) + UNIQUE KEY `student_courseenrollmentallowed_email_course_id_1e23ed5e_uniq` (`email`,`course_id`), + KEY `student_courseenrollmentallowed_user_id_5875cce6_fk_auth_user_id` (`user_id`), + KEY `student_courseenrollmentallowed_email_969706a0` (`email`), + KEY `student_courseenrollmentallowed_course_id_67eff667` (`course_id`), + KEY `student_courseenrollmentallowed_created_b2066658` (`created`), + CONSTRAINT `student_courseenrollmentallowed_user_id_5875cce6_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -8522,8 +12750,8 @@ CREATE TABLE `student_courseenrollmentattribute` ( `value` varchar(255) NOT NULL, `enrollment_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `stu_enrollment_id_674188e6fcb084c_fk_student_courseenrollment_id` (`enrollment_id`), - CONSTRAINT `stu_enrollment_id_674188e6fcb084c_fk_student_courseenrollment_id` FOREIGN KEY (`enrollment_id`) REFERENCES `student_courseenrollment` (`id`) + KEY `student_courseenroll_enrollment_id_b2173db0_fk_student_c` (`enrollment_id`), + CONSTRAINT `student_courseenroll_enrollment_id_b2173db0_fk_student_c` FOREIGN KEY (`enrollment_id`) REFERENCES `student_courseenrollment` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -8536,6 +12764,34 @@ LOCK TABLES `student_courseenrollmentattribute` WRITE; /*!40000 ALTER TABLE `student_courseenrollmentattribute` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `student_courseenrollmentcelebration` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `student_courseenrollmentcelebration` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `celebrate_first_section` tinyint(1) NOT NULL, + `enrollment_id` int(11) NOT NULL, + `celebrate_weekly_goal` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `enrollment_id` (`enrollment_id`), + CONSTRAINT `student_courseenroll_enrollment_id_c697e4ce_fk_student_c` FOREIGN KEY (`enrollment_id`) REFERENCES `student_courseenrollment` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `student_courseenrollmentcelebration` +-- + +LOCK TABLES `student_courseenrollmentcelebration` WRITE; +/*!40000 ALTER TABLE `student_courseenrollmentcelebration` DISABLE KEYS */; +/*!40000 ALTER TABLE `student_courseenrollmentcelebration` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `student_dashboardconfiguration` -- @@ -8549,8 +12805,8 @@ CREATE TABLE `student_dashboardconfiguration` ( `recent_enrollment_time_delta` int(10) unsigned NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `student_dashboard_changed_by_id_4db1e1194c4ae32c_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `student_dashboard_changed_by_id_4db1e1194c4ae32c_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `student_dashboardcon_changed_by_id_1960484b_fk_auth_user` (`changed_by_id`), + CONSTRAINT `student_dashboardcon_changed_by_id_1960484b_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -8576,8 +12832,8 @@ CREATE TABLE `student_enrollmentrefundconfiguration` ( `refund_window_microseconds` bigint(20) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `student_enrollmen_changed_by_id_59c187ac05e64a11_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `student_enrollmen_changed_by_id_59c187ac05e64a11_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `student_enrollmentre_changed_by_id_082b4f6f_fk_auth_user` (`changed_by_id`), + CONSTRAINT `student_enrollmentre_changed_by_id_082b4f6f_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -8604,11 +12860,11 @@ CREATE TABLE `student_entranceexamconfiguration` ( `skip_entrance_exam` tinyint(1) NOT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `student_entranceexamconfiguration_user_id_714c2ef6a88504f0_uniq` (`user_id`,`course_id`), - KEY `student_entranceexamconfiguration_ea134da7` (`course_id`), - KEY `student_entranceexamconfiguration_e2fa5388` (`created`), - KEY `student_entranceexamconfiguration_0f81d52e` (`updated`), - CONSTRAINT `student_entranceexamcon_user_id_530195af5babe0dd_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `student_entranceexamconf_user_id_course_id_23bbcf9b_uniq` (`user_id`,`course_id`), + KEY `student_entranceexamconfiguration_course_id_eca5c3d4` (`course_id`), + KEY `student_entranceexamconfiguration_created_27e80637` (`created`), + KEY `student_entranceexamconfiguration_updated_d560d552` (`updated`), + CONSTRAINT `student_entranceexam_user_id_387a35d6_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -8621,6 +12877,69 @@ LOCK TABLES `student_entranceexamconfiguration` WRITE; /*!40000 ALTER TABLE `student_entranceexamconfiguration` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `student_fbeenrollmentexclusion` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `student_fbeenrollmentexclusion` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `enrollment_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `enrollment_id` (`enrollment_id`), + CONSTRAINT `student_fbeenrollmen_enrollment_id_28537ff8_fk_student_c` FOREIGN KEY (`enrollment_id`) REFERENCES `student_courseenrollment` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `student_fbeenrollmentexclusion` +-- + +LOCK TABLES `student_fbeenrollmentexclusion` WRITE; +/*!40000 ALTER TABLE `student_fbeenrollmentexclusion` DISABLE KEYS */; +/*!40000 ALTER TABLE `student_fbeenrollmentexclusion` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `student_historicalmanualenrollmentaudit` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `student_historicalmanualenrollmentaudit` ( + `id` int(11) NOT NULL, + `enrolled_email` varchar(255) NOT NULL, + `time_stamp` datetime(6) DEFAULT NULL, + `state_transition` varchar(255) NOT NULL, + `reason` longtext, + `role` varchar(64) DEFAULT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `enrolled_by_id` int(11) DEFAULT NULL, + `enrollment_id` int(11) DEFAULT NULL, + `history_user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `student_historicalma_history_user_id_b5f488c2_fk_auth_user` (`history_user_id`), + KEY `student_historicalmanualenrollmentaudit_id_18eb7e98` (`id`), + KEY `student_historicalmanualenrollmentaudit_enrolled_email_bfaa34b3` (`enrolled_email`), + KEY `student_historicalmanualenrollmentaudit_enrolled_by_id_0838a44b` (`enrolled_by_id`), + KEY `student_historicalmanualenrollmentaudit_enrollment_id_b74f8923` (`enrollment_id`), + CONSTRAINT `student_historicalma_history_user_id_b5f488c2_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `student_historicalmanualenrollmentaudit` +-- + +LOCK TABLES `student_historicalmanualenrollmentaudit` WRITE; +/*!40000 ALTER TABLE `student_historicalmanualenrollmentaudit` DISABLE KEYS */; +/*!40000 ALTER TABLE `student_historicalmanualenrollmentaudit` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `student_languageproficiency` -- @@ -8632,9 +12951,9 @@ CREATE TABLE `student_languageproficiency` ( `code` varchar(16) NOT NULL, `user_profile_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `student_languageproficiency_code_68e76171684c62e5_uniq` (`code`,`user_profile_id`), - KEY `student_languageproficiency_06037614` (`user_profile_id`), - CONSTRAINT `student__user_profile_id_283edb437b102619_fk_auth_userprofile_id` FOREIGN KEY (`user_profile_id`) REFERENCES `auth_userprofile` (`id`) + UNIQUE KEY `student_languageproficiency_code_user_profile_id_9aa4e2f5_uniq` (`code`,`user_profile_id`), + KEY `student_languageprof_user_profile_id_768cd3eb_fk_auth_user` (`user_profile_id`), + CONSTRAINT `student_languageprof_user_profile_id_768cd3eb_fk_auth_user` FOREIGN KEY (`user_profile_id`) REFERENCES `auth_userprofile` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -8658,12 +12977,10 @@ CREATE TABLE `student_linkedinaddtoprofileconfiguration` ( `change_date` datetime(6) NOT NULL, `enabled` tinyint(1) NOT NULL, `company_identifier` longtext NOT NULL, - `dashboard_tracking_code` longtext NOT NULL, - `trk_partner_name` varchar(10) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `student_linkedina_changed_by_id_226a4de3af0f3296_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `student_linkedina_changed_by_id_226a4de3af0f3296_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `student_linkedinaddt_changed_by_id_dc1c453f_fk_auth_user` (`changed_by_id`), + CONSTRAINT `student_linkedinaddt_changed_by_id_dc1c453f_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -8688,8 +13005,8 @@ CREATE TABLE `student_loginfailures` ( `lockout_until` datetime(6) DEFAULT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `student_loginfailures_user_id_3daac39f3118bac4_fk_auth_user_id` (`user_id`), - CONSTRAINT `student_loginfailures_user_id_3daac39f3118bac4_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + KEY `student_loginfailures_user_id_50d85202_fk_auth_user_id` (`user_id`), + CONSTRAINT `student_loginfailures_user_id_50d85202_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -8702,32 +13019,6 @@ LOCK TABLES `student_loginfailures` WRITE; /*!40000 ALTER TABLE `student_loginfailures` ENABLE KEYS */; UNLOCK TABLES; --- --- Table structure for table `student_logoutviewconfiguration` --- - -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `student_logoutviewconfiguration` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `student_logoutvie_changed_by_id_71e69e1e508e4fce_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `student_logoutvie_changed_by_id_71e69e1e508e4fce_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `student_logoutviewconfiguration` --- - -LOCK TABLES `student_logoutviewconfiguration` WRITE; -/*!40000 ALTER TABLE `student_logoutviewconfiguration` DISABLE KEYS */; -/*!40000 ALTER TABLE `student_logoutviewconfiguration` ENABLE KEYS */; -UNLOCK TABLES; - -- -- Table structure for table `student_manualenrollmentaudit` -- @@ -8742,12 +13033,13 @@ CREATE TABLE `student_manualenrollmentaudit` ( `reason` longtext, `enrolled_by_id` int(11) DEFAULT NULL, `enrollment_id` int(11) DEFAULT NULL, + `role` varchar(64) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `student_manualenr_enrolled_by_id_729cecdc9f746e2_fk_auth_user_id` (`enrolled_by_id`), - KEY `st_enrollment_id_60349e74284df0d6_fk_student_courseenrollment_id` (`enrollment_id`), - KEY `student_manualenrollmentaudit_ce9e7289` (`enrolled_email`), - CONSTRAINT `st_enrollment_id_60349e74284df0d6_fk_student_courseenrollment_id` FOREIGN KEY (`enrollment_id`) REFERENCES `student_courseenrollment` (`id`), - CONSTRAINT `student_manualenr_enrolled_by_id_729cecdc9f746e2_fk_auth_user_id` FOREIGN KEY (`enrolled_by_id`) REFERENCES `auth_user` (`id`) + KEY `student_manualenroll_enrolled_by_id_1217a0dc_fk_auth_user` (`enrolled_by_id`), + KEY `student_manualenroll_enrollment_id_decc94fe_fk_student_c` (`enrollment_id`), + KEY `student_manualenrollmentaudit_enrolled_email_47ce6524` (`enrolled_email`), + CONSTRAINT `student_manualenroll_enrolled_by_id_1217a0dc_fk_auth_user` FOREIGN KEY (`enrolled_by_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `student_manualenroll_enrollment_id_decc94fe_fk_student_c` FOREIGN KEY (`enrollment_id`) REFERENCES `student_courseenrollment` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -8760,32 +13052,6 @@ LOCK TABLES `student_manualenrollmentaudit` WRITE; /*!40000 ALTER TABLE `student_manualenrollmentaudit` ENABLE KEYS */; UNLOCK TABLES; --- --- Table structure for table `student_passwordhistory` --- - -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `student_passwordhistory` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `password` varchar(128) NOT NULL, - `time_set` datetime(6) NOT NULL, - `user_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `student_passwordhistory_user_id_21328c8c512d6c0d_fk_auth_user_id` (`user_id`), - CONSTRAINT `student_passwordhistory_user_id_21328c8c512d6c0d_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `student_passwordhistory` --- - -LOCK TABLES `student_passwordhistory` WRITE; -/*!40000 ALTER TABLE `student_passwordhistory` DISABLE KEYS */; -/*!40000 ALTER TABLE `student_passwordhistory` ENABLE KEYS */; -UNLOCK TABLES; - -- -- Table structure for table `student_pendingemailchange` -- @@ -8800,8 +13066,8 @@ CREATE TABLE `student_pendingemailchange` ( PRIMARY KEY (`id`), UNIQUE KEY `activation_key` (`activation_key`), UNIQUE KEY `user_id` (`user_id`), - KEY `student_pendingemailchange_a4a65cd1` (`new_email`), - CONSTRAINT `student_pendingemailcha_user_id_566caccc3f3c3966_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + KEY `student_pendingemailchange_new_email_6887bdea` (`new_email`), + CONSTRAINT `student_pendingemailchange_user_id_8f2778c5_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -8827,7 +13093,7 @@ CREATE TABLE `student_pendingnamechange` ( `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `user_id` (`user_id`), - CONSTRAINT `student_pendingnamechan_user_id_6c3c9d77fc5898a6_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + CONSTRAINT `student_pendingnamechange_user_id_e2cd8b70_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -8840,6 +13106,34 @@ LOCK TABLES `student_pendingnamechange` WRITE; /*!40000 ALTER TABLE `student_pendingnamechange` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `student_pendingsecondaryemailchange` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `student_pendingsecondaryemailchange` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `new_secondary_email` varchar(255) NOT NULL, + `activation_key` varchar(32) NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `activation_key` (`activation_key`), + UNIQUE KEY `user_id` (`user_id`), + KEY `student_pendingsecondaryemailchange_new_secondary_email_5e79db59` (`new_secondary_email`), + CONSTRAINT `student_pendingsecon_user_id_deacc54f_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `student_pendingsecondaryemailchange` +-- + +LOCK TABLES `student_pendingsecondaryemailchange` WRITE; +/*!40000 ALTER TABLE `student_pendingsecondaryemailchange` DISABLE KEYS */; +/*!40000 ALTER TABLE `student_pendingsecondaryemailchange` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `student_registrationcookieconfiguration` -- @@ -8854,8 +13148,8 @@ CREATE TABLE `student_registrationcookieconfiguration` ( `affiliate_cookie_name` varchar(255) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `student_registrati_changed_by_id_7c813444cd41f76_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `student_registrati_changed_by_id_7c813444cd41f76_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `student_registration_changed_by_id_52ac88b0_fk_auth_user` (`changed_by_id`), + CONSTRAINT `student_registration_changed_by_id_52ac88b0_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -8863,64 +13157,124 @@ CREATE TABLE `student_registrationcookieconfiguration` ( -- Dumping data for table `student_registrationcookieconfiguration` -- -LOCK TABLES `student_registrationcookieconfiguration` WRITE; -/*!40000 ALTER TABLE `student_registrationcookieconfiguration` DISABLE KEYS */; -/*!40000 ALTER TABLE `student_registrationcookieconfiguration` ENABLE KEYS */; +LOCK TABLES `student_registrationcookieconfiguration` WRITE; +/*!40000 ALTER TABLE `student_registrationcookieconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `student_registrationcookieconfiguration` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `student_sociallink` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `student_sociallink` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `platform` varchar(30) NOT NULL, + `social_link` varchar(100) NOT NULL, + `user_profile_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `student_sociallink_user_profile_id_19f54475_fk_auth_user` (`user_profile_id`), + CONSTRAINT `student_sociallink_user_profile_id_19f54475_fk_auth_user` FOREIGN KEY (`user_profile_id`) REFERENCES `auth_userprofile` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `student_sociallink` +-- + +LOCK TABLES `student_sociallink` WRITE; +/*!40000 ALTER TABLE `student_sociallink` DISABLE KEYS */; +/*!40000 ALTER TABLE `student_sociallink` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `student_userattribute` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `student_userattribute` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `name` varchar(255) NOT NULL, + `value` varchar(255) NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `student_userattribute_user_id_name_70e18f46_uniq` (`user_id`,`name`), + KEY `student_userattribute_name_a55155e3` (`name`), + CONSTRAINT `student_userattribute_user_id_19c01f5e_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `student_userattribute` +-- + +LOCK TABLES `student_userattribute` WRITE; +/*!40000 ALTER TABLE `student_userattribute` DISABLE KEYS */; +/*!40000 ALTER TABLE `student_userattribute` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `student_sociallink` +-- Table structure for table `student_usercelebration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `student_sociallink` ( +CREATE TABLE `student_usercelebration` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `platform` varchar(30) NOT NULL, - `social_link` varchar(100) NOT NULL, - `user_profile_id` int(11) NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `last_day_of_streak` date DEFAULT NULL, + `streak_length` int(11) NOT NULL, + `longest_ever_streak` int(11) NOT NULL, + `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `student_s_user_profile_id_7c5a1bfd4e58b3a_fk_auth_userprofile_id` (`user_profile_id`), - CONSTRAINT `student_s_user_profile_id_7c5a1bfd4e58b3a_fk_auth_userprofile_id` FOREIGN KEY (`user_profile_id`) REFERENCES `auth_userprofile` (`id`) + UNIQUE KEY `user_id` (`user_id`), + CONSTRAINT `student_usercelebration_user_id_8682222f_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `student_sociallink` +-- Dumping data for table `student_usercelebration` -- -LOCK TABLES `student_sociallink` WRITE; -/*!40000 ALTER TABLE `student_sociallink` DISABLE KEYS */; -/*!40000 ALTER TABLE `student_sociallink` ENABLE KEYS */; +LOCK TABLES `student_usercelebration` WRITE; +/*!40000 ALTER TABLE `student_usercelebration` DISABLE KEYS */; +/*!40000 ALTER TABLE `student_usercelebration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `student_userattribute` +-- Table structure for table `student_userpasswordtogglehistory` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `student_userattribute` ( +CREATE TABLE `student_userpasswordtogglehistory` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `name` varchar(255) NOT NULL, - `value` varchar(255) NOT NULL, + `comment` varchar(255) DEFAULT NULL, + `disabled` tinyint(1) NOT NULL, + `created_by_id` int(11) NOT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `student_userattribute_user_id_395f02bcb61d19c1_uniq` (`user_id`,`name`), - KEY `student_userattribute_name_5fd741d8c66ce242_uniq` (`name`), - CONSTRAINT `student_userattribute_user_id_1d4fc3ed612e93e5_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + KEY `student_userpassword_created_by_id_f7092add_fk_auth_user` (`created_by_id`), + KEY `student_userpassword_user_id_1e2a09c9_fk_auth_user` (`user_id`), + CONSTRAINT `student_userpassword_created_by_id_f7092add_fk_auth_user` FOREIGN KEY (`created_by_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `student_userpassword_user_id_1e2a09c9_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `student_userattribute` +-- Dumping data for table `student_userpasswordtogglehistory` -- -LOCK TABLES `student_userattribute` WRITE; -/*!40000 ALTER TABLE `student_userattribute` DISABLE KEYS */; -/*!40000 ALTER TABLE `student_userattribute` ENABLE KEYS */; +LOCK TABLES `student_userpasswordtogglehistory` WRITE; +/*!40000 ALTER TABLE `student_userpasswordtogglehistory` DISABLE KEYS */; +/*!40000 ALTER TABLE `student_userpasswordtogglehistory` ENABLE KEYS */; UNLOCK TABLES; -- @@ -8934,9 +13288,9 @@ CREATE TABLE `student_usersignupsource` ( `site` varchar(255) NOT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `student_usersignupsourc_user_id_4db69fdecf32119f_fk_auth_user_id` (`user_id`), - KEY `student_usersignupsource_98defd6e` (`site`), - CONSTRAINT `student_usersignupsourc_user_id_4db69fdecf32119f_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + KEY `student_usersignupsource_user_id_4979dd6e_fk_auth_user_id` (`user_id`), + KEY `student_usersignupsource_site_beb4d383` (`site`), + CONSTRAINT `student_usersignupsource_user_id_4979dd6e_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -8963,9 +13317,9 @@ CREATE TABLE `student_userstanding` ( `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `user_id` (`user_id`), - KEY `student_userstand_changed_by_id_23784b83f2849aff_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `student_userstand_changed_by_id_23784b83f2849aff_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`), - CONSTRAINT `student_userstanding_user_id_6bb90abaaa05d42e_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + KEY `student_userstanding_changed_by_id_469252b4_fk_auth_user_id` (`changed_by_id`), + CONSTRAINT `student_userstanding_changed_by_id_469252b4_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `student_userstanding_user_id_00b147e5_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -8989,7 +13343,7 @@ CREATE TABLE `student_usertestgroup` ( `name` varchar(32) NOT NULL, `description` longtext NOT NULL, PRIMARY KEY (`id`), - KEY `student_usertestgroup_b068931c` (`name`) + KEY `student_usertestgroup_name_94f48ddb` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9013,10 +13367,10 @@ CREATE TABLE `student_usertestgroup_users` ( `usertestgroup_id` int(11) NOT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `usertestgroup_id` (`usertestgroup_id`,`user_id`), - KEY `student_usertestgroup_u_user_id_26c886de60cceacb_fk_auth_user_id` (`user_id`), - CONSTRAINT `st_usertestgroup_id_3d634741f1dd4e4f_fk_student_usertestgroup_id` FOREIGN KEY (`usertestgroup_id`) REFERENCES `student_usertestgroup` (`id`), - CONSTRAINT `student_usertestgroup_u_user_id_26c886de60cceacb_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `student_usertestgroup_us_usertestgroup_id_user_id_2bbf095a_uniq` (`usertestgroup_id`,`user_id`), + KEY `student_usertestgroup_users_user_id_81b93062_fk_auth_user_id` (`user_id`), + CONSTRAINT `student_usertestgrou_usertestgroup_id_a9097958_fk_student_u` FOREIGN KEY (`usertestgroup_id`) REFERENCES `student_usertestgroup` (`id`), + CONSTRAINT `student_usertestgroup_users_user_id_81b93062_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9044,11 +13398,11 @@ CREATE TABLE `submissions_score` ( `student_item_id` int(11) NOT NULL, `submission_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `submissions_score_fde81f11` (`created_at`), - KEY `submissions_score_02d5e83e` (`student_item_id`), - KEY `submissions_score_1dd9cfcc` (`submission_id`), - CONSTRAINT `s_student_item_id_7d4d4bb6a7dd0642_fk_submissions_studentitem_id` FOREIGN KEY (`student_item_id`) REFERENCES `submissions_studentitem` (`id`), - CONSTRAINT `subm_submission_id_3fc975fe88442ff7_fk_submissions_submission_id` FOREIGN KEY (`submission_id`) REFERENCES `submissions_submission` (`id`) + KEY `submissions_score_student_item_id_de4f5954_fk_submissio` (`student_item_id`), + KEY `submissions_score_submission_id_ba095829_fk_submissio` (`submission_id`), + KEY `submissions_score_created_at_b65f0390` (`created_at`), + CONSTRAINT `submissions_score_student_item_id_de4f5954_fk_submissio` FOREIGN KEY (`student_item_id`) REFERENCES `submissions_studentitem` (`id`), + CONSTRAINT `submissions_score_submission_id_ba095829_fk_submissio` FOREIGN KEY (`submission_id`) REFERENCES `submissions_submission` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9074,10 +13428,10 @@ CREATE TABLE `submissions_scoreannotation` ( `reason` longtext NOT NULL, `score_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `submissions_sc_score_id_7b5ef248552cb857_fk_submissions_score_id` (`score_id`), - KEY `submissions_scoreannotation_fd685234` (`annotation_type`), - KEY `submissions_scoreannotation_ee243325` (`creator`), - CONSTRAINT `submissions_sc_score_id_7b5ef248552cb857_fk_submissions_score_id` FOREIGN KEY (`score_id`) REFERENCES `submissions_score` (`id`) + KEY `submissions_scoreann_score_id_2dda6e02_fk_submissio` (`score_id`), + KEY `submissions_scoreannotation_annotation_type_117a2607` (`annotation_type`), + KEY `submissions_scoreannotation_creator_5cc126cc` (`creator`), + CONSTRAINT `submissions_scoreann_score_id_2dda6e02_fk_submissio` FOREIGN KEY (`score_id`) REFERENCES `submissions_score` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9103,11 +13457,11 @@ CREATE TABLE `submissions_scoresummary` ( `student_item_id` int(11) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `student_item_id` (`student_item_id`), - KEY `submissions__highest_id_7fd91b8eb312c175_fk_submissions_score_id` (`highest_id`), - KEY `submissions_s_latest_id_2b352506a35fd569_fk_submissions_score_id` (`latest_id`), - CONSTRAINT `s_student_item_id_32fa0a425a149b1b_fk_submissions_studentitem_id` FOREIGN KEY (`student_item_id`) REFERENCES `submissions_studentitem` (`id`), - CONSTRAINT `submissions__highest_id_7fd91b8eb312c175_fk_submissions_score_id` FOREIGN KEY (`highest_id`) REFERENCES `submissions_score` (`id`), - CONSTRAINT `submissions_s_latest_id_2b352506a35fd569_fk_submissions_score_id` FOREIGN KEY (`latest_id`) REFERENCES `submissions_score` (`id`) + KEY `submissions_scoresum_highest_id_3efe897d_fk_submissio` (`highest_id`), + KEY `submissions_scoresum_latest_id_dd8a17bb_fk_submissio` (`latest_id`), + CONSTRAINT `submissions_scoresum_highest_id_3efe897d_fk_submissio` FOREIGN KEY (`highest_id`) REFERENCES `submissions_score` (`id`), + CONSTRAINT `submissions_scoresum_latest_id_dd8a17bb_fk_submissio` FOREIGN KEY (`latest_id`) REFERENCES `submissions_score` (`id`), + CONSTRAINT `submissions_scoresum_student_item_id_35f8ef06_fk_submissio` FOREIGN KEY (`student_item_id`) REFERENCES `submissions_studentitem` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9133,10 +13487,10 @@ CREATE TABLE `submissions_studentitem` ( `item_id` varchar(255) NOT NULL, `item_type` varchar(100) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `submissions_studentitem_course_id_6a6eccbdec6ffd0b_uniq` (`course_id`,`student_id`,`item_id`), - KEY `submissions_studentitem_30a811f6` (`student_id`), - KEY `submissions_studentitem_ea134da7` (`course_id`), - KEY `submissions_studentitem_82bfda79` (`item_id`) + UNIQUE KEY `submissions_studentitem_course_id_student_id_ite_5b02ecf8_uniq` (`course_id`,`student_id`,`item_id`), + KEY `submissions_studentitem_student_id_8e72bcd9` (`student_id`), + KEY `submissions_studentitem_course_id_05ee1efe` (`course_id`), + KEY `submissions_studentitem_item_id_6c409784` (`item_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9157,19 +13511,22 @@ UNLOCK TABLES; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `submissions_submission` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `uuid` varchar(36) NOT NULL, + `uuid` char(32) NOT NULL, `attempt_number` int(10) unsigned NOT NULL, `submitted_at` datetime(6) NOT NULL, `created_at` datetime(6) NOT NULL, `raw_answer` longtext NOT NULL, `student_item_id` int(11) NOT NULL, `status` varchar(1) NOT NULL, + `team_submission_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `su_student_item_id_d3801ff833d05b1_fk_submissions_studentitem_id` (`student_item_id`), - KEY `submissions_submission_ef7c876f` (`uuid`), - KEY `submissions_submission_22bb6ff9` (`submitted_at`), - KEY `submissions_submission_fde81f11` (`created_at`), - CONSTRAINT `su_student_item_id_d3801ff833d05b1_fk_submissions_studentitem_id` FOREIGN KEY (`student_item_id`) REFERENCES `submissions_studentitem` (`id`) + KEY `submissions_submissi_team_submission_id_40e6bc97_fk_submissio` (`team_submission_id`), + KEY `submissions_submissi_student_item_id_9d087470_fk_submissio` (`student_item_id`), + KEY `submissions_submission_uuid_210428ab` (`uuid`), + KEY `submissions_submission_submitted_at_9653124d` (`submitted_at`), + KEY `submissions_submission_created_at_01c4bf22` (`created_at`), + CONSTRAINT `submissions_submissi_student_item_id_9d087470_fk_submissio` FOREIGN KEY (`student_item_id`) REFERENCES `submissions_studentitem` (`id`), + CONSTRAINT `submissions_submissi_team_submission_id_40e6bc97_fk_submissio` FOREIGN KEY (`team_submission_id`) REFERENCES `submissions_teamsubmission` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9182,6 +13539,143 @@ LOCK TABLES `submissions_submission` WRITE; /*!40000 ALTER TABLE `submissions_submission` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `submissions_teamsubmission` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `submissions_teamsubmission` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `uuid` char(32) NOT NULL, + `attempt_number` int(10) unsigned NOT NULL, + `submitted_at` datetime(6) NOT NULL, + `course_id` varchar(255) NOT NULL, + `item_id` varchar(255) NOT NULL, + `team_id` varchar(255) NOT NULL, + `status` varchar(1) NOT NULL, + `submitted_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `submissions_teamsubm_submitted_by_id_5a27162a_fk_auth_user` (`submitted_by_id`), + KEY `submissions_teamsubmission_uuid_4d1aef87` (`uuid`), + KEY `submissions_teamsubmission_submitted_at_74e28ed6` (`submitted_at`), + KEY `submissions_teamsubmission_course_id_68c6908d` (`course_id`), + KEY `submissions_teamsubmission_item_id_2bdcb26c` (`item_id`), + KEY `submissions_teamsubmission_team_id_5fda0e54` (`team_id`), + CONSTRAINT `submissions_teamsubm_submitted_by_id_5a27162a_fk_auth_user` FOREIGN KEY (`submitted_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `submissions_teamsubmission` +-- + +LOCK TABLES `submissions_teamsubmission` WRITE; +/*!40000 ALTER TABLE `submissions_teamsubmission` DISABLE KEYS */; +/*!40000 ALTER TABLE `submissions_teamsubmission` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `super_csv_csvoperation` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `super_csv_csvoperation` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `class_name` varchar(255) NOT NULL, + `unique_id` varchar(255) NOT NULL, + `operation` varchar(255) NOT NULL, + `data` varchar(255) NOT NULL, + `user_id` int(11) DEFAULT NULL, + `original_filename` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `super_csv_csvoperation_class_name_c8b5b4e2` (`class_name`), + KEY `super_csv_csvoperation_unique_id_08aa974e` (`unique_id`), + KEY `super_csv_csvoperation_user_id_f87de59a_fk_auth_user_id` (`user_id`), + CONSTRAINT `super_csv_csvoperation_user_id_f87de59a_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `super_csv_csvoperation` +-- + +LOCK TABLES `super_csv_csvoperation` WRITE; +/*!40000 ALTER TABLE `super_csv_csvoperation` DISABLE KEYS */; +/*!40000 ALTER TABLE `super_csv_csvoperation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `support_historicalusersocialauth` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `support_historicalusersocialauth` ( + `id` int(11) NOT NULL, + `provider` varchar(32) NOT NULL, + `uid` varchar(255) NOT NULL, + `extra_data` longtext NOT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `history_id` int(11) NOT NULL AUTO_INCREMENT, + `history_date` datetime(6) NOT NULL, + `history_change_reason` varchar(100) DEFAULT NULL, + `history_type` varchar(1) NOT NULL, + `history_user_id` int(11) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`history_id`), + KEY `support_historicalus_history_user_id_a54cd5b3_fk_auth_user` (`history_user_id`), + KEY `support_historicalusersocialauth_id_979b8a3c` (`id`), + KEY `support_historicalusersocialauth_uid_9f2e466e` (`uid`), + KEY `support_historicalusersocialauth_user_id_95d74953` (`user_id`), + CONSTRAINT `support_historicalus_history_user_id_a54cd5b3_fk_auth_user` FOREIGN KEY (`history_user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `support_historicalusersocialauth` +-- + +LOCK TABLES `support_historicalusersocialauth` WRITE; +/*!40000 ALTER TABLE `support_historicalusersocialauth` DISABLE KEYS */; +/*!40000 ALTER TABLE `support_historicalusersocialauth` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `survey_report_surveyreport` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `survey_report_surveyreport` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `courses_offered` bigint(20) NOT NULL, + `learners` bigint(20) NOT NULL, + `registered_learners` bigint(20) NOT NULL, + `enrollments` bigint(20) NOT NULL, + `generated_certificates` bigint(20) NOT NULL, + `extra_data` longtext NOT NULL, + `created_at` datetime(6) NOT NULL, + `state` varchar(24) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `survey_report_surveyreport` +-- + +LOCK TABLES `survey_report_surveyreport` WRITE; +/*!40000 ALTER TABLE `survey_report_surveyreport` DISABLE KEYS */; +/*!40000 ALTER TABLE `survey_report_surveyreport` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `survey_surveyanswer` -- @@ -9198,12 +13692,12 @@ CREATE TABLE `survey_surveyanswer` ( `form_id` int(11) NOT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `survey_surveyanswer_73f329f1` (`field_name`), - KEY `survey_surveyanswer_c8235886` (`course_key`), - KEY `survey_surveyanswer_d6cba1ad` (`form_id`), - KEY `survey_surveyanswer_e8701ad4` (`user_id`), - CONSTRAINT `survey_surveyan_form_id_1c835afe12a54912_fk_survey_surveyform_id` FOREIGN KEY (`form_id`) REFERENCES `survey_surveyform` (`id`), - CONSTRAINT `survey_surveyanswer_user_id_4e77d83a82fd0b2b_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + KEY `survey_surveyanswer_form_id_7f0df59f_fk_survey_surveyform_id` (`form_id`), + KEY `survey_surveyanswer_user_id_4c028d25_fk_auth_user_id` (`user_id`), + KEY `survey_surveyanswer_field_name_7123dc3d` (`field_name`), + KEY `survey_surveyanswer_course_key_497ade68` (`course_key`), + CONSTRAINT `survey_surveyanswer_form_id_7f0df59f_fk_survey_surveyform_id` FOREIGN KEY (`form_id`) REFERENCES `survey_surveyform` (`id`), + CONSTRAINT `survey_surveyanswer_user_id_4c028d25_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9242,6 +13736,63 @@ LOCK TABLES `survey_surveyform` WRITE; /*!40000 ALTER TABLE `survey_surveyform` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `system_wide_roles_systemwiderole` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `system_wide_roles_systemwiderole` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `name` varchar(255) NOT NULL, + `description` longtext, + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `system_wide_roles_systemwiderole` +-- + +LOCK TABLES `system_wide_roles_systemwiderole` WRITE; +/*!40000 ALTER TABLE `system_wide_roles_systemwiderole` DISABLE KEYS */; +INSERT INTO `system_wide_roles_systemwiderole` VALUES (1,'2023-02-21 14:10:33.255201','2023-02-21 14:10:33.255201','student_support_admin',NULL); +/*!40000 ALTER TABLE `system_wide_roles_systemwiderole` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `system_wide_roles_systemwideroleassignment` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `system_wide_roles_systemwideroleassignment` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `role_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `applies_to_all_contexts` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + KEY `system_wide_roles_sy_role_id_b553068b_fk_system_wi` (`role_id`), + KEY `system_wide_roles_sy_user_id_8ec7ad0d_fk_auth_user` (`user_id`), + CONSTRAINT `system_wide_roles_sy_role_id_b553068b_fk_system_wi` FOREIGN KEY (`role_id`) REFERENCES `system_wide_roles_systemwiderole` (`id`), + CONSTRAINT `system_wide_roles_sy_user_id_8ec7ad0d_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `system_wide_roles_systemwideroleassignment` +-- + +LOCK TABLES `system_wide_roles_systemwideroleassignment` WRITE; +/*!40000 ALTER TABLE `system_wide_roles_systemwideroleassignment` DISABLE KEYS */; +/*!40000 ALTER TABLE `system_wide_roles_systemwideroleassignment` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `tagging_tagavailablevalues` -- @@ -9253,8 +13804,8 @@ CREATE TABLE `tagging_tagavailablevalues` ( `value` varchar(255) NOT NULL, `category_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `tagging_tagavailablevalues_b583a629` (`category_id`), - CONSTRAINT `tagging_category_id_40780d45c76e4f97_fk_tagging_tagcategories_id` FOREIGN KEY (`category_id`) REFERENCES `tagging_tagcategories` (`id`) + KEY `tagging_tagavailable_category_id_9cc60a44_fk_tagging_t` (`category_id`), + CONSTRAINT `tagging_tagavailable_category_id_9cc60a44_fk_tagging_t` FOREIGN KEY (`category_id`) REFERENCES `tagging_tagcategories` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9310,14 +13861,15 @@ CREATE TABLE `teams_courseteam` ( `language` varchar(16) NOT NULL, `last_activity_at` datetime(6) NOT NULL, `team_size` int(11) NOT NULL, + `organization_protected` tinyint(1) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `team_id` (`team_id`), UNIQUE KEY `discussion_topic_id` (`discussion_topic_id`), - KEY `teams_courseteam_b068931c` (`name`), - KEY `teams_courseteam_ea134da7` (`course_id`), - KEY `teams_courseteam_19b4d727` (`topic_id`), - KEY `teams_courseteam_5ea53fcc` (`last_activity_at`), - KEY `teams_courseteam_181d83a1` (`team_size`) + KEY `teams_courseteam_name_3bef5f8c` (`name`), + KEY `teams_courseteam_course_id_1e7dbede` (`course_id`), + KEY `teams_courseteam_topic_id_4d4f5d0d` (`topic_id`), + KEY `teams_courseteam_last_activity_at_376db5d3` (`last_activity_at`), + KEY `teams_courseteam_team_size_d264574e` (`team_size`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9343,10 +13895,10 @@ CREATE TABLE `teams_courseteammembership` ( `team_id` int(11) NOT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `teams_courseteammembership_user_id_48efa8e8971947c3_uniq` (`user_id`,`team_id`), - KEY `teams_courseteam_team_id_594700d19b04f922_fk_teams_courseteam_id` (`team_id`), - CONSTRAINT `teams_courseteam_team_id_594700d19b04f922_fk_teams_courseteam_id` FOREIGN KEY (`team_id`) REFERENCES `teams_courseteam` (`id`), - CONSTRAINT `teams_courseteammembers_user_id_2d93b28be22c3c40_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `teams_courseteammembership_user_id_team_id_aa45a20c_uniq` (`user_id`,`team_id`), + KEY `teams_courseteammemb_team_id_b021eccd_fk_teams_cou` (`team_id`), + CONSTRAINT `teams_courseteammemb_team_id_b021eccd_fk_teams_cou` FOREIGN KEY (`team_id`) REFERENCES `teams_courseteam` (`id`), + CONSTRAINT `teams_courseteammembership_user_id_18f9ff5d_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9370,8 +13922,8 @@ CREATE TABLE `theming_sitetheme` ( `theme_dir_name` varchar(255) NOT NULL, `site_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `theming_sitetheme_site_id_4fccdacaebfeb01f_fk_django_site_id` (`site_id`), - CONSTRAINT `theming_sitetheme_site_id_4fccdacaebfeb01f_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) + KEY `theming_sitetheme_site_id_fe93d039_fk_django_site_id` (`site_id`), + CONSTRAINT `theming_sitetheme_site_id_fe93d039_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9394,9 +13946,7 @@ CREATE TABLE `third_party_auth_ltiproviderconfig` ( `id` int(11) NOT NULL AUTO_INCREMENT, `change_date` datetime(6) NOT NULL, `enabled` tinyint(1) NOT NULL, - `icon_class` varchar(50) NOT NULL, `name` varchar(50) NOT NULL, - `secondary` tinyint(1) NOT NULL, `skip_registration_form` tinyint(1) NOT NULL, `skip_email_verification` tinyint(1) NOT NULL, `lti_consumer_key` varchar(255) NOT NULL, @@ -9404,19 +13954,27 @@ CREATE TABLE `third_party_auth_ltiproviderconfig` ( `lti_consumer_secret` varchar(255) NOT NULL, `lti_max_timestamp_age` int(11) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, - `icon_image` varchar(100) NOT NULL, `visible` tinyint(1) NOT NULL, `site_id` int(11) NOT NULL, `max_session_length` int(10) unsigned DEFAULT NULL, `skip_hinted_login_dialog` tinyint(1) NOT NULL, `send_to_registration_first` tinyint(1) NOT NULL, `sync_learner_profile_data` tinyint(1) NOT NULL, + `send_welcome_email` tinyint(1) NOT NULL, + `slug` varchar(30) NOT NULL, + `enable_sso_id_verification` tinyint(1) NOT NULL, + `organization_id` int(11) DEFAULT NULL, + `disable_for_enterprise_sso` tinyint(1) NOT NULL, + `was_valid_at` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `third_party_auth__changed_by_id_7749e09fd5f71ab0_fk_auth_user_id` (`changed_by_id`), - KEY `third_party_auth_ltiproviderconfig_fe8da584` (`lti_hostname`), - KEY `third_party_auth_ltiproviderconfig_9365d6e7` (`site_id`), - CONSTRAINT `third_party_auth__changed_by_id_7749e09fd5f71ab0_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`), - CONSTRAINT `third_party_auth_ltip_site_id_30e45357dbe462db_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) + KEY `third_party_auth_lti_changed_by_id_7b39c829_fk_auth_user` (`changed_by_id`), + KEY `third_party_auth_lti_site_id_c8442a80_fk_django_si` (`site_id`), + KEY `third_party_auth_lti_organization_id_7494c417_fk_organizat` (`organization_id`), + KEY `third_party_auth_ltiproviderconfig_lti_hostname_540ce676` (`lti_hostname`), + KEY `third_party_auth_ltiproviderconfig_slug_9cd23a79` (`slug`), + CONSTRAINT `third_party_auth_lti_changed_by_id_7b39c829_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `third_party_auth_lti_organization_id_7494c417_fk_organizat` FOREIGN KEY (`organization_id`) REFERENCES `organizations_organization` (`id`), + CONSTRAINT `third_party_auth_lti_site_id_c8442a80_fk_django_si` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9451,19 +14009,26 @@ CREATE TABLE `third_party_auth_oauth2providerconfig` ( `changed_by_id` int(11) DEFAULT NULL, `icon_image` varchar(100) NOT NULL, `visible` tinyint(1) NOT NULL, - `provider_slug` varchar(30) NOT NULL, `site_id` int(11) NOT NULL, `max_session_length` int(10) unsigned DEFAULT NULL, `skip_hinted_login_dialog` tinyint(1) NOT NULL, `send_to_registration_first` tinyint(1) NOT NULL, `sync_learner_profile_data` tinyint(1) NOT NULL, + `send_welcome_email` tinyint(1) NOT NULL, + `slug` varchar(30) NOT NULL, + `enable_sso_id_verification` tinyint(1) NOT NULL, + `organization_id` int(11) DEFAULT NULL, + `disable_for_enterprise_sso` tinyint(1) NOT NULL, + `was_valid_at` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `third_party_auth__changed_by_id_17044d1cd96e8d57_fk_auth_user_id` (`changed_by_id`), - KEY `third_party_auth_oauth2providerconfig_abcd61c0` (`backend_name`), - KEY `third_party_auth_oauth2providerconfig_24b8e178` (`provider_slug`), - KEY `third_party_auth_oauth2providerconfig_9365d6e7` (`site_id`), - CONSTRAINT `third_party_auth__changed_by_id_17044d1cd96e8d57_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`), - CONSTRAINT `third_party_auth_oaut_site_id_3f77f0fe311b6f5c_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) + KEY `third_party_auth_oau_changed_by_id_55219296_fk_auth_user` (`changed_by_id`), + KEY `third_party_auth_oau_site_id_a4ae3e66_fk_django_si` (`site_id`), + KEY `third_party_auth_oau_organization_id_cc8874ba_fk_organizat` (`organization_id`), + KEY `third_party_auth_oauth2providerconfig_backend_name_0c14d294` (`backend_name`), + KEY `third_party_auth_oauth2providerconfig_slug_226038d8` (`slug`), + CONSTRAINT `third_party_auth_oau_changed_by_id_55219296_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `third_party_auth_oau_organization_id_cc8874ba_fk_organizat` FOREIGN KEY (`organization_id`) REFERENCES `organizations_organization` (`id`), + CONSTRAINT `third_party_auth_oau_site_id_a4ae3e66_fk_django_si` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9476,31 +14041,6 @@ LOCK TABLES `third_party_auth_oauth2providerconfig` WRITE; /*!40000 ALTER TABLE `third_party_auth_oauth2providerconfig` ENABLE KEYS */; UNLOCK TABLES; --- --- Table structure for table `third_party_auth_providerapipermissions` --- - -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `third_party_auth_providerapipermissions` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `provider_id` varchar(255) NOT NULL, - `client_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `third_party_auth__client_id_648d3f6d6109693b_fk_oauth2_client_id` (`client_id`), - CONSTRAINT `third_party_auth__client_id_648d3f6d6109693b_fk_oauth2_client_id` FOREIGN KEY (`client_id`) REFERENCES `oauth2_client` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `third_party_auth_providerapipermissions` --- - -LOCK TABLES `third_party_auth_providerapipermissions` WRITE; -/*!40000 ALTER TABLE `third_party_auth_providerapipermissions` DISABLE KEYS */; -/*!40000 ALTER TABLE `third_party_auth_providerapipermissions` ENABLE KEYS */; -UNLOCK TABLES; - -- -- Table structure for table `third_party_auth_samlconfiguration` -- @@ -9519,12 +14059,13 @@ CREATE TABLE `third_party_auth_samlconfiguration` ( `changed_by_id` int(11) DEFAULT NULL, `site_id` int(11) NOT NULL, `slug` varchar(30) NOT NULL, + `is_public` tinyint(1) NOT NULL, PRIMARY KEY (`id`), - KEY `third_party_auth__changed_by_id_67a92ed1a69a5d1f_fk_auth_user_id` (`changed_by_id`), - KEY `third_party_auth_samlconfiguration_9365d6e7` (`site_id`), - KEY `third_party_auth_samlconfiguration_2dbcba41` (`slug`), - CONSTRAINT `third_party_auth__changed_by_id_67a92ed1a69a5d1f_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`), - CONSTRAINT `third_party_auth_saml_site_id_108365f249ed6aac_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) + KEY `third_party_auth_sam_changed_by_id_c9343fb9_fk_auth_user` (`changed_by_id`), + KEY `third_party_auth_sam_site_id_8fab01ee_fk_django_si` (`site_id`), + KEY `third_party_auth_samlconfiguration_slug_f9008e26` (`slug`), + CONSTRAINT `third_party_auth_sam_changed_by_id_c9343fb9_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `third_party_auth_sam_site_id_8fab01ee_fk_django_si` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9553,7 +14094,6 @@ CREATE TABLE `third_party_auth_samlproviderconfig` ( `skip_registration_form` tinyint(1) NOT NULL, `skip_email_verification` tinyint(1) NOT NULL, `backend_name` varchar(50) NOT NULL, - `idp_slug` varchar(30) NOT NULL, `entity_id` varchar(255) NOT NULL, `metadata_source` varchar(255) NOT NULL, `attr_user_permanent_id` varchar(128) NOT NULL, @@ -9575,15 +14115,30 @@ CREATE TABLE `third_party_auth_samlproviderconfig` ( `send_to_registration_first` tinyint(1) NOT NULL, `sync_learner_profile_data` tinyint(1) NOT NULL, `archived` tinyint(1) NOT NULL, - `saml_configuration_id` int(11), + `saml_configuration_id` int(11) DEFAULT NULL, + `send_welcome_email` tinyint(1) NOT NULL, + `slug` varchar(30) NOT NULL, + `enable_sso_id_verification` tinyint(1) NOT NULL, + `default_email` varchar(255) NOT NULL, + `default_first_name` varchar(255) NOT NULL, + `default_full_name` varchar(255) NOT NULL, + `default_last_name` varchar(255) NOT NULL, + `default_username` varchar(255) NOT NULL, + `organization_id` int(11) DEFAULT NULL, + `country` varchar(128) NOT NULL, + `disable_for_enterprise_sso` tinyint(1) NOT NULL, + `display_name` varchar(35) NOT NULL, + `was_valid_at` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `third_party_auth__changed_by_id_508190ecd0b0e845_fk_auth_user_id` (`changed_by_id`), - KEY `third_party_auth_samlproviderconfig_098674f1` (`idp_slug`), - KEY `third_party_auth_samlproviderconfig_9365d6e7` (`site_id`), - KEY `third_party_auth_samlproviderconfig_8b3b795c` (`saml_configuration_id`), - CONSTRAINT `D2557cd97215f74bd67f5ef02c1487e6` FOREIGN KEY (`saml_configuration_id`) REFERENCES `third_party_auth_samlconfiguration` (`id`), - CONSTRAINT `third_party_auth__changed_by_id_508190ecd0b0e845_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`), - CONSTRAINT `third_party_auth_saml_site_id_625158ae0a405970_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) + KEY `third_party_auth_sam_changed_by_id_4c8fa8c0_fk_auth_user` (`changed_by_id`), + KEY `third_party_auth_sam_site_id_b7e2af73_fk_django_si` (`site_id`), + KEY `third_party_auth_sam_saml_configuration_i_eeb9fe72_fk_third_par` (`saml_configuration_id`), + KEY `third_party_auth_sam_organization_id_8a7f5596_fk_organizat` (`organization_id`), + KEY `third_party_auth_samlproviderconfig_slug_95883dea` (`slug`), + CONSTRAINT `third_party_auth_sam_changed_by_id_4c8fa8c0_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `third_party_auth_sam_organization_id_8a7f5596_fk_organizat` FOREIGN KEY (`organization_id`) REFERENCES `organizations_organization` (`id`), + CONSTRAINT `third_party_auth_sam_saml_configuration_i_eeb9fe72_fk_third_par` FOREIGN KEY (`saml_configuration_id`) REFERENCES `third_party_auth_samlconfiguration` (`id`), + CONSTRAINT `third_party_auth_sam_site_id_b7e2af73_fk_django_si` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9610,9 +14165,9 @@ CREATE TABLE `third_party_auth_samlproviderdata` ( `sso_url` varchar(200) NOT NULL, `public_key` longtext NOT NULL, PRIMARY KEY (`id`), - KEY `third_party_auth_samlproviderdata_d674fcb7` (`fetched_at`), - KEY `third_party_auth_samlproviderdata_81aefa79` (`expires_at`), - KEY `third_party_auth_samlproviderdata_dffc4713` (`entity_id`) + KEY `third_party_auth_samlproviderdata_fetched_at_2286ac32` (`fetched_at`), + KEY `third_party_auth_samlproviderdata_expires_at_eaf594c7` (`expires_at`), + KEY `third_party_auth_samlproviderdata_entity_id_b163c6fc` (`entity_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9648,34 +14203,31 @@ LOCK TABLES `thumbnail_kvstore` WRITE; UNLOCK TABLES; -- --- Table structure for table `track_trackinglog` +-- Table structure for table `user_api_retirementstate` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `track_trackinglog` ( +CREATE TABLE `user_api_retirementstate` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `dtcreated` datetime(6) NOT NULL, - `username` varchar(32) NOT NULL, - `ip` varchar(32) NOT NULL, - `event_source` varchar(32) NOT NULL, - `event_type` varchar(512) NOT NULL, - `event` longtext NOT NULL, - `agent` varchar(256) NOT NULL, - `page` varchar(512) DEFAULT NULL, - `time` datetime(6) NOT NULL, - `host` varchar(64) NOT NULL, - PRIMARY KEY (`id`) + `state_name` varchar(30) NOT NULL, + `state_execution_order` smallint(6) NOT NULL, + `is_dead_end_state` tinyint(1) NOT NULL, + `required` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `state_name` (`state_name`), + UNIQUE KEY `state_execution_order` (`state_execution_order`), + KEY `user_api_retirementstate_is_dead_end_state_62eaf9b7` (`is_dead_end_state`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `track_trackinglog` +-- Dumping data for table `user_api_retirementstate` -- -LOCK TABLES `track_trackinglog` WRITE; -/*!40000 ALTER TABLE `track_trackinglog` DISABLE KEYS */; -/*!40000 ALTER TABLE `track_trackinglog` ENABLE KEYS */; +LOCK TABLES `user_api_retirementstate` WRITE; +/*!40000 ALTER TABLE `user_api_retirementstate` DISABLE KEYS */; +/*!40000 ALTER TABLE `user_api_retirementstate` ENABLE KEYS */; UNLOCK TABLES; -- @@ -9691,10 +14243,10 @@ CREATE TABLE `user_api_usercoursetag` ( `value` longtext NOT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `user_api_usercoursetag_user_id_64d9a32c9890f610_uniq` (`user_id`,`course_id`,`key`), - KEY `user_api_usercoursetag_3c6e0b8a` (`key`), - KEY `user_api_usercoursetag_ea134da7` (`course_id`), - CONSTRAINT `user_api_usercoursetag_user_id_2692245bbb861fc2_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `user_api_usercoursetag_user_id_course_id_key_d73150ab_uniq` (`user_id`,`course_id`,`key`), + KEY `user_api_usercoursetag_key_d6420575` (`key`), + KEY `user_api_usercoursetag_course_id_a336d583` (`course_id`), + CONSTRAINT `user_api_usercoursetag_user_id_106a4cbc_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9722,10 +14274,10 @@ CREATE TABLE `user_api_userorgtag` ( `value` longtext NOT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `user_api_userorgtag_user_id_694f9e3322120c6f_uniq` (`user_id`,`org`,`key`), - KEY `user_api_userorgtag_3c6e0b8a` (`key`), - KEY `user_api_userorgtag_5a445d71` (`org`), - CONSTRAINT `user_api_userorgtag_user_id_16c7189496b4df00_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `user_api_userorgtag_user_id_org_key_d4df9ac1_uniq` (`user_id`,`org`,`key`), + KEY `user_api_userorgtag_key_b1f2bafe` (`key`), + KEY `user_api_userorgtag_org_41caa15c` (`org`), + CONSTRAINT `user_api_userorgtag_user_id_cc0d415d_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9750,9 +14302,9 @@ CREATE TABLE `user_api_userpreference` ( `value` longtext NOT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `user_api_userpreference_user_id_4e4942d73f760072_uniq` (`user_id`,`key`), - KEY `user_api_userpreference_3c6e0b8a` (`key`), - CONSTRAINT `user_api_userpreference_user_id_41f12e3954b69095_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `user_api_userpreference_user_id_key_17924c0d_uniq` (`user_id`,`key`), + KEY `user_api_userpreference_key_9c8a8f6b` (`key`), + CONSTRAINT `user_api_userpreference_user_id_68f8a34b_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -9766,239 +14318,291 @@ LOCK TABLES `user_api_userpreference` WRITE; UNLOCK TABLES; -- --- Table structure for table `user_tasks_usertaskartifact` +-- Table structure for table `user_api_userretirementpartnerreportingstatus` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `user_tasks_usertaskartifact` ( +CREATE TABLE `user_api_userretirementpartnerreportingstatus` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `uuid` char(32) NOT NULL, - `name` varchar(255) NOT NULL, - `file` varchar(100) DEFAULT NULL, - `url` varchar(200) NOT NULL, - `text` longtext NOT NULL, - `status_id` int(11) NOT NULL, + `original_username` varchar(150) NOT NULL, + `original_email` varchar(254) NOT NULL, + `original_name` varchar(255) NOT NULL, + `is_being_processed` tinyint(1) NOT NULL, + `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `uuid` (`uuid`), - KEY `user_tasks_usertaskartifact_dc91ed4b` (`status_id`), - CONSTRAINT `user__status_id_265997facac95070_fk_user_tasks_usertaskstatus_id` FOREIGN KEY (`status_id`) REFERENCES `user_tasks_usertaskstatus` (`id`) + UNIQUE KEY `user_id` (`user_id`), + KEY `user_api_userretirementpart_original_username_6bf5d3d1` (`original_username`), + KEY `user_api_userretirementpart_original_email_aaab0bc9` (`original_email`), + KEY `user_api_userretirementpart_original_name_9aedd7f0` (`original_name`), + CONSTRAINT `user_api_userretirem_user_id_272c8f78_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `user_tasks_usertaskartifact` +-- Dumping data for table `user_api_userretirementpartnerreportingstatus` -- -LOCK TABLES `user_tasks_usertaskartifact` WRITE; -/*!40000 ALTER TABLE `user_tasks_usertaskartifact` DISABLE KEYS */; -/*!40000 ALTER TABLE `user_tasks_usertaskartifact` ENABLE KEYS */; +LOCK TABLES `user_api_userretirementpartnerreportingstatus` WRITE; +/*!40000 ALTER TABLE `user_api_userretirementpartnerreportingstatus` DISABLE KEYS */; +/*!40000 ALTER TABLE `user_api_userretirementpartnerreportingstatus` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `user_tasks_usertaskstatus` +-- Table structure for table `user_api_userretirementrequest` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `user_tasks_usertaskstatus` ( +CREATE TABLE `user_api_userretirementrequest` ( `id` int(11) NOT NULL AUTO_INCREMENT, `created` datetime(6) NOT NULL, `modified` datetime(6) NOT NULL, - `uuid` char(32) NOT NULL, - `task_id` varchar(128) NOT NULL, - `is_container` tinyint(1) NOT NULL, - `task_class` varchar(128) NOT NULL, - `name` varchar(255) NOT NULL, - `state` varchar(128) NOT NULL, - `completed_steps` smallint(5) unsigned NOT NULL, - `total_steps` smallint(5) unsigned NOT NULL, - `attempts` smallint(5) unsigned NOT NULL, - `parent_id` int(11) DEFAULT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `uuid` (`uuid`), - UNIQUE KEY `task_id` (`task_id`), - KEY `user__parent_id_2a1a586c3c2ac2a4_fk_user_tasks_usertaskstatus_id` (`parent_id`), - KEY `user_tasks_usertaskstat_user_id_5ceae753d027017b_fk_auth_user_id` (`user_id`), - CONSTRAINT `user__parent_id_2a1a586c3c2ac2a4_fk_user_tasks_usertaskstatus_id` FOREIGN KEY (`parent_id`) REFERENCES `user_tasks_usertaskstatus` (`id`), - CONSTRAINT `user_tasks_usertaskstat_user_id_5ceae753d027017b_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `user_id` (`user_id`), + CONSTRAINT `user_api_userretirementrequest_user_id_7f7ca22f_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `user_tasks_usertaskstatus` +-- Dumping data for table `user_api_userretirementrequest` -- -LOCK TABLES `user_tasks_usertaskstatus` WRITE; -/*!40000 ALTER TABLE `user_tasks_usertaskstatus` DISABLE KEYS */; -/*!40000 ALTER TABLE `user_tasks_usertaskstatus` ENABLE KEYS */; +LOCK TABLES `user_api_userretirementrequest` WRITE; +/*!40000 ALTER TABLE `user_api_userretirementrequest` DISABLE KEYS */; +/*!40000 ALTER TABLE `user_api_userretirementrequest` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `util_ratelimitconfiguration` +-- Table structure for table `user_api_userretirementstatus` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `util_ratelimitconfiguration` ( +CREATE TABLE `user_api_userretirementstatus` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `original_username` varchar(150) NOT NULL, + `original_email` varchar(254) NOT NULL, + `original_name` varchar(255) NOT NULL, + `retired_username` varchar(150) NOT NULL, + `retired_email` varchar(254) NOT NULL, + `responses` longtext NOT NULL, + `current_state_id` int(11) NOT NULL, + `last_state_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `util_ratelimitcon_changed_by_id_2c8891cb4854f3b5_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `util_ratelimitcon_changed_by_id_2c8891cb4854f3b5_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; + UNIQUE KEY `user_id` (`user_id`), + KEY `user_api_userretirem_current_state_id_e37bb094_fk_user_api_` (`current_state_id`), + KEY `user_api_userretirem_last_state_id_359e74cd_fk_user_api_` (`last_state_id`), + KEY `user_api_userretirementstatus_original_username_fa5d4a21` (`original_username`), + KEY `user_api_userretirementstatus_original_email_a7203bff` (`original_email`), + KEY `user_api_userretirementstatus_original_name_17c2846b` (`original_name`), + KEY `user_api_userretirementstatus_retired_username_52067a53` (`retired_username`), + KEY `user_api_userretirementstatus_retired_email_ee7c1579` (`retired_email`), + CONSTRAINT `user_api_userretirem_current_state_id_e37bb094_fk_user_api_` FOREIGN KEY (`current_state_id`) REFERENCES `user_api_retirementstate` (`id`), + CONSTRAINT `user_api_userretirem_last_state_id_359e74cd_fk_user_api_` FOREIGN KEY (`last_state_id`) REFERENCES `user_api_retirementstate` (`id`), + CONSTRAINT `user_api_userretirementstatus_user_id_aca4dc7b_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `util_ratelimitconfiguration` +-- Dumping data for table `user_api_userretirementstatus` -- -LOCK TABLES `util_ratelimitconfiguration` WRITE; -/*!40000 ALTER TABLE `util_ratelimitconfiguration` DISABLE KEYS */; -INSERT INTO `util_ratelimitconfiguration` VALUES (1,'2016-12-17 01:42:09.774066',1,NULL); -/*!40000 ALTER TABLE `util_ratelimitconfiguration` ENABLE KEYS */; +LOCK TABLES `user_api_userretirementstatus` WRITE; +/*!40000 ALTER TABLE `user_api_userretirementstatus` DISABLE KEYS */; +/*!40000 ALTER TABLE `user_api_userretirementstatus` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `user_tasks_usertaskartifact` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `user_tasks_usertaskartifact` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `uuid` char(32) NOT NULL, + `name` varchar(255) NOT NULL, + `file` varchar(100) DEFAULT NULL, + `url` longtext NOT NULL, + `text` longtext NOT NULL, + `status_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `uuid` (`uuid`), + KEY `user_tasks_usertaska_status_id_641f31be_fk_user_task` (`status_id`), + CONSTRAINT `user_tasks_usertaska_status_id_641f31be_fk_user_task` FOREIGN KEY (`status_id`) REFERENCES `user_tasks_usertaskstatus` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `user_tasks_usertaskartifact` +-- + +LOCK TABLES `user_tasks_usertaskartifact` WRITE; +/*!40000 ALTER TABLE `user_tasks_usertaskartifact` DISABLE KEYS */; +/*!40000 ALTER TABLE `user_tasks_usertaskartifact` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `verified_track_content_migrateverifiedtrackcohortssetting` +-- Table structure for table `user_tasks_usertaskstatus` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `verified_track_content_migrateverifiedtrackcohortssetting` ( +CREATE TABLE `user_tasks_usertaskstatus` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `old_course_key` varchar(255) NOT NULL, - `rerun_course_key` varchar(255) NOT NULL, - `audit_cohort_names` longtext NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `uuid` char(32) NOT NULL, + `task_id` varchar(128) NOT NULL, + `is_container` tinyint(1) NOT NULL, + `task_class` varchar(128) NOT NULL, + `name` varchar(255) NOT NULL, + `state` varchar(128) NOT NULL, + `completed_steps` smallint(5) unsigned NOT NULL, + `total_steps` smallint(5) unsigned NOT NULL, + `attempts` smallint(5) unsigned NOT NULL, + `parent_id` int(11) DEFAULT NULL, + `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `verified_track_co_changed_by_id_3aa020546322e9ee_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `verified_track_co_changed_by_id_3aa020546322e9ee_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `uuid` (`uuid`), + UNIQUE KEY `task_id` (`task_id`), + KEY `user_tasks_usertasks_parent_id_5009f727_fk_user_task` (`parent_id`), + KEY `user_tasks_usertaskstatus_user_id_5bec3d4a_fk_auth_user_id` (`user_id`), + CONSTRAINT `user_tasks_usertasks_parent_id_5009f727_fk_user_task` FOREIGN KEY (`parent_id`) REFERENCES `user_tasks_usertaskstatus` (`id`), + CONSTRAINT `user_tasks_usertaskstatus_user_id_5bec3d4a_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `verified_track_content_migrateverifiedtrackcohortssetting` +-- Dumping data for table `user_tasks_usertaskstatus` -- -LOCK TABLES `verified_track_content_migrateverifiedtrackcohortssetting` WRITE; -/*!40000 ALTER TABLE `verified_track_content_migrateverifiedtrackcohortssetting` DISABLE KEYS */; -/*!40000 ALTER TABLE `verified_track_content_migrateverifiedtrackcohortssetting` ENABLE KEYS */; +LOCK TABLES `user_tasks_usertaskstatus` WRITE; +/*!40000 ALTER TABLE `user_tasks_usertaskstatus` DISABLE KEYS */; +/*!40000 ALTER TABLE `user_tasks_usertaskstatus` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `verified_track_content_verifiedtrackcohortedcourse` +-- Table structure for table `user_tours_userdiscussionstours` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `verified_track_content_verifiedtrackcohortedcourse` ( +CREATE TABLE `user_tours_userdiscussionstours` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `course_key` varchar(255) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `verified_cohort_name` varchar(100) NOT NULL, + `tour_name` varchar(255) NOT NULL, + `show_tour` tinyint(1) NOT NULL, + `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `course_key` (`course_key`) + KEY `user_tours__user_id_0397d5_idx` (`user_id`,`tour_name`), + CONSTRAINT `user_tours_userdiscussionstours_user_id_4d286074_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `verified_track_content_verifiedtrackcohortedcourse` +-- Dumping data for table `user_tours_userdiscussionstours` -- -LOCK TABLES `verified_track_content_verifiedtrackcohortedcourse` WRITE; -/*!40000 ALTER TABLE `verified_track_content_verifiedtrackcohortedcourse` DISABLE KEYS */; -/*!40000 ALTER TABLE `verified_track_content_verifiedtrackcohortedcourse` ENABLE KEYS */; +LOCK TABLES `user_tours_userdiscussionstours` WRITE; +/*!40000 ALTER TABLE `user_tours_userdiscussionstours` DISABLE KEYS */; +/*!40000 ALTER TABLE `user_tours_userdiscussionstours` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `verify_student_icrvstatusemailsconfiguration` +-- Table structure for table `user_tours_usertour` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `verify_student_icrvstatusemailsconfiguration` ( +CREATE TABLE `user_tours_usertour` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `change_date` datetime(6) NOT NULL, - `enabled` tinyint(1) NOT NULL, - `changed_by_id` int(11) DEFAULT NULL, + `course_home_tour_status` varchar(50) NOT NULL, + `show_courseware_tour` tinyint(1) NOT NULL, + `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `verify_student_icr_changed_by_id_52e319582f18ea3_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `verify_student_icr_changed_by_id_52e319582f18ea3_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + UNIQUE KEY `user_id` (`user_id`), + CONSTRAINT `user_tours_usertour_user_id_723c222b_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `verify_student_icrvstatusemailsconfiguration` +-- Dumping data for table `user_tours_usertour` -- -LOCK TABLES `verify_student_icrvstatusemailsconfiguration` WRITE; -/*!40000 ALTER TABLE `verify_student_icrvstatusemailsconfiguration` DISABLE KEYS */; -/*!40000 ALTER TABLE `verify_student_icrvstatusemailsconfiguration` ENABLE KEYS */; +LOCK TABLES `user_tours_usertour` WRITE; +/*!40000 ALTER TABLE `user_tours_usertour` DISABLE KEYS */; +INSERT INTO `user_tours_usertour` VALUES (1,'show-new-user-tour',1,3),(2,'show-new-user-tour',1,4),(3,'show-new-user-tour',1,5),(4,'show-new-user-tour',1,6),(5,'show-new-user-tour',1,7),(6,'show-new-user-tour',1,8),(7,'show-new-user-tour',1,9),(8,'show-new-user-tour',1,10),(9,'show-new-user-tour',1,11); +/*!40000 ALTER TABLE `user_tours_usertour` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `verify_student_incoursereverificationconfiguration` +-- Table structure for table `util_ratelimitconfiguration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `verify_student_incoursereverificationconfiguration` ( +CREATE TABLE `util_ratelimitconfiguration` ( `id` int(11) NOT NULL AUTO_INCREMENT, `change_date` datetime(6) NOT NULL, `enabled` tinyint(1) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `verify_student_in_changed_by_id_1f3e3fa462a6ded6_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `verify_student_in_changed_by_id_1f3e3fa462a6ded6_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + KEY `util_ratelimitconfig_changed_by_id_794ac118_fk_auth_user` (`changed_by_id`), + CONSTRAINT `util_ratelimitconfig_changed_by_id_794ac118_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `verify_student_incoursereverificationconfiguration` +-- Dumping data for table `util_ratelimitconfiguration` -- -LOCK TABLES `verify_student_incoursereverificationconfiguration` WRITE; -/*!40000 ALTER TABLE `verify_student_incoursereverificationconfiguration` DISABLE KEYS */; -/*!40000 ALTER TABLE `verify_student_incoursereverificationconfiguration` ENABLE KEYS */; +LOCK TABLES `util_ratelimitconfiguration` WRITE; +/*!40000 ALTER TABLE `util_ratelimitconfiguration` DISABLE KEYS */; +INSERT INTO `util_ratelimitconfiguration` VALUES (1,'2023-02-21 14:10:53.721223',1,NULL); +/*!40000 ALTER TABLE `util_ratelimitconfiguration` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `verify_student_skippedreverification` +-- Table structure for table `verify_student_manualverification` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `verify_student_skippedreverification` ( +CREATE TABLE `verify_student_manualverification` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `course_id` varchar(255) NOT NULL, + `status` varchar(100) NOT NULL, + `status_changed` datetime(6) NOT NULL, + `name` varchar(255) NOT NULL, `created_at` datetime(6) NOT NULL, - `checkpoint_id` int(11) NOT NULL, + `updated_at` datetime(6) NOT NULL, + `reason` varchar(255) NOT NULL, `user_id` int(11) NOT NULL, + `expiration_date` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `verify_student_skippedreverificati_user_id_1e8af5a5e735aa1a_uniq` (`user_id`,`course_id`), - KEY `verify_student_skippedreverification_ea134da7` (`course_id`), - KEY `verify_student_skippedreverification_bef2d98a` (`checkpoint_id`), - KEY `verify_student_skippedreverification_e8701ad4` (`user_id`), - CONSTRAINT `D759ffa5ca66ef1a2c8c200f7a21365b` FOREIGN KEY (`checkpoint_id`) REFERENCES `verify_student_verificationcheckpoint` (`id`), - CONSTRAINT `verify_student_skippedr_user_id_6752b392e3d3c501_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + KEY `verify_student_manua_user_id_f38b72b4_fk_auth_user` (`user_id`), + KEY `verify_student_manualverification_created_at_e4e3731a` (`created_at`), + KEY `verify_student_manualverification_updated_at_1a350690` (`updated_at`), + KEY `verify_student_manualverification_expiration_date_d2feae82` (`expiration_date`), + CONSTRAINT `verify_student_manua_user_id_f38b72b4_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `verify_student_skippedreverification` +-- Dumping data for table `verify_student_manualverification` -- -LOCK TABLES `verify_student_skippedreverification` WRITE; -/*!40000 ALTER TABLE `verify_student_skippedreverification` DISABLE KEYS */; -/*!40000 ALTER TABLE `verify_student_skippedreverification` ENABLE KEYS */; +LOCK TABLES `verify_student_manualverification` WRITE; +/*!40000 ALTER TABLE `verify_student_manualverification` DISABLE KEYS */; +/*!40000 ALTER TABLE `verify_student_manualverification` ENABLE KEYS */; UNLOCK TABLES; -- @@ -10026,18 +14630,22 @@ CREATE TABLE `verify_student_softwaresecurephotoverification` ( `copy_id_photo_from_id` int(11) DEFAULT NULL, `reviewing_user_id` int(11) DEFAULT NULL, `user_id` int(11) NOT NULL, + `expiry_email_date` datetime(6) DEFAULT NULL, + `expiration_date` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `D01dce17b91c9382bd80d4be23a3e0cf` (`copy_id_photo_from_id`), - KEY `verify_studen_reviewing_user_id_727fae1d0bcf8aaf_fk_auth_user_id` (`reviewing_user_id`), - KEY `verify_student_software_user_id_61ffab9c12020106_fk_auth_user_id` (`user_id`), - KEY `verify_student_softwaresecurephotoverification_f6fc3014` (`receipt_id`), - KEY `verify_student_softwaresecurephotoverification_fde81f11` (`created_at`), - KEY `verify_student_softwaresecurephotoverification_afd1a1a8` (`updated_at`), - KEY `verify_student_softwaresecurephotoverification_ebf78b51` (`display`), - KEY `verify_student_softwaresecurephotoverification_22bb6ff9` (`submitted_at`), - CONSTRAINT `D01dce17b91c9382bd80d4be23a3e0cf` FOREIGN KEY (`copy_id_photo_from_id`) REFERENCES `verify_student_softwaresecurephotoverification` (`id`), - CONSTRAINT `verify_studen_reviewing_user_id_727fae1d0bcf8aaf_fk_auth_user_id` FOREIGN KEY (`reviewing_user_id`) REFERENCES `auth_user` (`id`), - CONSTRAINT `verify_student_software_user_id_61ffab9c12020106_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + KEY `verify_student_softw_copy_id_photo_from_i_059e40b6_fk_verify_st` (`copy_id_photo_from_id`), + KEY `verify_student_softw_reviewing_user_id_55fd003a_fk_auth_user` (`reviewing_user_id`), + KEY `verify_student_softw_user_id_66ca4f6d_fk_auth_user` (`user_id`), + KEY `verify_student_softwaresecu_receipt_id_2160ce88` (`receipt_id`), + KEY `verify_student_softwaresecu_created_at_566f779f` (`created_at`), + KEY `verify_student_softwaresecu_updated_at_8f5cf2d7` (`updated_at`), + KEY `verify_student_softwaresecurephotoverification_display_287287f8` (`display`), + KEY `verify_student_softwaresecu_submitted_at_f3d5cd03` (`submitted_at`), + KEY `verify_student_softwaresecu_expiry_email_date_6ae6d6c9` (`expiry_email_date`), + KEY `verify_student_softwaresecu_expiration_date_f7f2d890` (`expiration_date`), + CONSTRAINT `verify_student_softw_copy_id_photo_from_i_059e40b6_fk_verify_st` FOREIGN KEY (`copy_id_photo_from_id`) REFERENCES `verify_student_softwaresecurephotoverification` (`id`), + CONSTRAINT `verify_student_softw_reviewing_user_id_55fd003a_fk_auth_user` FOREIGN KEY (`reviewing_user_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `verify_student_softw_user_id_66ca4f6d_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10051,55 +14659,66 @@ LOCK TABLES `verify_student_softwaresecurephotoverification` WRITE; UNLOCK TABLES; -- --- Table structure for table `verify_student_verificationcheckpoint` +-- Table structure for table `verify_student_ssoverification` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `verify_student_verificationcheckpoint` ( +CREATE TABLE `verify_student_ssoverification` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `course_id` varchar(255) NOT NULL, - `checkpoint_location` varchar(255) NOT NULL, + `status` varchar(100) NOT NULL, + `status_changed` datetime(6) NOT NULL, + `name` varchar(255) NOT NULL, + `created_at` datetime(6) NOT NULL, + `updated_at` datetime(6) NOT NULL, + `identity_provider_type` varchar(100) NOT NULL, + `identity_provider_slug` varchar(30) NOT NULL, + `user_id` int(11) NOT NULL, + `expiration_date` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `verify_student_verificationcheck_course_id_2c6a1f5c22b4cc19_uniq` (`course_id`,`checkpoint_location`), - KEY `verify_student_verificationcheckpoint_ea134da7` (`course_id`) + KEY `verify_student_ssoverification_user_id_5e6186eb_fk_auth_user_id` (`user_id`), + KEY `verify_student_ssoverification_created_at_6381e5a4` (`created_at`), + KEY `verify_student_ssoverification_updated_at_9d6cc952` (`updated_at`), + KEY `verify_student_ssoverification_identity_provider_slug_56c53eb6` (`identity_provider_slug`), + KEY `verify_student_ssoverification_expiration_date_26ec549d` (`expiration_date`), + CONSTRAINT `verify_student_ssoverification_user_id_5e6186eb_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `verify_student_verificationcheckpoint` +-- Dumping data for table `verify_student_ssoverification` -- -LOCK TABLES `verify_student_verificationcheckpoint` WRITE; -/*!40000 ALTER TABLE `verify_student_verificationcheckpoint` DISABLE KEYS */; -/*!40000 ALTER TABLE `verify_student_verificationcheckpoint` ENABLE KEYS */; +LOCK TABLES `verify_student_ssoverification` WRITE; +/*!40000 ALTER TABLE `verify_student_ssoverification` DISABLE KEYS */; +/*!40000 ALTER TABLE `verify_student_ssoverification` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `verify_student_verificationcheckpoint_photo_verification` +-- Table structure for table `verify_student_sspverificationretryconfig` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `verify_student_verificationcheckpoint_photo_verification` ( +CREATE TABLE `verify_student_sspverificationretryconfig` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `verificationcheckpoint_id` int(11) NOT NULL, - `softwaresecurephotoverification_id` int(11) NOT NULL, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `arguments` longtext NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `verificationcheckpoint_id` (`verificationcheckpoint_id`,`softwaresecurephotoverification_id`), - KEY `c7846aea49a044a1161a4b9b6d70e050` (`softwaresecurephotoverification_id`), - CONSTRAINT `c7846aea49a044a1161a4b9b6d70e050` FOREIGN KEY (`softwaresecurephotoverification_id`) REFERENCES `verify_student_softwaresecurephotoverification` (`id`), - CONSTRAINT `e4d180f9ca43c3b66693c416a36cfb9d` FOREIGN KEY (`verificationcheckpoint_id`) REFERENCES `verify_student_verificationcheckpoint` (`id`) + KEY `verify_student_sspve_changed_by_id_c035fbe5_fk_auth_user` (`changed_by_id`), + CONSTRAINT `verify_student_sspve_changed_by_id_c035fbe5_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `verify_student_verificationcheckpoint_photo_verification` +-- Dumping data for table `verify_student_sspverificationretryconfig` -- -LOCK TABLES `verify_student_verificationcheckpoint_photo_verification` WRITE; -/*!40000 ALTER TABLE `verify_student_verificationcheckpoint_photo_verification` DISABLE KEYS */; -/*!40000 ALTER TABLE `verify_student_verificationcheckpoint_photo_verification` ENABLE KEYS */; +LOCK TABLES `verify_student_sspverificationretryconfig` WRITE; +/*!40000 ALTER TABLE `verify_student_sspverificationretryconfig` DISABLE KEYS */; +/*!40000 ALTER TABLE `verify_student_sspverificationretryconfig` ENABLE KEYS */; UNLOCK TABLES; -- @@ -10117,7 +14736,7 @@ CREATE TABLE `verify_student_verificationdeadline` ( `deadline_is_explicit` tinyint(1) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `course_key` (`course_key`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10126,96 +14745,91 @@ CREATE TABLE `verify_student_verificationdeadline` ( LOCK TABLES `verify_student_verificationdeadline` WRITE; /*!40000 ALTER TABLE `verify_student_verificationdeadline` DISABLE KEYS */; -INSERT INTO `verify_student_verificationdeadline` VALUES (1,'2018-01-31 21:22:46.592715','2018-01-31 21:22:46.593232','course-v1:edX+DemoX+Demo_Course','2020-01-31 21:22:40.820392',1),(2,'2018-01-31 21:27:06.199979','2018-01-31 21:27:06.200224','course-v1:edX+E2E-101+course','2018-12-31 00:00:00.000000',0); /*!40000 ALTER TABLE `verify_student_verificationdeadline` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `verify_student_verificationstatus` +-- Table structure for table `video_config_coursehlsplaybackenabledflag` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `verify_student_verificationstatus` ( +CREATE TABLE `video_config_coursehlsplaybackenabledflag` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `status` varchar(32) NOT NULL, - `timestamp` datetime(6) NOT NULL, - `response` longtext, - `error` longtext, - `checkpoint_id` int(11) NOT NULL, - `user_id` int(11) NOT NULL, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `course_id` varchar(255) NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `D4cefb6d3d71c9b26af2a5ece4c37277` (`checkpoint_id`), - KEY `verify_student_verifica_user_id_5c19fcd6dc05f211_fk_auth_user_id` (`user_id`), - KEY `verify_student_verificationstatus_9acb4454` (`status`), - CONSTRAINT `D4cefb6d3d71c9b26af2a5ece4c37277` FOREIGN KEY (`checkpoint_id`) REFERENCES `verify_student_verificationcheckpoint` (`id`), - CONSTRAINT `verify_student_verifica_user_id_5c19fcd6dc05f211_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + KEY `video_config_courseh_changed_by_id_fa268d53_fk_auth_user` (`changed_by_id`), + KEY `video_config_coursehlsplaybackenabledflag_course_id_c0fcaead` (`course_id`), + CONSTRAINT `video_config_courseh_changed_by_id_fa268d53_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `verify_student_verificationstatus` +-- Dumping data for table `video_config_coursehlsplaybackenabledflag` -- -LOCK TABLES `verify_student_verificationstatus` WRITE; -/*!40000 ALTER TABLE `verify_student_verificationstatus` DISABLE KEYS */; -/*!40000 ALTER TABLE `verify_student_verificationstatus` ENABLE KEYS */; +LOCK TABLES `video_config_coursehlsplaybackenabledflag` WRITE; +/*!40000 ALTER TABLE `video_config_coursehlsplaybackenabledflag` DISABLE KEYS */; +/*!40000 ALTER TABLE `video_config_coursehlsplaybackenabledflag` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `video_config_coursehlsplaybackenabledflag` +-- Table structure for table `video_config_coursevideotranscriptenabledflag` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `video_config_coursehlsplaybackenabledflag` ( +CREATE TABLE `video_config_coursevideotranscriptenabledflag` ( `id` int(11) NOT NULL AUTO_INCREMENT, `change_date` datetime(6) NOT NULL, `enabled` tinyint(1) NOT NULL, `course_id` varchar(255) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `video_config_cour_changed_by_id_28b01cb29cfcd9a2_fk_auth_user_id` (`changed_by_id`), - KEY `video_config_coursehlsplaybackenabledflag_ea134da7` (`course_id`), - CONSTRAINT `video_config_cour_changed_by_id_28b01cb29cfcd9a2_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `video_config_coursev_changed_by_id_3bdcf2a6_fk_auth_user` (`changed_by_id`), + KEY `video_config_coursevideotranscriptenabledflag_course_id_fcfacf5b` (`course_id`), + CONSTRAINT `video_config_coursev_changed_by_id_3bdcf2a6_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `video_config_coursehlsplaybackenabledflag` +-- Dumping data for table `video_config_coursevideotranscriptenabledflag` -- -LOCK TABLES `video_config_coursehlsplaybackenabledflag` WRITE; -/*!40000 ALTER TABLE `video_config_coursehlsplaybackenabledflag` DISABLE KEYS */; -/*!40000 ALTER TABLE `video_config_coursehlsplaybackenabledflag` ENABLE KEYS */; +LOCK TABLES `video_config_coursevideotranscriptenabledflag` WRITE; +/*!40000 ALTER TABLE `video_config_coursevideotranscriptenabledflag` DISABLE KEYS */; +/*!40000 ALTER TABLE `video_config_coursevideotranscriptenabledflag` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `video_config_coursevideotranscriptenabledflag` +-- Table structure for table `video_config_courseyoutubeblockedflag` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `video_config_coursevideotranscriptenabledflag` ( +CREATE TABLE `video_config_courseyoutubeblockedflag` ( `id` int(11) NOT NULL AUTO_INCREMENT, `change_date` datetime(6) NOT NULL, `enabled` tinyint(1) NOT NULL, `course_id` varchar(255) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `video_config_cour_changed_by_id_184a5ebdccef55f5_fk_auth_user_id` (`changed_by_id`), - KEY `video_config_coursevideotranscriptenabledflag_ea134da7` (`course_id`), - CONSTRAINT `video_config_cour_changed_by_id_184a5ebdccef55f5_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `video_config_coursey_changed_by_id_3496713f_fk_auth_user` (`changed_by_id`), + KEY `video_config_courseyoutubeblockedflag_course_id_4c9395c6` (`course_id`), + CONSTRAINT `video_config_coursey_changed_by_id_3496713f_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `video_config_coursevideotranscriptenabledflag` +-- Dumping data for table `video_config_courseyoutubeblockedflag` -- -LOCK TABLES `video_config_coursevideotranscriptenabledflag` WRITE; -/*!40000 ALTER TABLE `video_config_coursevideotranscriptenabledflag` DISABLE KEYS */; -/*!40000 ALTER TABLE `video_config_coursevideotranscriptenabledflag` ENABLE KEYS */; +LOCK TABLES `video_config_courseyoutubeblockedflag` WRITE; +/*!40000 ALTER TABLE `video_config_courseyoutubeblockedflag` DISABLE KEYS */; +/*!40000 ALTER TABLE `video_config_courseyoutubeblockedflag` ENABLE KEYS */; UNLOCK TABLES; -- @@ -10231,8 +14845,8 @@ CREATE TABLE `video_config_hlsplaybackenabledflag` ( `enabled_for_all_courses` tinyint(1) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `video_config_hlsp_changed_by_id_15b74d899e55b62b_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `video_config_hlsp_changed_by_id_15b74d899e55b62b_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `video_config_hlsplay_changed_by_id_d93f2234_fk_auth_user` (`changed_by_id`), + CONSTRAINT `video_config_hlsplay_changed_by_id_d93f2234_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10245,6 +14859,123 @@ LOCK TABLES `video_config_hlsplaybackenabledflag` WRITE; /*!40000 ALTER TABLE `video_config_hlsplaybackenabledflag` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `video_config_migrationenqueuedcourse` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `video_config_migrationenqueuedcourse` ( + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `course_id` varchar(255) NOT NULL, + `command_run` int(10) unsigned NOT NULL, + PRIMARY KEY (`course_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `video_config_migrationenqueuedcourse` +-- + +LOCK TABLES `video_config_migrationenqueuedcourse` WRITE; +/*!40000 ALTER TABLE `video_config_migrationenqueuedcourse` DISABLE KEYS */; +/*!40000 ALTER TABLE `video_config_migrationenqueuedcourse` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `video_config_transcriptmigrationsetting` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `video_config_transcriptmigrationsetting` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `force_update` tinyint(1) NOT NULL, + `commit` tinyint(1) NOT NULL, + `all_courses` tinyint(1) NOT NULL, + `course_ids` longtext NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + `command_run` int(10) unsigned NOT NULL, + `batch_size` int(10) unsigned NOT NULL, + PRIMARY KEY (`id`), + KEY `video_config_transcr_changed_by_id_4c7817bd_fk_auth_user` (`changed_by_id`), + CONSTRAINT `video_config_transcr_changed_by_id_4c7817bd_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `video_config_transcriptmigrationsetting` +-- + +LOCK TABLES `video_config_transcriptmigrationsetting` WRITE; +/*!40000 ALTER TABLE `video_config_transcriptmigrationsetting` DISABLE KEYS */; +/*!40000 ALTER TABLE `video_config_transcriptmigrationsetting` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `video_config_updatedcoursevideos` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `video_config_updatedcoursevideos` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `course_id` varchar(255) NOT NULL, + `edx_video_id` varchar(100) NOT NULL, + `command_run` int(10) unsigned NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `video_config_updatedcour_course_id_edx_video_id_455a73ff_uniq` (`course_id`,`edx_video_id`), + KEY `video_config_updatedcoursevideos_course_id_e72703a3` (`course_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `video_config_updatedcoursevideos` +-- + +LOCK TABLES `video_config_updatedcoursevideos` WRITE; +/*!40000 ALTER TABLE `video_config_updatedcoursevideos` DISABLE KEYS */; +/*!40000 ALTER TABLE `video_config_updatedcoursevideos` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `video_config_videothumbnailsetting` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `video_config_videothumbnailsetting` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `command_run` int(10) unsigned NOT NULL, + `batch_size` int(10) unsigned NOT NULL, + `videos_per_task` int(10) unsigned NOT NULL, + `commit` tinyint(1) NOT NULL, + `all_course_videos` tinyint(1) NOT NULL, + `course_ids` longtext NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + `offset` int(10) unsigned NOT NULL, + PRIMARY KEY (`id`), + KEY `video_config_videoth_changed_by_id_9385a0b2_fk_auth_user` (`changed_by_id`), + CONSTRAINT `video_config_videoth_changed_by_id_9385a0b2_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `video_config_videothumbnailsetting` +-- + +LOCK TABLES `video_config_videothumbnailsetting` WRITE; +/*!40000 ALTER TABLE `video_config_videothumbnailsetting` DISABLE KEYS */; +/*!40000 ALTER TABLE `video_config_videothumbnailsetting` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `video_config_videotranscriptenabledflag` -- @@ -10258,8 +14989,8 @@ CREATE TABLE `video_config_videotranscriptenabledflag` ( `enabled_for_all_courses` tinyint(1) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `video_config_vide_changed_by_id_3a0857ce30241112_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `video_config_vide_changed_by_id_3a0857ce30241112_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `video_config_videotr_changed_by_id_9f0afd7f_fk_auth_user` (`changed_by_id`), + CONSTRAINT `video_config_videotr_changed_by_id_9f0afd7f_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10285,9 +15016,9 @@ CREATE TABLE `video_pipeline_coursevideouploadsenabledbydefault` ( `course_id` varchar(255) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `video_pipeline_co_changed_by_id_6fa6d53fe11c233b_fk_auth_user_id` (`changed_by_id`), - KEY `video_pipeline_coursevideouploadsenabledbydefault_ea134da7` (`course_id`), - CONSTRAINT `video_pipeline_co_changed_by_id_6fa6d53fe11c233b_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `video_pipeline_cours_changed_by_id_84ec1a58_fk_auth_user` (`changed_by_id`), + KEY `video_pipeline_coursevideou_course_id_9fd1b18b` (`course_id`), + CONSTRAINT `video_pipeline_cours_changed_by_id_84ec1a58_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10301,32 +15032,32 @@ LOCK TABLES `video_pipeline_coursevideouploadsenabledbydefault` WRITE; UNLOCK TABLES; -- --- Table structure for table `video_pipeline_videopipelineintegration` +-- Table structure for table `video_pipeline_vempipelineintegration` -- /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `video_pipeline_videopipelineintegration` ( +CREATE TABLE `video_pipeline_vempipelineintegration` ( `id` int(11) NOT NULL AUTO_INCREMENT, `change_date` datetime(6) NOT NULL, `enabled` tinyint(1) NOT NULL, + `client_name` varchar(100) NOT NULL, `api_url` varchar(200) NOT NULL, `service_username` varchar(100) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, - `client_name` varchar(100) NOT NULL, PRIMARY KEY (`id`), - KEY `video_pipeline_vi_changed_by_id_384bb33af13db7a5_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `video_pipeline_vi_changed_by_id_384bb33af13db7a5_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `video_pipeline_vempi_changed_by_id_cadc1895_fk_auth_user` (`changed_by_id`), + CONSTRAINT `video_pipeline_vempi_changed_by_id_cadc1895_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `video_pipeline_videopipelineintegration` +-- Dumping data for table `video_pipeline_vempipelineintegration` -- -LOCK TABLES `video_pipeline_videopipelineintegration` WRITE; -/*!40000 ALTER TABLE `video_pipeline_videopipelineintegration` DISABLE KEYS */; -/*!40000 ALTER TABLE `video_pipeline_videopipelineintegration` ENABLE KEYS */; +LOCK TABLES `video_pipeline_vempipelineintegration` WRITE; +/*!40000 ALTER TABLE `video_pipeline_vempipelineintegration` DISABLE KEYS */; +/*!40000 ALTER TABLE `video_pipeline_vempipelineintegration` ENABLE KEYS */; UNLOCK TABLES; -- @@ -10342,8 +15073,8 @@ CREATE TABLE `video_pipeline_videouploadsenabledbydefault` ( `enabled_for_all_courses` tinyint(1) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `video_pipeline_vi_changed_by_id_4fff17e91cce415c_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `video_pipeline_vi_changed_by_id_4fff17e91cce415c_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `video_pipeline_video_changed_by_id_3d066822_fk_auth_user` (`changed_by_id`), + CONSTRAINT `video_pipeline_video_changed_by_id_3d066822_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10378,8 +15109,8 @@ CREATE TABLE `waffle_flag` ( `modified` datetime(6) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`), - KEY `waffle_flag_e2fa5388` (`created`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + KEY `waffle_flag_created_4a6e8cef` (`created`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10388,6 +15119,7 @@ CREATE TABLE `waffle_flag` ( LOCK TABLES `waffle_flag` WRITE; /*!40000 ALTER TABLE `waffle_flag` DISABLE KEYS */; +INSERT INTO `waffle_flag` VALUES (2,'grades.rejected_exam_overrides_grade',1,NULL,0,1,0,0,'',0,'','2023-02-21 13:31:07.946574','2023-02-21 13:31:07.946591'),(3,'grades.enforce_freeze_grade_after_course_end',1,NULL,0,1,0,0,'',0,'','2023-02-21 13:31:07.951895','2023-02-21 13:31:07.951908'),(4,'grades.writable_gradebook',1,NULL,0,1,0,0,'',0,'','2023-02-21 13:31:07.957214','2023-02-21 13:31:07.957227'),(5,'studio.enable_checklists_quality',1,NULL,0,1,0,0,'',0,'','2023-02-21 14:18:23.327344','2023-02-21 14:18:23.327354'); /*!40000 ALTER TABLE `waffle_flag` ENABLE KEYS */; UNLOCK TABLES; @@ -10402,10 +15134,10 @@ CREATE TABLE `waffle_flag_groups` ( `flag_id` int(11) NOT NULL, `group_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `flag_id` (`flag_id`,`group_id`), - KEY `waffle_flag_groups_group_id_1d214ce64ae3698d_fk_auth_group_id` (`group_id`), - CONSTRAINT `waffle_flag_groups_flag_id_3d040eff1615da33_fk_waffle_flag_id` FOREIGN KEY (`flag_id`) REFERENCES `waffle_flag` (`id`), - CONSTRAINT `waffle_flag_groups_group_id_1d214ce64ae3698d_fk_auth_group_id` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`) + UNIQUE KEY `waffle_flag_groups_flag_id_group_id_8ba0c71b_uniq` (`flag_id`,`group_id`), + KEY `waffle_flag_groups_group_id_a97c4f66_fk_auth_group_id` (`group_id`), + CONSTRAINT `waffle_flag_groups_flag_id_c11c0c05_fk_waffle_flag_id` FOREIGN KEY (`flag_id`) REFERENCES `waffle_flag` (`id`), + CONSTRAINT `waffle_flag_groups_group_id_a97c4f66_fk_auth_group_id` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10429,10 +15161,10 @@ CREATE TABLE `waffle_flag_users` ( `flag_id` int(11) NOT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `flag_id` (`flag_id`,`user_id`), - KEY `waffle_flag_users_user_id_3c8ba20de859cb5_fk_auth_user_id` (`user_id`), - CONSTRAINT `waffle_flag_users_flag_id_fe9e88f3072acde_fk_waffle_flag_id` FOREIGN KEY (`flag_id`) REFERENCES `waffle_flag` (`id`), - CONSTRAINT `waffle_flag_users_user_id_3c8ba20de859cb5_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `waffle_flag_users_flag_id_user_id_b46f76b0_uniq` (`flag_id`,`user_id`), + KEY `waffle_flag_users_user_id_8026df9b_fk_auth_user_id` (`user_id`), + CONSTRAINT `waffle_flag_users_flag_id_833c37b0_fk_waffle_flag_id` FOREIGN KEY (`flag_id`) REFERENCES `waffle_flag` (`id`), + CONSTRAINT `waffle_flag_users_user_id_8026df9b_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10460,8 +15192,8 @@ CREATE TABLE `waffle_sample` ( `modified` datetime(6) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`), - KEY `waffle_sample_e2fa5388` (`created`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + KEY `waffle_sample_created_76198bd5` (`created`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10488,7 +15220,7 @@ CREATE TABLE `waffle_switch` ( `modified` datetime(6) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`), - KEY `waffle_switch_e2fa5388` (`created`) + KEY `waffle_switch_created_c004e77e` (`created`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10515,11 +15247,12 @@ CREATE TABLE `waffle_utils_waffleflagcourseoverridemodel` ( `course_id` varchar(255) NOT NULL, `override_choice` varchar(3) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, + `note` longtext NOT NULL, PRIMARY KEY (`id`), - KEY `waffle_utils_waff_changed_by_id_3b230839b4c20581_fk_auth_user_id` (`changed_by_id`), - KEY `waffle_utils_waffleflagcourseoverridemodel_6690e26e` (`waffle_flag`), - KEY `waffle_utils_waffleflagcourseoverridemodel_ea134da7` (`course_id`), - CONSTRAINT `waffle_utils_waff_changed_by_id_3b230839b4c20581_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `waffle_utils_wafflef_changed_by_id_28429bf5_fk_auth_user` (`changed_by_id`), + KEY `waffle_utils_waffleflagcourseoverridemodel_waffle_flag_d261aad1` (`waffle_flag`), + KEY `waffle_utils_waffleflagcourseoverridemodel_course_id_e94a9fc3` (`course_id`), + CONSTRAINT `waffle_utils_wafflef_changed_by_id_28429bf5_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10532,6 +15265,39 @@ LOCK TABLES `waffle_utils_waffleflagcourseoverridemodel` WRITE; /*!40000 ALTER TABLE `waffle_utils_waffleflagcourseoverridemodel` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `waffle_utils_waffleflagorgoverridemodel` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `waffle_utils_waffleflagorgoverridemodel` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime(6) NOT NULL, + `enabled` tinyint(1) NOT NULL, + `waffle_flag` varchar(255) NOT NULL, + `org` varchar(255) NOT NULL, + `override_choice` varchar(3) NOT NULL, + `note` longtext NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `waffle_org_and_waffle_flag` (`org`,`waffle_flag`), + KEY `waffle_utils_wafflef_changed_by_id_01495c88_fk_auth_user` (`changed_by_id`), + KEY `waffle_utils_waffleflagorgoverridemodel_waffle_flag_1569d94e` (`waffle_flag`), + KEY `waffle_utils_waffleflagorgoverridemodel_org_8ffe16cd` (`org`), + CONSTRAINT `waffle_utils_wafflef_changed_by_id_01495c88_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `waffle_utils_waffleflagorgoverridemodel` +-- + +LOCK TABLES `waffle_utils_waffleflagorgoverridemodel` WRITE; +/*!40000 ALTER TABLE `waffle_utils_waffleflagorgoverridemodel` DISABLE KEYS */; +/*!40000 ALTER TABLE `waffle_utils_waffleflagorgoverridemodel` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `wiki_article` -- @@ -10551,11 +15317,11 @@ CREATE TABLE `wiki_article` ( `owner_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `current_revision_id` (`current_revision_id`), - KEY `wiki_article_0e939a4f` (`group_id`), - KEY `wiki_article_5e7b1936` (`owner_id`), - CONSTRAINT `current_revision_id_42a9dbec1e0dd15c_fk_wiki_articlerevision_id` FOREIGN KEY (`current_revision_id`) REFERENCES `wiki_articlerevision` (`id`), - CONSTRAINT `wiki_article_group_id_2b38601b6aa39f3d_fk_auth_group_id` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`), - CONSTRAINT `wiki_article_owner_id_b1c1e44609a378f_fk_auth_user_id` FOREIGN KEY (`owner_id`) REFERENCES `auth_user` (`id`) + KEY `wiki_article_group_id_bf035c83_fk_auth_group_id` (`group_id`), + KEY `wiki_article_owner_id_956bc94a_fk_auth_user_id` (`owner_id`), + CONSTRAINT `wiki_article_current_revision_id_fc83ea0a_fk_wiki_arti` FOREIGN KEY (`current_revision_id`) REFERENCES `wiki_articlerevision` (`id`), + CONSTRAINT `wiki_article_group_id_bf035c83_fk_auth_group_id` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`), + CONSTRAINT `wiki_article_owner_id_956bc94a_fk_auth_user_id` FOREIGN KEY (`owner_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10581,10 +15347,10 @@ CREATE TABLE `wiki_articleforobject` ( `article_id` int(11) NOT NULL, `content_type_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `wiki_articleforobject_content_type_id_27c4cce189b3bcab_uniq` (`content_type_id`,`object_id`), - KEY `wiki_articleforobj_article_id_6effcfadf020e71_fk_wiki_article_id` (`article_id`), - CONSTRAINT `wiki__content_type_id_6a39c68b7a20c3c4_fk_django_content_type_id` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`), - CONSTRAINT `wiki_articleforobj_article_id_6effcfadf020e71_fk_wiki_article_id` FOREIGN KEY (`article_id`) REFERENCES `wiki_article` (`id`) + UNIQUE KEY `wiki_articleforobject_content_type_id_object_id_046be756_uniq` (`content_type_id`,`object_id`), + KEY `wiki_articleforobject_article_id_7d67d809_fk_wiki_article_id` (`article_id`), + CONSTRAINT `wiki_articleforobjec_content_type_id_ba569059_fk_django_co` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`), + CONSTRAINT `wiki_articleforobject_article_id_7d67d809_fk_wiki_article_id` FOREIGN KEY (`article_id`) REFERENCES `wiki_article` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10609,8 +15375,8 @@ CREATE TABLE `wiki_articleplugin` ( `created` datetime(6) NOT NULL, `article_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `wiki_articleplugin_a00c1b00` (`article_id`), - CONSTRAINT `wiki_articleplugi_article_id_2d2c794af030d9dd_fk_wiki_article_id` FOREIGN KEY (`article_id`) REFERENCES `wiki_article` (`id`) + KEY `wiki_articleplugin_article_id_9ab0e854_fk_wiki_article_id` (`article_id`), + CONSTRAINT `wiki_articleplugin_article_id_9ab0e854_fk_wiki_article_id` FOREIGN KEY (`article_id`) REFERENCES `wiki_article` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10645,12 +15411,12 @@ CREATE TABLE `wiki_articlerevision` ( `previous_revision_id` int(11) DEFAULT NULL, `user_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `wiki_articlerevision_article_id_4b4e7910c8e7b2d0_uniq` (`article_id`,`revision_number`), - KEY `fae2b1c6e892c699844d5dda69aeb89e` (`previous_revision_id`), - KEY `wiki_articlerevision_user_id_183520686b6ead55_fk_auth_user_id` (`user_id`), - CONSTRAINT `fae2b1c6e892c699844d5dda69aeb89e` FOREIGN KEY (`previous_revision_id`) REFERENCES `wiki_articlerevision` (`id`), - CONSTRAINT `wiki_articlerevis_article_id_1f2c587981af1463_fk_wiki_article_id` FOREIGN KEY (`article_id`) REFERENCES `wiki_article` (`id`), - CONSTRAINT `wiki_articlerevision_user_id_183520686b6ead55_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + UNIQUE KEY `wiki_articlerevision_article_id_revision_number_5bcd5334_uniq` (`article_id`,`revision_number`), + KEY `wiki_articlerevision_previous_revision_id_bcfaf4c9_fk_wiki_arti` (`previous_revision_id`), + KEY `wiki_articlerevision_user_id_c687e4de_fk_auth_user_id` (`user_id`), + CONSTRAINT `wiki_articlerevision_article_id_e0fb2474_fk_wiki_article_id` FOREIGN KEY (`article_id`) REFERENCES `wiki_article` (`id`), + CONSTRAINT `wiki_articlerevision_previous_revision_id_bcfaf4c9_fk_wiki_arti` FOREIGN KEY (`previous_revision_id`) REFERENCES `wiki_articlerevision` (`id`), + CONSTRAINT `wiki_articlerevision_user_id_c687e4de_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10672,7 +15438,7 @@ UNLOCK TABLES; CREATE TABLE `wiki_reusableplugin` ( `articleplugin_ptr_id` int(11) NOT NULL, PRIMARY KEY (`articleplugin_ptr_id`), - CONSTRAINT `w_articleplugin_ptr_id_657a603b3f46a3e3_fk_wiki_articleplugin_id` FOREIGN KEY (`articleplugin_ptr_id`) REFERENCES `wiki_articleplugin` (`id`) + CONSTRAINT `wiki_reusableplugin_articleplugin_ptr_id_c1737239_fk_wiki_arti` FOREIGN KEY (`articleplugin_ptr_id`) REFERENCES `wiki_articleplugin` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10696,10 +15462,10 @@ CREATE TABLE `wiki_reusableplugin_articles` ( `reusableplugin_id` int(11) NOT NULL, `article_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `reusableplugin_id` (`reusableplugin_id`,`article_id`), - KEY `wiki_reusableplug_article_id_5e893d3b3fb4f7fa_fk_wiki_article_id` (`article_id`), - CONSTRAINT `a9f9f50fd4e8fdafe7ffc0c1a145fee3` FOREIGN KEY (`reusableplugin_id`) REFERENCES `wiki_reusableplugin` (`articleplugin_ptr_id`), - CONSTRAINT `wiki_reusableplug_article_id_5e893d3b3fb4f7fa_fk_wiki_article_id` FOREIGN KEY (`article_id`) REFERENCES `wiki_article` (`id`) + UNIQUE KEY `wiki_reusableplugin_arti_reusableplugin_id_articl_302a7a01_uniq` (`reusableplugin_id`,`article_id`), + KEY `wiki_reusableplugin__article_id_8a09d39e_fk_wiki_arti` (`article_id`), + CONSTRAINT `wiki_reusableplugin__article_id_8a09d39e_fk_wiki_arti` FOREIGN KEY (`article_id`) REFERENCES `wiki_article` (`id`), + CONSTRAINT `wiki_reusableplugin__reusableplugin_id_52618a1c_fk_wiki_reus` FOREIGN KEY (`reusableplugin_id`) REFERENCES `wiki_reusableplugin` (`articleplugin_ptr_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10723,8 +15489,8 @@ CREATE TABLE `wiki_revisionplugin` ( `current_revision_id` int(11) DEFAULT NULL, PRIMARY KEY (`articleplugin_ptr_id`), UNIQUE KEY `current_revision_id` (`current_revision_id`), - CONSTRAINT `D03d76148e98b4bc99e3137189894366` FOREIGN KEY (`current_revision_id`) REFERENCES `wiki_revisionpluginrevision` (`id`), - CONSTRAINT `w_articleplugin_ptr_id_35fa87d70e9722a1_fk_wiki_articleplugin_id` FOREIGN KEY (`articleplugin_ptr_id`) REFERENCES `wiki_articleplugin` (`id`) + CONSTRAINT `wiki_revisionplugin_articleplugin_ptr_id_95c295f2_fk_wiki_arti` FOREIGN KEY (`articleplugin_ptr_id`) REFERENCES `wiki_articleplugin` (`id`), + CONSTRAINT `wiki_revisionplugin_current_revision_id_46514536_fk_wiki_revi` FOREIGN KEY (`current_revision_id`) REFERENCES `wiki_revisionpluginrevision` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10757,12 +15523,12 @@ CREATE TABLE `wiki_revisionpluginrevision` ( `previous_revision_id` int(11) DEFAULT NULL, `user_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `wiki_revisionpluginrevision_b25eaab4` (`plugin_id`), - KEY `wiki_revisionpluginrevision_e8680b8a` (`previous_revision_id`), - KEY `wiki_revisionpluginrevision_e8701ad4` (`user_id`), - CONSTRAINT `D9574e2f57b828a85a24838761473871` FOREIGN KEY (`plugin_id`) REFERENCES `wiki_revisionplugin` (`articleplugin_ptr_id`), - CONSTRAINT `e524c4f887e857f93c39356f7cf7d4df` FOREIGN KEY (`previous_revision_id`) REFERENCES `wiki_revisionpluginrevision` (`id`), - CONSTRAINT `wiki_revisionpluginrevi_user_id_55a00bd0e2532762_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + KEY `wiki_revisionpluginr_plugin_id_c8f4475b_fk_wiki_revi` (`plugin_id`), + KEY `wiki_revisionpluginr_previous_revision_id_38c877c0_fk_wiki_revi` (`previous_revision_id`), + KEY `wiki_revisionpluginrevision_user_id_ee40f729_fk_auth_user_id` (`user_id`), + CONSTRAINT `wiki_revisionpluginr_plugin_id_c8f4475b_fk_wiki_revi` FOREIGN KEY (`plugin_id`) REFERENCES `wiki_revisionplugin` (`articleplugin_ptr_id`), + CONSTRAINT `wiki_revisionpluginr_previous_revision_id_38c877c0_fk_wiki_revi` FOREIGN KEY (`previous_revision_id`) REFERENCES `wiki_revisionpluginrevision` (`id`), + CONSTRAINT `wiki_revisionpluginrevision_user_id_ee40f729_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10785,9 +15551,9 @@ CREATE TABLE `wiki_simpleplugin` ( `articleplugin_ptr_id` int(11) NOT NULL, `article_revision_id` int(11) NOT NULL, PRIMARY KEY (`articleplugin_ptr_id`), - KEY `w_article_revision_id_8be41c856aa0285_fk_wiki_articlerevision_id` (`article_revision_id`), - CONSTRAINT `w_article_revision_id_8be41c856aa0285_fk_wiki_articlerevision_id` FOREIGN KEY (`article_revision_id`) REFERENCES `wiki_articlerevision` (`id`), - CONSTRAINT `w_articleplugin_ptr_id_36e661324cc27ff2_fk_wiki_articleplugin_id` FOREIGN KEY (`articleplugin_ptr_id`) REFERENCES `wiki_articleplugin` (`id`) + KEY `wiki_simpleplugin_article_revision_id_cff7df92_fk_wiki_arti` (`article_revision_id`), + CONSTRAINT `wiki_simpleplugin_article_revision_id_cff7df92_fk_wiki_arti` FOREIGN KEY (`article_revision_id`) REFERENCES `wiki_articlerevision` (`id`), + CONSTRAINT `wiki_simpleplugin_articleplugin_ptr_id_2b99b828_fk_wiki_arti` FOREIGN KEY (`articleplugin_ptr_id`) REFERENCES `wiki_articleplugin` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10817,17 +15583,14 @@ CREATE TABLE `wiki_urlpath` ( `parent_id` int(11) DEFAULT NULL, `site_id` int(11) NOT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `wiki_urlpath_site_id_124f6aa7b2cc9b82_uniq` (`site_id`,`parent_id`,`slug`), - KEY `wiki_urlpath_article_id_1d1c5eb9a64e1390_fk_wiki_article_id` (`article_id`), - KEY `wiki_urlpath_2dbcba41` (`slug`), - KEY `wiki_urlpath_caf7cc51` (`lft`), - KEY `wiki_urlpath_3cfbd988` (`rght`), - KEY `wiki_urlpath_656442a0` (`tree_id`), - KEY `wiki_urlpath_c9e9a848` (`level`), - KEY `wiki_urlpath_6be37982` (`parent_id`), - CONSTRAINT `wiki_urlpath_article_id_1d1c5eb9a64e1390_fk_wiki_article_id` FOREIGN KEY (`article_id`) REFERENCES `wiki_article` (`id`), - CONSTRAINT `wiki_urlpath_parent_id_24eab80cd168595f_fk_wiki_urlpath_id` FOREIGN KEY (`parent_id`) REFERENCES `wiki_urlpath` (`id`), - CONSTRAINT `wiki_urlpath_site_id_4f30e731b0464e80_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) + UNIQUE KEY `wiki_urlpath_site_id_parent_id_slug_e4942e5d_uniq` (`site_id`,`parent_id`,`slug`), + KEY `wiki_urlpath_article_id_9ef0c0fb_fk_wiki_article_id` (`article_id`), + KEY `wiki_urlpath_slug_39d212eb` (`slug`), + KEY `wiki_urlpath_tree_id_090b475d` (`tree_id`), + KEY `wiki_urlpath_parent_id_a6e675ac` (`parent_id`), + CONSTRAINT `wiki_urlpath_article_id_9ef0c0fb_fk_wiki_article_id` FOREIGN KEY (`article_id`) REFERENCES `wiki_article` (`id`), + CONSTRAINT `wiki_urlpath_parent_id_a6e675ac_fk_wiki_urlpath_id` FOREIGN KEY (`parent_id`) REFERENCES `wiki_urlpath` (`id`), + CONSTRAINT `wiki_urlpath_site_id_319be912_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10853,14 +15616,14 @@ CREATE TABLE `workflow_assessmentworkflow` ( `status` varchar(100) NOT NULL, `status_changed` datetime(6) NOT NULL, `submission_uuid` varchar(36) NOT NULL, - `uuid` varchar(36) NOT NULL, + `uuid` char(32) NOT NULL, `course_id` varchar(255) NOT NULL, `item_id` varchar(255) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `submission_uuid` (`submission_uuid`), UNIQUE KEY `uuid` (`uuid`), - KEY `workflow_assessmentworkflow_ea134da7` (`course_id`), - KEY `workflow_assessmentworkflow_82bfda79` (`item_id`) + KEY `workflow_assessmentworkflow_course_id_8c2d171b` (`course_id`), + KEY `workflow_assessmentworkflow_item_id_3ad0d291` (`item_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10886,10 +15649,10 @@ CREATE TABLE `workflow_assessmentworkflowcancellation` ( `created_at` datetime(6) NOT NULL, `workflow_id` int(11) NOT NULL, PRIMARY KEY (`id`), - KEY `w_workflow_id_581d7b320743ff70_fk_workflow_assessmentworkflow_id` (`workflow_id`), - KEY `workflow_assessmentworkflowcancellation_195d4285` (`cancelled_by_id`), - KEY `workflow_assessmentworkflowcancellation_fde81f11` (`created_at`), - CONSTRAINT `w_workflow_id_581d7b320743ff70_fk_workflow_assessmentworkflow_id` FOREIGN KEY (`workflow_id`) REFERENCES `workflow_assessmentworkflow` (`id`) + KEY `workflow_assessmentw_workflow_id_5e534711_fk_workflow_` (`workflow_id`), + KEY `workflow_assessmentworkflowcancellation_cancelled_by_id_8467736a` (`cancelled_by_id`), + KEY `workflow_assessmentworkflowcancellation_created_at_9da54d83` (`created_at`), + CONSTRAINT `workflow_assessmentw_workflow_id_5e534711_fk_workflow_` FOREIGN KEY (`workflow_id`) REFERENCES `workflow_assessmentworkflow` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10915,9 +15678,10 @@ CREATE TABLE `workflow_assessmentworkflowstep` ( `assessment_completed_at` datetime(6) DEFAULT NULL, `order_num` int(10) unsigned NOT NULL, `workflow_id` int(11) NOT NULL, + `skipped` tinyint(1) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `w_workflow_id_4939c36cf6220ba3_fk_workflow_assessmentworkflow_id` (`workflow_id`), - CONSTRAINT `w_workflow_id_4939c36cf6220ba3_fk_workflow_assessmentworkflow_id` FOREIGN KEY (`workflow_id`) REFERENCES `workflow_assessmentworkflow` (`id`) + KEY `workflow_assessmentw_workflow_id_fe52b4aa_fk_workflow_` (`workflow_id`), + CONSTRAINT `workflow_assessmentw_workflow_id_fe52b4aa_fk_workflow_` FOREIGN KEY (`workflow_id`) REFERENCES `workflow_assessmentworkflow` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10930,6 +15694,110 @@ LOCK TABLES `workflow_assessmentworkflowstep` WRITE; /*!40000 ALTER TABLE `workflow_assessmentworkflowstep` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `workflow_teamassessmentworkflow` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `workflow_teamassessmentworkflow` ( + `assessmentworkflow_ptr_id` int(11) NOT NULL, + `team_submission_uuid` varchar(128) NOT NULL, + PRIMARY KEY (`assessmentworkflow_ptr_id`), + UNIQUE KEY `team_submission_uuid` (`team_submission_uuid`), + CONSTRAINT `workflow_teamassessm_assessmentworkflow_p_53110fc3_fk_workflow_` FOREIGN KEY (`assessmentworkflow_ptr_id`) REFERENCES `workflow_assessmentworkflow` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `workflow_teamassessmentworkflow` +-- + +LOCK TABLES `workflow_teamassessmentworkflow` WRITE; +/*!40000 ALTER TABLE `workflow_teamassessmentworkflow` DISABLE KEYS */; +/*!40000 ALTER TABLE `workflow_teamassessmentworkflow` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `xapi_xapilearnerdatatransmissionaudit` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `xapi_xapilearnerdatatransmissionaudit` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `enterprise_course_enrollment_id` int(11) DEFAULT NULL, + `course_id` varchar(255) NOT NULL, + `course_completed` tinyint(1) NOT NULL, + `completed_timestamp` datetime(6) DEFAULT NULL, + `grade` double DEFAULT NULL, + `status` varchar(100) DEFAULT NULL, + `error_message` longtext, + `user_id` int(11) NOT NULL, + `enterprise_customer_uuid` char(32) DEFAULT NULL, + `instructor_name` varchar(255) NOT NULL, + `plugin_configuration_id` int(11) DEFAULT NULL, + `total_hours` double DEFAULT NULL, + `subsection_id` varchar(255) DEFAULT NULL, + `subsection_name` varchar(255) DEFAULT NULL, + `friendly_status_message` varchar(255) DEFAULT NULL, + `api_record_id` int(11) DEFAULT NULL, + `content_title` varchar(255) DEFAULT NULL, + `progress_status` varchar(255) NOT NULL, + `user_email` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `xapi_xapilearnerdatatran_user_id_course_id_557488b4_uniq` (`user_id`,`course_id`), + UNIQUE KEY `api_record_id` (`api_record_id`), + KEY `xapi_xapilearnerdatatransmi_enterprise_course_enrollmen_0a180d75` (`enterprise_course_enrollment_id`), + KEY `xapi_xapilearnerdatatransmissionaudit_subsection_id_3dec030e` (`subsection_id`), + KEY `xapi_xldta_85936b55_idx` (`enterprise_customer_uuid`,`plugin_configuration_id`), + CONSTRAINT `xapi_xapilearnerdata_api_record_id_7a66c373_fk_integrate` FOREIGN KEY (`api_record_id`) REFERENCES `integrated_channel_apiresponserecord` (`id`), + CONSTRAINT `xapi_xapilearnerdata_user_id_6a49eb25_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `xapi_xapilearnerdatatransmissionaudit` +-- + +LOCK TABLES `xapi_xapilearnerdatatransmissionaudit` WRITE; +/*!40000 ALTER TABLE `xapi_xapilearnerdatatransmissionaudit` DISABLE KEYS */; +/*!40000 ALTER TABLE `xapi_xapilearnerdatatransmissionaudit` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `xapi_xapilrsconfiguration` +-- + +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `xapi_xapilrsconfiguration` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `modified` datetime(6) NOT NULL, + `version` varchar(16) NOT NULL, + `endpoint` varchar(200) NOT NULL, + `key` varchar(255) NOT NULL, + `secret` varchar(255) NOT NULL, + `active` tinyint(1) NOT NULL, + `enterprise_customer_id` char(32) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `enterprise_customer_id` (`enterprise_customer_id`), + CONSTRAINT `xapi_xapilrsconfigur_enterprise_customer__90c03ad5_fk_enterpris` FOREIGN KEY (`enterprise_customer_id`) REFERENCES `enterprise_enterprisecustomer` (`uuid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `xapi_xapilrsconfiguration` +-- + +LOCK TABLES `xapi_xapilrsconfiguration` WRITE; +/*!40000 ALTER TABLE `xapi_xapilrsconfiguration` DISABLE KEYS */; +/*!40000 ALTER TABLE `xapi_xapilrsconfiguration` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `xblock_config_courseeditltifieldsenabledflag` -- @@ -10943,9 +15811,9 @@ CREATE TABLE `xblock_config_courseeditltifieldsenabledflag` ( `course_id` varchar(255) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `xblock_config_cou_changed_by_id_124d91bd160908dd_fk_auth_user_id` (`changed_by_id`), - KEY `xblock_config_courseeditltifieldsenabledflag_ea134da7` (`course_id`), - CONSTRAINT `xblock_config_cou_changed_by_id_124d91bd160908dd_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `xblock_config_course_changed_by_id_09761e15_fk_auth_user` (`changed_by_id`), + KEY `xblock_config_courseeditltifieldsenabledflag_course_id_4f2393b4` (`course_id`), + CONSTRAINT `xblock_config_course_changed_by_id_09761e15_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10971,8 +15839,8 @@ CREATE TABLE `xblock_config_studioconfig` ( `disabled_blocks` longtext NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `xblock_config_stu_changed_by_id_58f0a899052499fd_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `xblock_config_stu_changed_by_id_58f0a899052499fd_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `xblock_config_studio_changed_by_id_8e87ad07_fk_auth_user` (`changed_by_id`), + CONSTRAINT `xblock_config_studio_changed_by_id_8e87ad07_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -10999,9 +15867,9 @@ CREATE TABLE `xblock_django_xblockconfiguration` ( `deprecated` tinyint(1) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `xblock_django_xbl_changed_by_id_61068ae9f50d6490_fk_auth_user_id` (`changed_by_id`), - KEY `xblock_django_xblockconfiguration_b068931c` (`name`), - CONSTRAINT `xblock_django_xbl_changed_by_id_61068ae9f50d6490_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `xblock_django_xblock_changed_by_id_221b9d0e_fk_auth_user` (`changed_by_id`), + KEY `xblock_django_xblockconfiguration_name_9596c362` (`name`), + CONSTRAINT `xblock_django_xblock_changed_by_id_221b9d0e_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -11029,9 +15897,9 @@ CREATE TABLE `xblock_django_xblockstudioconfiguration` ( `support_level` varchar(2) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `xblock_django_xblo_changed_by_id_353d5def0d11370_fk_auth_user_id` (`changed_by_id`), - KEY `xblock_django_xblockstudioconfiguration_b068931c` (`name`), - CONSTRAINT `xblock_django_xblo_changed_by_id_353d5def0d11370_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `xblock_django_xblock_changed_by_id_641b0905_fk_auth_user` (`changed_by_id`), + KEY `xblock_django_xblockstudioconfiguration_name_1450bfa3` (`name`), + CONSTRAINT `xblock_django_xblock_changed_by_id_641b0905_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -11056,8 +15924,8 @@ CREATE TABLE `xblock_django_xblockstudioconfigurationflag` ( `enabled` tinyint(1) NOT NULL, `changed_by_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `xblock_django_xbl_changed_by_id_11457ce96bbbfbf6_fk_auth_user_id` (`changed_by_id`), - CONSTRAINT `xblock_django_xbl_changed_by_id_11457ce96bbbfbf6_fk_auth_user_id` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) + KEY `xblock_django_xblock_changed_by_id_fdf047b8_fk_auth_user` (`changed_by_id`), + CONSTRAINT `xblock_django_xblock_changed_by_id_fdf047b8_fk_auth_user` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -11079,4 +15947,4 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2018-01-31 21:36:25 +-- Dump completed on 2023-02-21 14:42:10 diff --git a/edxapp_csmh.sql b/edxapp_csmh.sql index 01b608e930..bcfa361631 100644 --- a/edxapp_csmh.sql +++ b/edxapp_csmh.sql @@ -1,8 +1,8 @@ --- MySQL dump 10.13 Distrib 5.6.39, for Linux (x86_64) +-- MySQL dump 10.13 Distrib 5.7.39, for Linux (x86_64) -- -- Host: localhost Database: edxapp_csmh -- ------------------------------------------------------ --- Server version 5.6.39 +-- Server version 5.7.39 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; @@ -38,11 +38,12 @@ CREATE TABLE `coursewarehistoryextended_studentmodulehistoryextended` ( `grade` double DEFAULT NULL, `max_grade` double DEFAULT NULL, `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `student_module_id` int(11) NOT NULL, + `student_module_id` bigint(20) unsigned NOT NULL, PRIMARY KEY (`id`), - KEY `coursewarehistoryextended_studentmodulehistoryextended_2af72f10` (`version`), - KEY `coursewarehistoryextended_studentmodulehistoryextended_e2fa5388` (`created`), - KEY `coursewarehistoryextended_student_module_id_61b23a7a1dd27fe4_idx` (`student_module_id`) + KEY `coursewarehistoryextended_s_version_d66288c3` (`version`), + KEY `coursewarehistoryextended_s_created_2cf0c3be` (`created`), + KEY `coursewarehistoryextended_s_student_module_id_48320e41` (`student_module_id`), + KEY `coursewarehistoryextended_student_module_id_48320e41_idx` (`student_module_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -67,7 +68,7 @@ CREATE TABLE `django_migrations` ( `name` varchar(255) NOT NULL, `applied` datetime(6) NOT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=395 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=979 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -76,7 +77,7 @@ CREATE TABLE `django_migrations` ( LOCK TABLES `django_migrations` WRITE; /*!40000 ALTER TABLE `django_migrations` DISABLE KEYS */; -INSERT INTO `django_migrations` VALUES (1,'contenttypes','0001_initial','2016-12-17 21:30:28.505194'),(2,'auth','0001_initial','2016-12-17 21:30:28.623739'),(3,'admin','0001_initial','2016-12-17 21:30:28.718110'),(4,'sites','0001_initial','2016-12-17 21:30:28.757525'),(5,'contenttypes','0002_remove_content_type_name','2016-12-17 21:30:28.927188'),(6,'api_admin','0001_initial','2016-12-17 21:30:29.051582'),(7,'api_admin','0002_auto_20160325_1604','2016-12-17 21:30:29.170420'),(8,'api_admin','0003_auto_20160404_1618','2016-12-17 21:30:29.515374'),(9,'api_admin','0004_auto_20160412_1506','2016-12-17 21:30:29.792546'),(10,'api_admin','0005_auto_20160414_1232','2016-12-17 21:30:29.895633'),(11,'api_admin','0006_catalog','2016-12-17 21:30:29.935659'),(12,'assessment','0001_initial','2016-12-17 21:30:31.459234'),(13,'assessment','0002_staffworkflow','2016-12-17 21:30:31.520779'),(14,'auth','0002_alter_permission_name_max_length','2016-12-17 21:30:31.616835'),(15,'auth','0003_alter_user_email_max_length','2016-12-17 21:30:31.733266'),(16,'auth','0004_alter_user_username_opts','2016-12-17 21:30:31.839695'),(17,'auth','0005_alter_user_last_login_null','2016-12-17 21:30:31.946886'),(18,'auth','0006_require_contenttypes_0002','2016-12-17 21:30:31.973266'),(19,'instructor_task','0001_initial','2016-12-17 21:30:32.070121'),(20,'certificates','0001_initial','2016-12-17 21:30:32.890502'),(21,'certificates','0002_data__certificatehtmlviewconfiguration_data','2016-12-17 21:30:32.955557'),(22,'certificates','0003_data__default_modes','2016-12-17 21:30:32.998844'),(23,'certificates','0004_certificategenerationhistory','2016-12-17 21:30:33.123344'),(24,'certificates','0005_auto_20151208_0801','2016-12-17 21:30:33.275835'),(25,'certificates','0006_certificatetemplateasset_asset_slug','2016-12-17 21:30:33.310157'),(26,'certificates','0007_certificateinvalidation','2016-12-17 21:30:33.444878'),(27,'badges','0001_initial','2016-12-17 21:30:33.685873'),(28,'badges','0002_data__migrate_assertions','2016-12-17 21:30:33.726406'),(29,'badges','0003_schema__add_event_configuration','2016-12-17 21:30:34.013221'),(30,'bookmarks','0001_initial','2016-12-17 21:30:34.475781'),(31,'branding','0001_initial','2016-12-17 21:30:34.793962'),(32,'course_groups','0001_initial','2016-12-17 21:30:36.088247'),(33,'bulk_email','0001_initial','2016-12-17 21:30:36.718426'),(34,'bulk_email','0002_data__load_course_email_template','2016-12-17 21:30:36.756662'),(35,'bulk_email','0003_config_model_feature_flag','2016-12-17 21:30:36.971127'),(36,'bulk_email','0004_add_email_targets','2016-12-17 21:30:37.662273'),(37,'bulk_email','0005_move_target_data','2016-12-17 21:30:37.706454'),(38,'catalog','0001_initial','2016-12-17 21:30:37.954117'),(39,'certificates','0008_schema__remove_badges','2016-12-17 21:30:38.443508'),(40,'commerce','0001_data__add_ecommerce_service_user','2016-12-17 21:30:38.499445'),(41,'commerce','0002_commerceconfiguration','2016-12-17 21:30:38.739545'),(42,'commerce','0003_auto_20160329_0709','2016-12-17 21:30:38.999318'),(43,'commerce','0004_auto_20160531_0950','2016-12-17 21:30:39.496923'),(44,'contentserver','0001_initial','2016-12-17 21:30:39.776248'),(45,'contentserver','0002_cdnuseragentsconfig','2016-12-17 21:30:40.061875'),(46,'cors_csrf','0001_initial','2016-12-17 21:30:40.308955'),(47,'course_action_state','0001_initial','2016-12-17 21:30:40.818977'),(48,'course_modes','0001_initial','2016-12-17 21:30:40.908209'),(49,'course_modes','0002_coursemode_expiration_datetime_is_explicit','2016-12-17 21:30:40.945208'),(50,'course_modes','0003_auto_20151113_1443','2016-12-17 21:30:41.000993'),(51,'course_modes','0004_auto_20151113_1457','2016-12-17 21:30:41.269098'),(52,'course_modes','0005_auto_20151217_0958','2016-12-17 21:30:41.326778'),(53,'course_modes','0006_auto_20160208_1407','2016-12-17 21:30:41.635635'),(54,'course_modes','0007_coursemode_bulk_sku','2016-12-17 21:30:41.674830'),(55,'course_overviews','0001_initial','2016-12-17 21:30:41.755403'),(56,'course_overviews','0002_add_course_catalog_fields','2016-12-17 21:30:41.939908'),(57,'course_overviews','0003_courseoverviewgeneratedhistory','2016-12-17 21:30:44.826858'),(58,'course_overviews','0004_courseoverview_org','2016-12-17 21:30:44.877007'),(59,'course_overviews','0005_delete_courseoverviewgeneratedhistory','2016-12-17 21:30:44.928707'),(60,'course_overviews','0006_courseoverviewimageset','2016-12-17 21:30:45.025353'),(61,'course_overviews','0007_courseoverviewimageconfig','2016-12-17 21:30:45.242695'),(62,'course_overviews','0008_remove_courseoverview_facebook_url','2016-12-17 21:30:45.257312'),(63,'course_overviews','0009_readd_facebook_url','2016-12-17 21:30:45.318911'),(64,'course_overviews','0010_auto_20160329_2317','2016-12-17 21:30:45.411705'),(65,'course_structures','0001_initial','2016-12-17 21:30:45.454214'),(66,'coursetalk','0001_initial','2016-12-17 21:30:45.691992'),(67,'coursetalk','0002_auto_20160325_0631','2016-12-17 21:30:45.884575'),(68,'courseware','0001_initial','2016-12-17 21:30:48.778894'),(69,'coursewarehistoryextended','0001_initial','2016-12-17 21:30:49.423427'),(70,'coursewarehistoryextended','0002_force_studentmodule_index','2016-12-17 21:30:49.784372'),(71,'credentials','0001_initial','2016-12-17 21:30:50.086610'),(72,'credentials','0002_auto_20160325_0631','2016-12-17 21:30:50.395102'),(73,'credit','0001_initial','2016-12-17 21:30:52.914182'),(74,'credit','0002_creditconfig','2016-12-17 21:30:53.351874'),(75,'credit','0003_auto_20160511_2227','2016-12-17 21:30:53.779850'),(76,'dark_lang','0001_initial','2016-12-17 21:30:54.257157'),(77,'dark_lang','0002_data__enable_on_install','2016-12-17 21:30:54.299218'),(78,'django_comment_common','0001_initial','2016-12-17 21:30:55.103249'),(79,'django_comment_common','0002_forumsconfig','2016-12-17 21:30:55.471448'),(80,'django_comment_common','0003_enable_forums','2016-12-17 21:30:55.509253'),(81,'django_comment_common','0004_auto_20161117_1209','2016-12-17 21:30:55.860866'),(82,'django_notify','0001_initial','2016-12-17 21:30:57.515091'),(83,'django_openid_auth','0001_initial','2016-12-17 21:30:57.978552'),(84,'oauth2','0001_initial','2016-12-17 21:31:00.319373'),(85,'edx_oauth2_provider','0001_initial','2016-12-17 21:31:00.949006'),(86,'edx_proctoring','0001_initial','2016-12-17 21:31:12.175564'),(87,'edx_proctoring','0002_proctoredexamstudentattempt_is_status_acknowledged','2016-12-17 21:31:13.157296'),(88,'edx_proctoring','0003_auto_20160101_0525','2016-12-17 21:31:15.129604'),(89,'edx_proctoring','0004_auto_20160201_0523','2016-12-17 21:31:16.130444'),(90,'edx_proctoring','0005_proctoredexam_hide_after_due','2016-12-17 21:31:17.113544'),(91,'edxval','0001_initial','2016-12-17 21:31:20.331618'),(92,'edxval','0002_data__default_profiles','2016-12-17 21:31:20.372665'),(93,'edxval','0003_coursevideo_is_hidden','2016-12-17 21:31:20.442999'),(94,'email_marketing','0001_initial','2016-12-17 21:31:20.805165'),(95,'email_marketing','0002_auto_20160623_1656','2016-12-17 21:31:24.227033'),(96,'email_marketing','0003_auto_20160715_1145','2016-12-17 21:31:26.533226'),(97,'embargo','0001_initial','2016-12-17 21:31:27.957969'),(98,'embargo','0002_data__add_countries','2016-12-17 21:31:28.263745'),(99,'enterprise','0001_initial','2016-12-17 21:31:28.957784'),(100,'enterprise','0002_enterprisecustomerbrandingconfiguration','2016-12-17 21:31:29.033374'),(101,'enterprise','0003_auto_20161104_0937','2016-12-17 21:31:31.101482'),(102,'enterprise','0004_auto_20161114_0434','2016-12-17 21:31:32.979171'),(103,'enterprise','0005_pendingenterprisecustomeruser','2016-12-17 21:31:33.939715'),(104,'enterprise','0006_auto_20161121_0241','2016-12-17 21:31:34.863432'),(105,'enterprise','0007_auto_20161109_1511','2016-12-17 21:31:36.779853'),(106,'enterprise','0008_auto_20161124_2355','2016-12-17 21:31:39.891187'),(107,'enterprise','0009_auto_20161130_1651','2016-12-17 21:31:46.026321'),(108,'external_auth','0001_initial','2016-12-17 21:31:48.247622'),(109,'grades','0001_initial','2016-12-17 21:31:48.439748'),(110,'grades','0002_rename_last_edited_field','2016-12-17 21:31:48.500681'),(111,'grades','0003_coursepersistentgradesflag_persistentgradesenabledflag','2016-12-17 21:31:50.765829'),(112,'grades','0004_visibleblocks_course_id','2016-12-17 21:31:50.872900'),(113,'grades','0005_multiple_course_flags','2016-12-17 21:31:52.007864'),(114,'grades','0006_persistent_course_grades','2016-12-17 21:31:52.096999'),(115,'grades','0007_add_passed_timestamp_column','2016-12-17 21:31:52.184338'),(116,'grades','0008_persistentsubsectiongrade_first_attempted','2016-12-17 21:31:52.239090'),(117,'lms_xblock','0001_initial','2016-12-17 21:31:55.865882'),(118,'microsite_configuration','0001_initial','2016-12-17 21:32:00.352651'),(119,'microsite_configuration','0002_auto_20160202_0228','2016-12-17 21:32:01.685077'),(120,'milestones','0001_initial','2016-12-17 21:32:02.357572'),(121,'milestones','0002_data__seed_relationship_types','2016-12-17 21:32:02.408134'),(122,'milestones','0003_coursecontentmilestone_requirements','2016-12-17 21:32:02.491874'),(123,'milestones','0004_auto_20151221_1445','2016-12-17 21:32:02.820002'),(124,'mobile_api','0001_initial','2016-12-17 21:32:03.575717'),(125,'mobile_api','0002_auto_20160406_0904','2016-12-17 21:32:03.684343'),(126,'notes','0001_initial','2016-12-17 21:32:04.599778'),(127,'oauth2','0002_auto_20160404_0813','2016-12-17 21:32:07.890890'),(128,'oauth2','0003_client_logout_uri','2016-12-17 21:32:08.977788'),(129,'oauth2','0004_add_index_on_grant_expires','2016-12-17 21:32:10.045008'),(130,'oauth2_provider','0001_initial','2016-12-17 21:32:14.596267'),(131,'oauth2_provider','0002_08_updates','2016-12-17 21:32:18.200314'),(132,'oauth_dispatch','0001_initial','2016-12-17 21:32:19.485230'),(133,'oauth_provider','0001_initial','2016-12-17 21:32:22.141621'),(134,'organizations','0001_initial','2016-12-17 21:32:22.298715'),(135,'problem_builder','0001_initial','2016-12-17 21:32:22.399239'),(136,'problem_builder','0002_auto_20160121_1525','2016-12-17 21:32:24.999678'),(137,'problem_builder','0003_auto_20161124_0755','2016-12-17 21:32:25.109541'),(138,'programs','0001_initial','2016-12-17 21:32:26.490436'),(139,'programs','0002_programsapiconfig_cache_ttl','2016-12-17 21:32:27.857435'),(140,'programs','0003_auto_20151120_1613','2016-12-17 21:32:34.236406'),(141,'programs','0004_programsapiconfig_enable_certification','2016-12-17 21:32:34.812108'),(142,'programs','0005_programsapiconfig_max_retries','2016-12-17 21:32:35.393887'),(143,'programs','0006_programsapiconfig_xseries_ad_enabled','2016-12-17 21:32:36.077073'),(144,'programs','0007_programsapiconfig_program_listing_enabled','2016-12-17 21:32:36.864433'),(145,'programs','0008_programsapiconfig_program_details_enabled','2016-12-17 21:32:37.620230'),(146,'programs','0009_programsapiconfig_marketing_path','2016-12-17 21:32:38.515400'),(147,'redirects','0001_initial','2016-12-17 21:32:39.643958'),(148,'rss_proxy','0001_initial','2016-12-17 21:32:39.704874'),(149,'self_paced','0001_initial','2016-12-17 21:32:40.875492'),(150,'sessions','0001_initial','2016-12-17 21:32:40.945170'),(151,'student','0001_initial','2016-12-17 21:33:21.977963'),(152,'shoppingcart','0001_initial','2016-12-17 21:33:50.995529'),(153,'shoppingcart','0002_auto_20151208_1034','2016-12-17 21:33:55.329721'),(154,'shoppingcart','0003_auto_20151217_0958','2016-12-17 21:33:59.912392'),(155,'site_configuration','0001_initial','2016-12-17 21:34:04.677398'),(156,'site_configuration','0002_auto_20160720_0231','2016-12-17 21:34:08.729573'),(157,'default','0001_initial','2016-12-17 21:34:16.891351'),(158,'default','0002_add_related_name','2016-12-17 21:34:17.664617'),(159,'default','0003_alter_email_max_length','2016-12-17 21:34:17.732051'),(160,'default','0004_auto_20160423_0400','2016-12-17 21:34:18.476339'),(161,'social_auth','0005_auto_20160727_2333','2016-12-17 21:34:18.549133'),(162,'splash','0001_initial','2016-12-17 21:34:19.396195'),(163,'static_replace','0001_initial','2016-12-17 21:34:20.198862'),(164,'static_replace','0002_assetexcludedextensionsconfig','2016-12-17 21:34:21.005088'),(165,'status','0001_initial','2016-12-17 21:34:22.770434'),(166,'student','0002_auto_20151208_1034','2016-12-17 21:34:24.545829'),(167,'student','0003_auto_20160516_0938','2016-12-17 21:34:27.160603'),(168,'student','0004_auto_20160531_1422','2016-12-17 21:34:28.693959'),(169,'student','0005_auto_20160531_1653','2016-12-17 21:34:30.308549'),(170,'student','0006_logoutviewconfiguration','2016-12-17 21:34:31.957635'),(171,'student','0007_registrationcookieconfiguration','2016-12-17 21:34:33.555787'),(172,'student','0008_auto_20161117_1209','2016-12-17 21:34:35.170434'),(173,'submissions','0001_initial','2016-12-17 21:34:35.740972'),(174,'submissions','0002_auto_20151119_0913','2016-12-17 21:34:36.022354'),(175,'submissions','0003_submission_status','2016-12-17 21:34:36.139134'),(176,'survey','0001_initial','2016-12-17 21:34:38.285443'),(177,'teams','0001_initial','2016-12-17 21:34:47.967805'),(178,'theming','0001_initial','2016-12-17 21:34:50.933332'),(179,'third_party_auth','0001_initial','2016-12-17 21:35:03.447321'),(180,'third_party_auth','0002_schema__provider_icon_image','2016-12-17 21:35:12.758783'),(181,'third_party_auth','0003_samlproviderconfig_debug_mode','2016-12-17 21:35:14.707968'),(182,'third_party_auth','0004_add_visible_field','2016-12-17 21:35:27.189553'),(183,'third_party_auth','0005_add_site_field','2016-12-17 21:35:37.943161'),(184,'track','0001_initial','2016-12-17 21:35:38.014287'),(185,'user_api','0001_initial','2016-12-17 21:35:53.143605'),(186,'util','0001_initial','2016-12-17 21:35:55.990480'),(187,'util','0002_data__default_rate_limit_config','2016-12-17 21:35:59.057428'),(188,'verified_track_content','0001_initial','2016-12-17 21:35:59.137003'),(189,'verified_track_content','0002_verifiedtrackcohortedcourse_verified_cohort_name','2016-12-17 21:35:59.232551'),(190,'verify_student','0001_initial','2016-12-17 21:36:13.458907'),(191,'verify_student','0002_auto_20151124_1024','2016-12-17 21:36:15.306038'),(192,'verify_student','0003_auto_20151113_1443','2016-12-17 21:36:17.179714'),(193,'wiki','0001_initial','2016-12-17 21:37:44.962002'),(194,'wiki','0002_remove_article_subscription','2016-12-17 21:37:45.100781'),(195,'wiki','0003_ip_address_conv','2016-12-17 21:38:02.005894'),(196,'wiki','0004_increase_slug_size','2016-12-17 21:38:07.575914'),(197,'workflow','0001_initial','2016-12-17 21:38:08.029907'),(198,'xblock_django','0001_initial','2016-12-17 21:38:14.509477'),(199,'xblock_django','0002_auto_20160204_0809','2016-12-17 21:38:19.652694'),(200,'xblock_django','0003_add_new_config_models','2016-12-17 21:38:38.326768'),(201,'xblock_django','0004_delete_xblock_disable_config','2016-12-17 21:38:42.344189'),(202,'social_auth','0001_initial','2016-12-17 21:38:42.365949'),(203,'social_auth','0003_alter_email_max_length','2016-12-17 21:38:42.382541'),(204,'social_auth','0002_add_related_name','2016-12-17 21:38:42.398242'),(205,'social_auth','0004_auto_20160423_0400','2016-12-17 21:38:42.415512'),(206,'contentstore','0001_initial','2016-12-17 21:39:54.291871'),(207,'course_creators','0001_initial','2016-12-17 21:39:54.385436'),(208,'tagging','0001_initial','2016-12-17 21:39:54.472126'),(209,'user_tasks','0001_initial','2016-12-17 21:39:55.400065'),(210,'user_tasks','0002_artifact_file_storage','2016-12-17 21:39:55.659426'),(211,'xblock_config','0001_initial','2016-12-17 21:39:55.979871'),(212,'bulk_email','0006_course_mode_targets','2017-02-24 14:40:01.890405'),(213,'catalog','0002_catalogintegration_username','2017-02-24 14:40:02.571142'),(214,'celery_utils','0001_initial','2017-02-24 14:40:02.622527'),(215,'commerce','0005_commerceconfiguration_enable_automatic_refund_approval','2017-02-24 14:40:02.750240'),(216,'crawlers','0001_initial','2017-02-24 14:40:02.961435'),(217,'database_fixups','0001_initial','2017-02-24 14:40:02.994754'),(218,'email_marketing','0004_emailmarketingconfiguration_welcome_email_send_delay','2017-02-24 14:40:03.303394'),(219,'enterprise','0010_auto_20161222_1212','2017-02-24 14:40:04.224293'),(220,'enterprise','0011_enterprisecustomerentitlement_historicalenterprisecustomerentitlement','2017-02-24 14:40:05.141731'),(221,'enterprise','0012_auto_20170125_1033','2017-02-24 14:40:06.002155'),(222,'enterprise','0013_auto_20170125_1157','2017-02-24 14:40:07.968592'),(223,'enterprise','0014_enrollmentnotificationemailtemplate_historicalenrollmentnotificationemailtemplate','2017-02-24 14:40:09.029173'),(224,'enterprise','0015_auto_20170130_0003','2017-02-24 14:40:10.146783'),(225,'grades','0009_auto_20170111_1507','2017-02-24 14:40:10.221178'),(226,'grades','0010_auto_20170112_1156','2017-02-24 14:40:10.280317'),(227,'grades','0011_null_edited_time','2017-02-24 14:40:10.397467'),(228,'mobile_api','0003_ignore_mobile_available_flag','2017-02-24 14:40:11.589749'),(229,'organizations','0002_auto_20170117_1434','2017-02-24 14:40:11.665179'),(230,'programs','0010_auto_20170204_2332','2017-02-24 14:40:12.996759'),(231,'student','0009_auto_20170111_0422','2017-02-24 14:40:14.323468'),(232,'student','0010_auto_20170207_0458','2017-02-24 14:40:14.344823'),(233,'waffle','0001_initial','2017-02-24 14:40:16.166270'),(234,'tagging','0002_auto_20170116_1541','2017-02-24 14:40:31.691923'),(235,'block_structure','0001_config','2017-06-07 00:41:56.912211'),(236,'block_structure','0002_blockstructuremodel','2017-06-07 00:41:56.929927'),(237,'block_structure','0003_blockstructuremodel_storage','2017-06-07 00:41:56.948713'),(238,'block_structure','0004_blockstructuremodel_usagekeywithrun','2017-06-07 00:41:56.968053'),(239,'catalog','0003_catalogintegration_page_size','2017-06-07 00:41:57.101898'),(240,'commerce','0006_auto_20170424_1734','2017-06-07 00:41:57.231830'),(241,'course_groups','0002_change_inline_default_cohort_value','2017-06-07 00:41:57.254874'),(242,'course_overviews','0011_courseoverview_marketing_url','2017-06-07 00:41:57.288204'),(243,'course_overviews','0012_courseoverview_eligible_for_financial_aid','2017-06-07 00:41:57.318770'),(244,'crawlers','0002_auto_20170419_0018','2017-06-07 00:41:57.493782'),(245,'credentials','0003_auto_20170525_1109','2017-06-07 00:41:57.863755'),(246,'edxval','0004_data__add_hls_profile','2017-06-07 00:41:57.890060'),(247,'enterprise','0016_auto_20170405_0647','2017-06-07 00:42:05.513585'),(248,'enterprise','0017_auto_20170508_1341','2017-06-07 00:42:07.319586'),(249,'enterprise','0018_auto_20170511_1357','2017-06-07 00:42:08.329530'),(250,'grades','0012_computegradessetting','2017-06-07 00:42:08.883023'),(251,'instructor_task','0002_gradereportsetting','2017-06-07 00:42:09.455874'),(252,'integrated_channel','0001_initial','2017-06-07 00:42:10.318729'),(253,'organizations','0003_auto_20170221_1138','2017-06-07 00:42:10.407016'),(254,'organizations','0004_auto_20170413_2315','2017-06-07 00:42:10.506581'),(255,'programs','0011_auto_20170301_1844','2017-06-07 00:42:18.469507'),(256,'programs','0012_auto_20170419_0018','2017-06-07 00:42:18.992727'),(257,'sap_success_factors','0001_initial','2017-06-07 00:42:20.778073'),(258,'sap_success_factors','0002_auto_20170224_1545','2017-06-07 00:42:25.335576'),(259,'sap_success_factors','0003_auto_20170317_1402','2017-06-07 00:42:26.678295'),(260,'sap_success_factors','0004_catalogtransmissionaudit_audit_summary','2017-06-07 00:42:26.718445'),(261,'third_party_auth','0006_samlproviderconfig_automatic_refresh_enabled','2017-06-07 00:42:27.693909'),(262,'third_party_auth','0007_auto_20170406_0912','2017-06-07 00:42:29.728166'),(263,'third_party_auth','0008_auto_20170413_1455','2017-06-07 00:42:33.476214'),(264,'third_party_auth','0009_auto_20170415_1144','2017-06-07 00:42:36.306225'),(265,'third_party_auth','0010_add_skip_hinted_login_dialog_field','2017-06-07 00:42:39.510027'),(266,'video_config','0001_initial','2017-06-07 00:42:42.571496'),(267,'waffle_utils','0001_initial','2017-06-07 00:42:43.551806'),(268,'xblock_config','0002_courseeditltifieldsenabledflag','2017-06-07 00:43:00.141393'),(269,'assessment','0003_expand_course_id','2017-06-21 15:59:23.423610'),(270,'course_overviews','0013_courseoverview_language','2017-06-21 15:59:23.452240'),(271,'django_comment_common','0005_coursediscussionsettings','2017-06-21 15:59:23.476561'),(272,'enterprise','0019_auto_20170606_1853','2017-06-21 15:59:24.532560'),(273,'experiments','0001_initial','2017-06-21 15:59:25.605011'),(274,'third_party_auth','0011_auto_20170616_0112','2017-06-21 15:59:26.432624'),(275,'catalog','0004_auto_20170616_0618','2017-06-21 16:23:07.908612'),(276,'djcelery','0001_initial','2017-06-21 16:23:08.134126'),(277,'celery_utils','0002_chordable_django_backend','2017-06-21 16:23:08.453314'),(278,'course_groups','0003_auto_20170609_1455','2017-06-21 16:23:08.807912'),(279,'social_django','0006_partial','2017-06-21 16:23:08.867575'),(280,'social_django','0002_add_related_name','2017-06-21 16:23:08.873879'),(281,'social_django','0003_alter_email_max_length','2017-06-21 16:23:08.878224'),(282,'social_django','0001_initial','2017-06-21 16:23:08.880232'),(283,'social_django','0004_auto_20160423_0400','2017-06-21 16:23:08.884264'),(284,'social_django','0005_auto_20160727_2333','2017-06-21 16:23:08.887324'),(285,'api_admin','0007_delete_historical_api_records','2018-01-31 21:10:03.128089'),(286,'catalog','0005_catalogintegration_long_term_cache_ttl','2018-01-31 21:10:03.248668'),(287,'certificates','0009_certificategenerationcoursesetting_language_self_generation','2018-01-31 21:10:03.315319'),(288,'certificates','0010_certificatetemplate_language','2018-01-31 21:10:03.334495'),(289,'certificates','0011_certificatetemplate_alter_unique','2018-01-31 21:10:03.365571'),(290,'certificates','0012_certificategenerationcoursesetting_include_hours_of_effort','2018-01-31 21:10:03.385655'),(291,'certificates','0013_remove_certificategenerationcoursesetting_enabled','2018-01-31 21:10:03.403290'),(292,'completion','0001_initial','2018-01-31 21:10:03.792509'),(293,'enterprise','0020_auto_20170624_2316','2018-01-31 21:10:04.676616'),(294,'enterprise','0021_auto_20170711_0712','2018-01-31 21:10:05.614724'),(295,'enterprise','0022_auto_20170720_1543','2018-01-31 21:10:06.014817'),(296,'enterprise','0023_audit_data_reporting_flag','2018-01-31 21:10:06.375282'),(297,'enterprise','0024_enterprisecustomercatalog_historicalenterprisecustomercatalog','2018-01-31 21:10:06.790389'),(298,'consent','0001_initial','2018-01-31 21:10:07.437901'),(299,'consent','0002_migrate_to_new_data_sharing_consent','2018-01-31 21:10:07.460286'),(300,'consent','0003_historicaldatasharingconsent_history_change_reason','2018-01-31 21:10:07.678659'),(301,'course_goals','0001_initial','2018-01-31 21:10:08.147799'),(302,'course_goals','0002_auto_20171010_1129','2018-01-31 21:10:08.377430'),(303,'course_modes','0008_course_key_field_to_foreign_key','2018-01-31 21:10:11.306006'),(304,'course_modes','0009_suggested_prices_to_charfield','2018-01-31 21:10:11.496625'),(305,'course_modes','0010_archived_suggested_prices_to_charfield','2018-01-31 21:10:11.525478'),(306,'course_overviews','0014_courseoverview_certificate_available_date','2018-01-31 21:10:11.711803'),(307,'courseware','0002_coursedynamicupgradedeadlineconfiguration_dynamicupgradedeadlineconfiguration','2018-01-31 21:10:12.152262'),(308,'courseware','0003_auto_20170825_0935','2018-01-31 21:10:12.369095'),(309,'courseware','0004_auto_20171010_1639','2018-01-31 21:10:12.597726'),(310,'courseware','0005_orgdynamicupgradedeadlineconfiguration','2018-01-31 21:10:13.056211'),(311,'credit','0004_delete_historical_credit_records','2018-01-31 21:10:14.191316'),(312,'enterprise','0025_auto_20170828_1412','2018-01-31 21:10:15.758040'),(313,'enterprise','0026_make_require_account_level_consent_nullable','2018-01-31 21:10:16.283399'),(314,'enterprise','0027_remove_account_level_consent','2018-01-31 21:10:18.227818'),(315,'enterprise','0028_link_enterprise_to_enrollment_template','2018-01-31 21:10:19.126517'),(316,'enterprise','0029_auto_20170925_1909','2018-01-31 21:10:19.431542'),(317,'enterprise','0030_auto_20171005_1600','2018-01-31 21:10:20.057515'),(318,'enterprise','0031_auto_20171012_1249','2018-01-31 21:10:20.776185'),(319,'enterprise','0032_reporting_model','2018-01-31 21:10:21.179645'),(320,'enterprise','0033_add_history_change_reason_field','2018-01-31 21:10:23.278172'),(321,'enterprise','0034_auto_20171023_0727','2018-01-31 21:10:26.024342'),(322,'degreed','0001_initial','2018-01-31 21:10:26.852001'),(323,'degreed','0002_auto_20180104_0103','2018-01-31 21:10:27.730266'),(324,'degreed','0003_auto_20180109_0712','2018-01-31 21:10:28.315615'),(325,'edxval','0005_videoimage','2018-01-31 21:10:28.366969'),(326,'edxval','0006_auto_20171009_0725','2018-01-31 21:10:28.467558'),(327,'edxval','0007_transcript_credentials_state','2018-01-31 21:10:28.535598'),(328,'edxval','0008_remove_subtitles','2018-01-31 21:10:28.622223'),(329,'edxval','0009_auto_20171127_0406','2018-01-31 21:10:28.660619'),(330,'edxval','0010_add_video_as_foreign_key','2018-01-31 21:10:28.840134'),(331,'email_marketing','0005_emailmarketingconfiguration_user_registration_cookie_timeout_delay','2018-01-31 21:10:29.257752'),(332,'email_marketing','0006_auto_20170711_0615','2018-01-31 21:10:29.665435'),(333,'email_marketing','0007_auto_20170809_0653','2018-01-31 21:10:30.918762'),(334,'email_marketing','0008_auto_20170809_0539','2018-01-31 21:10:30.947437'),(335,'email_marketing','0009_remove_emailmarketingconfiguration_sailthru_activation_template','2018-01-31 21:10:31.364429'),(336,'enterprise','0035_auto_20171212_1129','2018-01-31 21:10:32.255864'),(337,'enterprise','0036_sftp_reporting_support','2018-01-31 21:10:36.592483'),(338,'enterprise','0037_auto_20180110_0450','2018-01-31 21:10:38.014017'),(339,'enterprise','0038_auto_20180122_1427','2018-01-31 21:10:39.465581'),(340,'enterprise','0039_auto_20180129_1034','2018-01-31 21:10:40.953939'),(341,'enterprise','0040_auto_20180129_1428','2018-01-31 21:10:44.505362'),(342,'student','0011_course_key_field_to_foreign_key','2018-01-31 21:10:49.625892'),(343,'student','0012_sociallink','2018-01-31 21:10:50.435935'),(344,'student','0013_delete_historical_enrollment_records','2018-01-31 21:10:53.127661'),(345,'entitlements','0001_initial','2018-01-31 21:10:53.946844'),(346,'entitlements','0002_auto_20171102_0719','2018-01-31 21:10:57.585008'),(347,'entitlements','0003_auto_20171205_1431','2018-01-31 21:11:01.376311'),(348,'entitlements','0004_auto_20171206_1729','2018-01-31 21:11:02.310602'),(349,'experiments','0002_auto_20170627_1402','2018-01-31 21:11:02.384091'),(350,'experiments','0003_auto_20170713_1148','2018-01-31 21:11:02.424697'),(351,'grades','0013_persistentsubsectiongradeoverride','2018-01-31 21:11:02.485561'),(352,'sap_success_factors','0005_historicalsapsuccessfactorsenterprisecustomerconfiguration_history_change_reason','2018-01-31 21:11:03.522185'),(353,'sap_success_factors','0006_sapsuccessfactors_use_enterprise_enrollment_page_waffle_flag','2018-01-31 21:11:03.558255'),(354,'sap_success_factors','0007_remove_historicalsapsuccessfactorsenterprisecustomerconfiguration_history_change_reason','2018-01-31 21:11:04.603921'),(355,'sap_success_factors','0008_historicalsapsuccessfactorsenterprisecustomerconfiguration_history_change_reason','2018-01-31 21:11:05.655596'),(356,'sap_success_factors','0009_sapsuccessfactors_remove_enterprise_enrollment_page_waffle_flag','2018-01-31 21:11:05.695587'),(357,'sap_success_factors','0010_move_audit_tables_to_base_integrated_channel','2018-01-31 21:11:07.849753'),(358,'integrated_channel','0002_delete_enterpriseintegratedchannel','2018-01-31 21:11:07.886658'),(359,'integrated_channel','0003_catalogtransmissionaudit_learnerdatatransmissionaudit','2018-01-31 21:11:07.964634'),(360,'integrated_channel','0004_catalogtransmissionaudit_channel','2018-01-31 21:11:08.005422'),(361,'microsite_configuration','0003_delete_historical_records','2018-01-31 21:11:10.646464'),(362,'oauth2','0005_grant_nonce','2018-01-31 21:11:11.410102'),(363,'oauth2_provider','0003_auto_20160316_1503','2018-01-31 21:11:12.296267'),(364,'oauth2_provider','0004_auto_20160525_1623','2018-01-31 21:11:15.249014'),(365,'organizations','0005_auto_20171116_0640','2018-01-31 21:11:15.307936'),(366,'organizations','0006_auto_20171207_0259','2018-01-31 21:11:15.368677'),(367,'problem_builder','0004_copy_course_ids','2018-01-31 21:11:15.409827'),(368,'problem_builder','0005_auto_20170112_1021','2018-01-31 21:11:15.510212'),(369,'problem_builder','0006_remove_deprecated_course_id','2018-01-31 21:11:15.601222'),(370,'sap_success_factors','0011_auto_20180104_0103','2018-01-31 21:11:33.159895'),(371,'sap_success_factors','0012_auto_20180109_0712','2018-01-31 21:11:35.201615'),(372,'schedules','0001_initial','2018-01-31 21:11:36.244987'),(373,'schedules','0002_auto_20170816_1532','2018-01-31 21:11:38.522084'),(374,'schedules','0003_scheduleconfig','2018-01-31 21:11:39.652134'),(375,'schedules','0004_auto_20170922_1428','2018-01-31 21:11:41.947970'),(376,'schedules','0005_auto_20171010_1722','2018-01-31 21:11:44.336964'),(377,'schedules','0006_scheduleexperience','2018-01-31 21:11:45.552565'),(378,'schedules','0007_scheduleconfig_hold_back_ratio','2018-01-31 21:11:46.810856'),(379,'submissions','0004_remove_django_extensions','2018-01-31 21:11:46.894885'),(380,'third_party_auth','0012_auto_20170626_1135','2018-01-31 21:11:51.802632'),(381,'third_party_auth','0013_sync_learner_profile_data','2018-01-31 21:11:58.575122'),(382,'third_party_auth','0014_auto_20171222_1233','2018-01-31 21:12:00.932478'),(383,'third_party_auth','0015_samlproviderconfig_archived','2018-01-31 21:12:01.853157'),(384,'third_party_auth','0016_auto_20180130_0938','2018-01-31 21:12:04.146730'),(385,'verified_track_content','0003_migrateverifiedtrackcohortssetting','2018-01-31 21:12:05.361708'),(386,'verify_student','0004_delete_historical_records','2018-01-31 21:12:06.720185'),(387,'video_config','0002_coursevideotranscriptenabledflag_videotranscriptenabledflag','2018-01-31 21:12:09.325800'),(388,'video_pipeline','0001_initial','2018-01-31 21:12:10.672470'),(389,'video_pipeline','0002_auto_20171114_0704','2018-01-31 21:12:13.710510'),(390,'video_pipeline','0003_coursevideouploadsenabledbydefault_videouploadsenabledbydefault','2018-01-31 21:12:16.908108'),(391,'waffle','0002_auto_20161201_0958','2018-01-31 21:12:16.972566'),(392,'wiki','0005_remove_attachments_and_images','2018-01-31 21:12:26.552062'),(393,'workflow','0002_remove_django_extensions','2018-01-31 21:12:26.626360'),(394,'contentstore','0002_add_assets_page_flag','2018-01-31 21:12:52.166018'); +INSERT INTO `django_migrations` VALUES (1,'contenttypes','0001_initial','2023-02-21 14:12:20.526440'),(2,'auth','0001_initial','2023-02-21 14:12:20.551281'),(3,'admin','0001_initial','2023-02-21 14:12:20.566918'),(4,'admin','0002_logentry_remove_auto_add','2023-02-21 14:12:20.579303'),(5,'admin','0003_logentry_add_action_flag_choices','2023-02-21 14:12:20.592109'),(6,'agreements','0001_initial','2023-02-21 14:12:20.604786'),(7,'announcements','0001_initial','2023-02-21 14:12:20.610168'),(8,'sites','0001_initial','2023-02-21 14:12:20.615628'),(9,'contenttypes','0002_remove_content_type_name','2023-02-21 14:12:20.634941'),(10,'api_admin','0001_initial','2023-02-21 14:12:20.661104'),(11,'api_admin','0002_auto_20160325_1604','2023-02-21 14:12:20.667408'),(12,'api_admin','0003_auto_20160404_1618','2023-02-21 14:12:20.740878'),(13,'api_admin','0004_auto_20160412_1506','2023-02-21 14:12:20.795883'),(14,'api_admin','0005_auto_20160414_1232','2023-02-21 14:12:20.813593'),(15,'api_admin','0006_catalog','2023-02-21 14:12:20.820749'),(16,'api_admin','0007_delete_historical_api_records','2023-02-21 14:12:20.875116'),(17,'assessment','0001_initial','2023-02-21 14:12:21.019544'),(18,'assessment','0002_staffworkflow','2023-02-21 14:12:21.026771'),(19,'assessment','0003_expand_course_id','2023-02-21 14:12:21.042556'),(20,'assessment','0004_historicalsharedfileupload_sharedfileupload','2023-02-21 14:12:21.062201'),(21,'assessment','0005_add_filename_to_sharedupload','2023-02-21 14:12:21.080289'),(22,'assessment','0006_TeamWorkflows','2023-02-21 14:12:21.089331'),(23,'assessment','0007_staff_workflow_blank','2023-02-21 14:12:21.116431'),(24,'auth','0002_alter_permission_name_max_length','2023-02-21 14:12:21.132513'),(25,'auth','0003_alter_user_email_max_length','2023-02-21 14:12:21.147772'),(26,'auth','0004_alter_user_username_opts','2023-02-21 14:12:21.164028'),(27,'auth','0005_alter_user_last_login_null','2023-02-21 14:12:21.180622'),(28,'auth','0006_require_contenttypes_0002','2023-02-21 14:12:21.184309'),(29,'auth','0007_alter_validators_add_error_messages','2023-02-21 14:12:21.201146'),(30,'auth','0008_alter_user_username_max_length','2023-02-21 14:12:21.218121'),(31,'auth','0009_alter_user_last_name_max_length','2023-02-21 14:12:21.233425'),(32,'auth','0010_alter_group_name_max_length','2023-02-21 14:12:21.252496'),(33,'auth','0011_update_proxy_permissions','2023-02-21 14:12:21.257696'),(34,'auth','0012_alter_user_first_name_max_length','2023-02-21 14:12:21.272746'),(35,'instructor_task','0001_initial','2023-02-21 14:12:21.290501'),(36,'certificates','0001_initial','2023-02-21 14:12:21.448914'),(37,'certificates','0002_data__certificatehtmlviewconfiguration_data','2023-02-21 14:12:21.455450'),(38,'certificates','0003_data__default_modes','2023-02-21 14:12:21.460855'),(39,'certificates','0004_certificategenerationhistory','2023-02-21 14:12:21.484612'),(40,'certificates','0005_auto_20151208_0801','2023-02-21 14:12:21.507361'),(41,'certificates','0006_certificatetemplateasset_asset_slug','2023-02-21 14:12:21.513682'),(42,'certificates','0007_certificateinvalidation','2023-02-21 14:12:21.540550'),(43,'badges','0001_initial','2023-02-21 14:12:21.588515'),(44,'badges','0002_data__migrate_assertions','2023-02-21 14:12:21.595088'),(45,'badges','0003_schema__add_event_configuration','2023-02-21 14:12:21.626245'),(46,'badges','0004_badgeclass_badgr_server_slug','2023-02-21 14:12:21.635536'),(47,'waffle','0001_initial','2023-02-21 14:12:21.672416'),(48,'sites','0002_alter_domain_unique','2023-02-21 14:12:21.681277'),(49,'enterprise','0001_squashed_0092_auto_20200312_1650','2023-02-21 14:12:23.191206'),(50,'enterprise','0093_add_use_enterprise_catalog_flag','2023-02-21 14:12:23.201722'),(51,'enterprise','0094_add_use_enterprise_catalog_sample','2023-02-21 14:12:23.212307'),(52,'integrated_channel','0001_squashed_0007_auto_20190925_0730','2023-02-21 14:12:23.309602'),(53,'integrated_channel','0002_learnerdatatransmissionaudit_subsection_id','2023-02-21 14:12:23.319002'),(54,'integrated_channel','0003_contentmetadataitemtransmission_content_last_changed','2023-02-21 14:12:23.350743'),(55,'integrated_channel','0004_contentmetadataitemtransmission_enterprise_customer_catalog_uuid','2023-02-21 14:12:23.387175'),(56,'integrated_channel','0005_auto_20211005_1052','2023-02-21 14:12:23.422373'),(57,'integrated_channel','0006_contentmetadataitemtransmission_deleted_at','2023-02-21 14:12:23.458918'),(58,'integrated_channel','0007_delete_learnerdatatransmissionaudit','2023-02-21 14:12:23.465264'),(59,'integrated_channel','0008_genericlearnerdatatransmissionaudit','2023-02-21 14:12:23.474143'),(60,'integrated_channel','0009_auto_20220325_1757','2023-02-21 14:12:23.487642'),(61,'enterprise','0095_auto_20200507_1138','2023-02-21 14:12:23.594737'),(62,'enterprise','0096_enterprise_catalog_admin_role','2023-02-21 14:12:23.600818'),(63,'enterprise','0097_auto_20200619_1130','2023-02-21 14:12:23.756480'),(64,'enterprise','0098_auto_20200629_1756','2023-02-21 14:12:23.845884'),(65,'enterprise','0099_auto_20200702_1537','2023-02-21 14:12:23.937245'),(66,'enterprise','0100_add_licensed_enterprise_course_enrollment','2023-02-21 14:12:24.095644'),(67,'enterprise','0101_move_data_to_saved_for_later','2023-02-21 14:12:24.104185'),(68,'enterprise','0102_auto_20200708_1615','2023-02-21 14:12:24.512983'),(69,'enterprise','0103_remove_marked_done','2023-02-21 14:12:24.609723'),(70,'enterprise','0104_sync_query_field','2023-02-21 14:12:24.721181'),(71,'enterprise','0105_add_branding_config_color_fields','2023-02-21 14:12:24.818629'),(72,'enterprise','0106_move_branding_config_colors','2023-02-21 14:12:24.825406'),(73,'enterprise','0107_remove_branding_config_banner_fields','2023-02-21 14:12:24.891154'),(74,'enterprise','0108_add_licensed_enrollment_is_revoked','2023-02-21 14:12:24.953307'),(75,'enterprise','0109_remove_use_enterprise_catalog_sample','2023-02-21 14:12:24.960851'),(76,'enterprise','0110_add_default_contract_discount','2023-02-21 14:12:25.070568'),(77,'enterprise','0111_pendingenterprisecustomeradminuser','2023-02-21 14:12:25.224868'),(78,'enterprise','0112_auto_20200914_0926','2023-02-21 14:12:25.337310'),(79,'enterprise','0113_auto_20200914_2054','2023-02-21 14:12:25.433026'),(80,'enterprise','0114_auto_20201020_0142','2023-02-21 14:12:25.596458'),(81,'enterprise','0115_enterpriseanalyticsuser_historicalenterpriseanalyticsuser','2023-02-21 14:12:25.755026'),(82,'enterprise','0116_auto_20201116_0400','2023-02-21 14:12:25.792398'),(83,'enterprise','0116_auto_20201208_1759','2023-02-21 14:12:25.909927'),(84,'enterprise','0117_auto_20201215_0258','2023-02-21 14:12:25.994945'),(85,'enterprise','unique_constraints_pending_users','2023-02-21 14:12:26.343828'),(86,'enterprise','0001_auto_20210111_1253','2023-02-21 14:12:26.455072'),(87,'enterprise','0120_systemwiderole_applies_to_all_contexts','2023-02-21 14:12:26.823676'),(88,'enterprise','0121_systemwiderole_add_ent_cust_field','2023-02-21 14:12:26.910665'),(89,'enterprise','0122_remove_field_sync_enterprise_catalog_query','2023-02-21 14:12:27.019661'),(90,'enterprise','0123_enterprisecustomeridentityprovider_default_provider','2023-02-21 14:12:27.057347'),(91,'enterprise','0124_auto_20210301_1309','2023-02-21 14:12:27.173299'),(92,'enterprise','0125_add_config_for_role_assign_backfill','2023-02-21 14:12:27.258218'),(93,'enterprise','0126_auto_20210308_1522','2023-02-21 14:12:27.355022'),(94,'enterprise','0127_enterprisecatalogquery_uuid','2023-02-21 14:12:27.368168'),(95,'enterprise','0128_enterprisecatalogquery_generate_uuids','2023-02-21 14:12:27.375098'),(96,'enterprise','0129_enterprisecatalogquery_uuid_unique','2023-02-21 14:12:27.385565'),(97,'enterprise','0130_lms_customer_lp_search_help_text','2023-02-21 14:12:27.502832'),(98,'enterprise','0131_auto_20210517_0924','2023-02-21 14:12:27.618384'),(99,'enterprise','0132_auto_20210608_1921','2023-02-21 14:12:27.812069'),(100,'enterprise','0133_auto_20210608_1931','2023-02-21 14:12:27.818973'),(101,'enterprise','0134_enterprisecustomerreportingconfiguration_enable_compression','2023-02-21 14:12:27.862792'),(102,'enterprise','0135_adminnotification_adminnotificationfilter_adminnotificationread','2023-02-21 14:12:27.971885'),(103,'enterprise','0136_auto_20210629_2129','2023-02-21 14:12:28.242965'),(104,'enterprise','0137_enrollment_email_update','2023-02-21 14:12:28.250086'),(105,'enterprise','0138_bulkcatalogqueryupdatecommandconfiguration','2023-02-21 14:12:28.338576'),(106,'enterprise','0139_auto_20210803_1854','2023-02-21 14:12:28.368520'),(107,'enterprise','0140_update_enrollment_sources','2023-02-21 14:12:28.374965'),(108,'enterprise','0141_make_enterprisecatalogquery_title_unique','2023-02-21 14:12:28.389857'),(109,'enterprise','0142_auto_20210907_2059','2023-02-21 14:12:28.430143'),(110,'enterprise','0143_auto_20210908_0559','2023-02-21 14:12:28.763095'),(111,'enterprise','0144_auto_20211011_1030','2023-02-21 14:12:28.775625'),(112,'enterprise','0145_auto_20211013_1018','2023-02-21 14:12:29.169713'),(113,'enterprise','0146_enterprise_customer_invite_key','2023-02-21 14:12:29.528389'),(114,'enterprise','0147_auto_20211129_1949','2023-02-21 14:12:29.656888'),(115,'enterprise','0148_auto_20211129_2114','2023-02-21 14:12:29.784187'),(116,'enterprise','0149_invite_key_required_default_expiry_backfill','2023-02-21 14:12:29.792808'),(117,'enterprise','0150_invite_key_expiry_required','2023-02-21 14:12:29.911234'),(118,'enterprise','0151_add_is_active_to_invite_key','2023-02-21 14:12:30.031719'),(119,'enterprise','0152_add_should_inactivate_other_customers','2023-02-21 14:12:30.157413'),(120,'enterprise','0153_add_enable_browse_and_request','2023-02-21 14:12:30.294180'),(121,'integrated_channel','0010_genericenterprisecustomerpluginconfiguration','2023-02-21 14:12:30.392006'),(122,'integrated_channel','0011_contentmetadataitemtransmission_plugin_configuration_id','2023-02-21 14:12:30.435059'),(123,'integrated_channel','0012_alter_contentmetadataitemtransmission_unique_together','2023-02-21 14:12:30.479409'),(124,'integrated_channel','0013_auto_20220405_2311','2023-02-21 14:12:30.496102'),(125,'integrated_channel','0014_genericenterprisecustomerpluginconfiguration_dry_run_mode_enabled','2023-02-21 14:12:30.540312'),(126,'integrated_channel','0015_auto_20220718_2113','2023-02-21 14:12:30.781598'),(127,'integrated_channel','0016_contentmetadataitemtransmission_content_title','2023-02-21 14:12:30.824344'),(128,'integrated_channel','0017_contentmetadataitemtransmission_friendly_status_message','2023-02-21 14:12:30.868334'),(129,'integrated_channel','0018_genericlearnerdatatransmissionaudit_friendly_status_message','2023-02-21 14:12:30.877597'),(130,'integrated_channel','0016_contentmetadataitemtransmission_marked_for','2023-02-21 14:12:30.919460'),(131,'integrated_channel','0019_merge_20220928_1842','2023-02-21 14:12:30.923049'),(132,'integrated_channel','0020_auto_20220929_1712','2023-02-21 14:12:31.386018'),(133,'integrated_channel','0021_remove_contentmetadataitemtransmission_api_response_body','2023-02-21 14:12:31.438305'),(134,'blackboard','0001_initial','2023-02-21 14:12:32.662779'),(135,'blackboard','0002_auto_20200930_1723','2023-02-21 14:12:32.666854'),(136,'blackboard','0003_blackboardlearnerdatatransmissionaudit','2023-02-21 14:12:32.669335'),(137,'blackboard','0004_blackboard_tx_chunk_size_default_1','2023-02-21 14:12:32.671543'),(138,'blackboard','0005_blackboardlearnerassessmentdatatransmissionaudit','2023-02-21 14:12:32.673214'),(139,'blackboard','0006_auto_20210708_1446','2023-02-21 14:12:32.674805'),(140,'blackboard','0007_auto_20210909_1536','2023-02-21 14:12:32.676864'),(141,'blackboard','0008_auto_20210923_1727','2023-02-21 14:12:32.678306'),(142,'blackboard','0009_alter_blackboardenterprisecustomerconfiguration_enterprise_customer','2023-02-21 14:12:32.680898'),(143,'blackboard','0010_auto_20211221_1532','2023-02-21 14:12:32.682313'),(144,'blackboard','0011_auto_20220126_1837','2023-02-21 14:12:32.683915'),(145,'blackboard','0012_auto_20220131_1539','2023-02-21 14:12:32.685395'),(146,'blackboard','0013_blacboardglobalconfiguration','2023-02-21 14:12:32.687494'),(147,'blackboard','0014_alter_blackboardlearnerassessmentdatatransmissionaudit_enterprise_course_enrollment_id','2023-02-21 14:12:32.689072'),(148,'blackboard','0002_auto_20220302_2231','2023-02-21 14:12:32.820177'),(149,'blackboard','0003_alter_blackboardlearnerdatatransmissionaudit_completed_timestamp','2023-02-21 14:12:32.830477'),(150,'blackboard','0004_auto_20220324_1550','2023-02-21 14:12:32.896909'),(151,'blackboard','0005_auto_20220325_1757','2023-02-21 14:12:32.912636'),(152,'blackboard','0006_auto_20220405_2311','2023-02-21 14:12:33.029387'),(153,'blackboard','0007_auto_20220523_1625','2023-02-21 14:12:33.448836'),(154,'blackboard','0008_auto_20220913_2018','2023-02-21 14:12:33.464045'),(155,'blackboard','0009_auto_20220929_1720','2023-02-21 14:12:33.658961'),(156,'blackboard','0010_auto_20221021_0159','2023-02-21 14:12:33.734415'),(157,'blackboard','0011_auto_20221031_1855','2023-02-21 14:12:33.883425'),(158,'blackboard','0012_move_and_recrete_completed_timestamp','2023-02-21 14:12:33.909423'),(159,'blackboard','0013_alter_blackboardlearnerdatatransmissionaudit_index_together','2023-02-21 14:12:33.927393'),(160,'blackboard','0014_auto_20230105_2122','2023-02-21 14:12:34.700672'),(161,'blackboard','0015_auto_20230112_2002','2023-02-21 14:12:34.831478'),(162,'block_structure','0001_config','2023-02-21 14:12:34.943552'),(163,'block_structure','0002_blockstructuremodel','2023-02-21 14:12:34.984367'),(164,'block_structure','0003_blockstructuremodel_storage','2023-02-21 14:12:35.028160'),(165,'block_structure','0004_blockstructuremodel_usagekeywithrun','2023-02-21 14:12:35.039061'),(166,'block_structure','0005_trim_leading_slashes_in_data_path','2023-02-21 14:12:35.044824'),(167,'bookmarks','0001_initial','2023-02-21 14:12:35.606130'),(168,'branding','0001_initial','2023-02-21 14:12:35.817270'),(169,'course_modes','0001_initial','2023-02-21 14:12:35.836396'),(170,'course_modes','0002_coursemode_expiration_datetime_is_explicit','2023-02-21 14:12:35.845964'),(171,'course_modes','0003_auto_20151113_1443','2023-02-21 14:12:35.856410'),(172,'course_modes','0004_auto_20151113_1457','2023-02-21 14:12:35.960431'),(173,'course_modes','0005_auto_20151217_0958','2023-02-21 14:12:35.973441'),(174,'course_modes','0006_auto_20160208_1407','2023-02-21 14:12:36.039302'),(175,'course_modes','0007_coursemode_bulk_sku','2023-02-21 14:12:36.049509'),(176,'course_groups','0001_initial','2023-02-21 14:12:36.719166'),(177,'bulk_email','0001_initial','2023-02-21 14:12:37.014348'),(178,'bulk_email','0002_data__load_course_email_template','2023-02-21 14:12:37.023922'),(179,'bulk_email','0003_config_model_feature_flag','2023-02-21 14:12:37.426934'),(180,'bulk_email','0004_add_email_targets','2023-02-21 14:12:37.735652'),(181,'bulk_email','0005_move_target_data','2023-02-21 14:12:37.743170'),(182,'bulk_email','0006_course_mode_targets','2023-02-21 14:12:37.990203'),(183,'bulk_email','0007_disabledcourse','2023-02-21 14:12:37.998635'),(184,'courseware','0001_initial','2023-02-21 14:12:39.356212'),(185,'bulk_grades','0001_initial','2023-02-21 14:12:39.484821'),(186,'bulk_grades','0002_auto_20190703_1526','2023-02-21 14:12:39.606462'),(187,'bundles','0001_initial','2023-02-21 14:12:39.654277'),(188,'bundles','0002_create_drafts','2023-02-21 14:12:39.675804'),(189,'bundles','0003_update_character_set','2023-02-21 14:12:39.737293'),(190,'calendar_sync','0001_initial','2023-02-21 14:12:40.053965'),(191,'calendar_sync','0002_auto_20200709_1743','2023-02-21 14:12:40.200617'),(192,'canvas','0001_initial','2023-02-21 14:12:40.570061'),(193,'canvas','0002_auto_20200806_1632','2023-02-21 14:12:40.734185'),(194,'canvas','0003_delete_canvasglobalconfiguration','2023-02-21 14:12:40.741389'),(195,'canvas','0004_adding_learner_data_to_canvas','2023-02-21 14:12:40.749995'),(196,'canvas','0005_auto_20200909_1534','2023-02-21 14:12:40.769900'),(197,'canvas','0006_canvaslearnerassessmentdatatransmissionaudit','2023-02-21 14:12:40.779787'),(198,'canvas','0007_auto_20210222_2225','2023-02-21 14:12:41.183291'),(199,'canvas','0008_auto_20210707_0815','2023-02-21 14:12:41.341526'),(200,'canvas','0009_auto_20210708_1639','2023-02-21 14:12:41.499678'),(201,'canvas','0010_auto_20210909_1536','2023-02-21 14:12:41.652927'),(202,'canvas','0011_auto_20210923_1727','2023-02-21 14:12:41.817741'),(203,'canvas','0012_alter_canvasenterprisecustomerconfiguration_enterprise_customer','2023-02-21 14:12:41.943205'),(204,'canvas','0013_auto_20211221_1535','2023-02-21 14:12:42.148025'),(205,'canvas','0014_auto_20220126_1837','2023-02-21 14:12:43.342754'),(206,'canvas','0015_auto_20220127_1605','2023-02-21 14:12:43.497437'),(207,'canvas','0016_auto_20220131_1539','2023-02-21 14:12:43.649917'),(208,'canvas','0017_auto_20220302_2231','2023-02-21 14:12:43.803017'),(209,'canvas','0018_alter_canvaslearnerdatatransmissionaudit_completed_timestamp','2023-02-21 14:12:43.816415'),(210,'canvas','0019_auto_20220324_1550','2023-02-21 14:12:43.911312'),(211,'canvas','0020_auto_20220325_1757','2023-02-21 14:12:43.929975'),(212,'canvas','0021_auto_20220405_2311','2023-02-21 14:12:44.101571'),(213,'canvas','0022_auto_20220523_1625','2023-02-21 14:12:44.256579'),(214,'canvas','0023_auto_20220913_2018','2023-02-21 14:12:44.275540'),(215,'canvas','0024_auto_20220929_1720','2023-02-21 14:12:44.528952'),(216,'canvas','0025_auto_20221021_0159','2023-02-21 14:12:44.623332'),(217,'canvas','0026_auto_20221031_1855','2023-02-21 14:12:44.773591'),(218,'canvas','0027_move_and_recrete_completed_timestamp','2023-02-21 14:12:45.108291'),(219,'canvas','0028_alter_canvaslearnerdatatransmissionaudit_index_together','2023-02-21 14:12:45.137453'),(220,'canvas','0029_auto_20230105_2122','2023-02-21 14:12:46.048058'),(221,'canvas','0030_auto_20230112_2002','2023-02-21 14:12:46.201088'),(222,'catalog','0001_initial','2023-02-21 14:12:46.341885'),(223,'catalog','0002_catalogintegration_username','2023-02-21 14:12:46.426527'),(224,'catalog','0003_catalogintegration_page_size','2023-02-21 14:12:46.504396'),(225,'catalog','0004_auto_20170616_0618','2023-02-21 14:12:46.584124'),(226,'catalog','0005_catalogintegration_long_term_cache_ttl','2023-02-21 14:12:46.662100'),(227,'celery_utils','0001_initial','2023-02-21 14:12:46.680467'),(228,'celery_utils','0002_chordable_django_backend','2023-02-21 14:12:46.684415'),(229,'certificates','0008_schema__remove_badges','2023-02-21 14:12:47.203032'),(230,'certificates','0009_certificategenerationcoursesetting_language_self_generation','2023-02-21 14:12:47.236135'),(231,'certificates','0010_certificatetemplate_language','2023-02-21 14:12:47.248145'),(232,'certificates','0011_certificatetemplate_alter_unique','2023-02-21 14:12:47.263474'),(233,'certificates','0012_certificategenerationcoursesetting_include_hours_of_effort','2023-02-21 14:12:47.274907'),(234,'certificates','0013_remove_certificategenerationcoursesetting_enabled','2023-02-21 14:12:47.286137'),(235,'certificates','0014_change_eligible_certs_manager','2023-02-21 14:12:47.369756'),(236,'certificates','0015_add_masters_choice','2023-02-21 14:12:47.464912'),(237,'certificates','0016_historicalgeneratedcertificate','2023-02-21 14:12:47.602845'),(238,'certificates','0017_add_mode_20201118_1725','2023-02-21 14:12:47.766238'),(239,'certificates','0018_historicalcertificateinvalidation','2023-02-21 14:12:47.897001'),(240,'certificates','0019_allowlistgenerationconfiguration','2023-02-21 14:12:48.030946'),(241,'certificates','0020_remove_existing_mgmt_cmd_args','2023-02-21 14:12:48.039618'),(242,'certificates','0021_remove_certificate_allowlist_duplicate_records','2023-02-21 14:12:48.047865'),(243,'certificates','0022_add_unique_constraints_to_certificatewhitelist_model','2023-02-21 14:12:48.127550'),(244,'certificates','0023_certificategenerationcommandconfiguration','2023-02-21 14:12:48.260937'),(245,'certificates','0024_delete_allowlistgenerationconfiguration','2023-02-21 14:12:48.269215'),(246,'certificates','0025_cleanup_certificate_errors','2023-02-21 14:12:48.353048'),(247,'certificates','0026_certificateallowlist','2023-02-21 14:12:48.481496'),(248,'certificates','0027_historicalcertificateallowlist','2023-02-21 14:12:48.899182'),(249,'certificates','0028_allowlist_data_20210615_2033','2023-02-21 14:12:48.907557'),(250,'certificates','0029_allowlist_created_20210623_1417','2023-02-21 14:12:48.915864'),(251,'certificates','0030_delete_certificatewhitelist','2023-02-21 14:12:48.924295'),(252,'certificates','0031_certificatedateoverride_historicalcertificatedateoverride','2023-02-21 14:12:49.189005'),(253,'certificates','0032_change_certificatedateoverride_date','2023-02-21 14:12:49.355310'),(254,'certificates','0033_auto_20220307_1100','2023-02-21 14:12:49.525462'),(255,'certificates','0034_auto_20220401_1213','2023-02-21 14:12:49.700704'),(256,'user_api','0001_initial','2023-02-21 14:12:50.653914'),(257,'user_api','0002_retirementstate_userretirementstatus','2023-02-21 14:12:50.802191'),(258,'commerce','0001_data__add_ecommerce_service_user','2023-02-21 14:12:50.811252'),(259,'commerce','0002_commerceconfiguration','2023-02-21 14:12:50.954895'),(260,'commerce','0003_auto_20160329_0709','2023-02-21 14:12:51.044505'),(261,'commerce','0004_auto_20160531_0950','2023-02-21 14:12:51.220399'),(262,'commerce','0005_commerceconfiguration_enable_automatic_refund_approval','2023-02-21 14:12:51.308418'),(263,'commerce','0006_auto_20170424_1734','2023-02-21 14:12:51.403396'),(264,'commerce','0007_auto_20180313_0609','2023-02-21 14:12:51.570341'),(265,'commerce','0008_auto_20191024_2048','2023-02-21 14:12:51.578544'),(266,'completion','0001_initial','2023-02-21 14:12:51.889449'),(267,'completion','0002_auto_20180125_1510','2023-02-21 14:12:52.268731'),(268,'completion','0003_learning_context','2023-02-21 14:12:52.617363'),(269,'consent','0001_initial','2023-02-21 14:12:52.955646'),(270,'consent','0002_migrate_to_new_data_sharing_consent','2023-02-21 14:12:52.964643'),(271,'consent','0003_historicaldatasharingconsent_history_change_reason','2023-02-21 14:12:53.085142'),(272,'consent','0004_datasharingconsenttextoverrides','2023-02-21 14:12:53.239026'),(273,'lti1p3_tool_config','0001_initial','2023-02-21 14:12:53.258575'),(274,'organizations','0001_initial','2023-02-21 14:12:53.422905'),(275,'organizations','0002_auto_20170117_1434','2023-02-21 14:12:53.426723'),(276,'organizations','0003_auto_20170221_1138','2023-02-21 14:12:53.428978'),(277,'organizations','0004_auto_20170413_2315','2023-02-21 14:12:53.431574'),(278,'organizations','0005_auto_20171116_0640','2023-02-21 14:12:53.434632'),(279,'organizations','0006_auto_20171207_0259','2023-02-21 14:12:53.436533'),(280,'organizations','0007_historicalorganization','2023-02-21 14:12:53.438132'),(281,'content_libraries','0001_initial','2023-02-21 14:12:54.229650'),(282,'content_libraries','0002_group_permissions','2023-02-21 14:12:55.012338'),(283,'content_libraries','0003_contentlibrary_type','2023-02-21 14:12:55.027102'),(284,'content_libraries','0004_contentlibrary_license','2023-02-21 14:12:55.041995'),(285,'content_libraries','0005_ltigradedresource_ltiprofile','2023-02-21 14:12:55.336405'),(286,'content_libraries','0006_auto_20210615_1916','2023-02-21 14:12:55.849318'),(287,'content_libraries','0005_contentlibraryblockimporttask','2023-02-21 14:12:56.001121'),(288,'content_libraries','0007_merge_20210818_0614','2023-02-21 14:12:56.004966'),(289,'content_libraries','0008_auto_20210818_2148','2023-02-21 14:12:56.676208'),(290,'content_libraries','0009_alter_contentlibrary_authorized_lti_configs','2023-02-21 14:12:56.887879'),(291,'course_overviews','0001_initial','2023-02-21 14:12:56.912044'),(292,'course_overviews','0002_add_course_catalog_fields','2023-02-21 14:12:56.970191'),(293,'course_overviews','0003_courseoverviewgeneratedhistory','2023-02-21 14:12:56.979531'),(294,'course_overviews','0004_courseoverview_org','2023-02-21 14:12:56.992833'),(295,'course_overviews','0005_delete_courseoverviewgeneratedhistory','2023-02-21 14:12:57.001731'),(296,'course_overviews','0006_courseoverviewimageset','2023-02-21 14:12:57.017180'),(297,'course_overviews','0007_courseoverviewimageconfig','2023-02-21 14:12:57.471427'),(298,'course_overviews','0008_remove_courseoverview_facebook_url','2023-02-21 14:12:57.476313'),(299,'course_overviews','0009_readd_facebook_url','2023-02-21 14:12:57.492048'),(300,'course_overviews','0010_auto_20160329_2317','2023-02-21 14:12:57.516420'),(301,'course_overviews','0011_courseoverview_marketing_url','2023-02-21 14:12:57.530327'),(302,'course_overviews','0012_courseoverview_eligible_for_financial_aid','2023-02-21 14:12:57.544422'),(303,'course_overviews','0013_courseoverview_language','2023-02-21 14:12:57.558838'),(304,'course_overviews','0014_courseoverview_certificate_available_date','2023-02-21 14:12:57.573706'),(305,'content_type_gating','0001_initial','2023-02-21 14:12:57.730864'),(306,'content_type_gating','0002_auto_20181119_0959','2023-02-21 14:12:57.988115'),(307,'content_type_gating','0003_auto_20181128_1407','2023-02-21 14:12:58.109186'),(308,'content_type_gating','0004_auto_20181128_1521','2023-02-21 14:12:58.232810'),(309,'content_type_gating','0005_auto_20190306_1547','2023-02-21 14:12:58.349457'),(310,'content_type_gating','0006_auto_20190308_1447','2023-02-21 14:12:58.460939'),(311,'content_type_gating','0007_auto_20190311_1919','2023-02-21 14:12:59.407436'),(312,'content_type_gating','0008_auto_20190313_1634','2023-02-21 14:12:59.520935'),(313,'contentserver','0001_initial','2023-02-21 14:12:59.680419'),(314,'contentserver','0002_cdnuseragentsconfig','2023-02-21 14:12:59.838811'),(315,'cornerstone','0001_initial','2023-02-21 14:13:00.602856'),(316,'cornerstone','0002_cornerstoneglobalconfiguration_subject_mapping','2023-02-21 14:13:00.989869'),(317,'cornerstone','0003_auto_20190621_1000','2023-02-21 14:13:01.404354'),(318,'cornerstone','0004_cornerstoneglobalconfiguration_languages','2023-02-21 14:13:01.504183'),(319,'cornerstone','0005_auto_20190925_0730','2023-02-21 14:13:01.692974'),(320,'cornerstone','0006_auto_20191001_0742','2023-02-21 14:13:01.878578'),(321,'cornerstone','0007_auto_20210708_1446','2023-02-21 14:13:02.061869'),(322,'cornerstone','0008_auto_20210909_1536','2023-02-21 14:13:02.254926'),(323,'cornerstone','0009_auto_20210923_1727','2023-02-21 14:13:02.497165'),(324,'cornerstone','0010_cornerstonecoursekey','2023-02-21 14:13:02.509888'),(325,'cornerstone','0011_auto_20211103_1855','2023-02-21 14:13:03.174387'),(326,'cornerstone','0012_alter_cornerstoneenterprisecustomerconfiguration_enterprise_customer','2023-02-21 14:13:03.347147'),(327,'cornerstone','0013_auto_20220126_1837','2023-02-21 14:13:03.953915'),(328,'cornerstone','0014_auto_20220131_1539','2023-02-21 14:13:04.140650'),(329,'cornerstone','0015_auto_20220302_2231','2023-02-21 14:13:04.641934'),(330,'cornerstone','0016_auto_20220324_1550','2023-02-21 14:13:05.346058'),(331,'cornerstone','0017_alter_cornerstonelearnerdatatransmissionaudit_course_completed','2023-02-21 14:13:05.446477'),(332,'cornerstone','0018_auto_20220325_1757','2023-02-21 14:13:05.645497'),(333,'cornerstone','0019_auto_20220405_2311','2023-02-21 14:13:05.855266'),(334,'cornerstone','0020_auto_20220523_1625','2023-02-21 14:13:06.053313'),(335,'cornerstone','0021_cornerstonelearnerdatatransmissionaudit_friendly_status_message','2023-02-21 14:13:06.473940'),(336,'cornerstone','0022_cornerstonelearnerdatatransmissionaudit_api_record','2023-02-21 14:13:06.646740'),(337,'cornerstone','0023_auto_20221021_0159','2023-02-21 14:13:06.975936'),(338,'cornerstone','0024_auto_20221031_1855','2023-02-21 14:13:07.171422'),(339,'cornerstone','0025_alter_cornerstonelearnerdatatransmissionaudit_index_together','2023-02-21 14:13:07.284173'),(340,'cornerstone','0026_auto_20230105_2122','2023-02-21 14:13:08.649268'),(341,'cornerstone','0027_auto_20230112_2002','2023-02-21 14:13:08.838014'),(342,'cors_csrf','0001_initial','2023-02-21 14:13:09.004102'),(343,'course_action_state','0001_initial','2023-02-21 14:13:09.281237'),(344,'course_apps','0001_initial','2023-02-21 14:13:09.487529'),(345,'course_overviews','0015_historicalcourseoverview','2023-02-21 14:13:10.012267'),(346,'course_overviews','0016_simulatecoursepublishconfig','2023-02-21 14:13:10.186814'),(347,'course_overviews','0017_auto_20191002_0823','2023-02-21 14:13:10.294234'),(348,'course_overviews','0018_add_start_end_in_CourseOverview','2023-02-21 14:13:10.533289'),(349,'course_overviews','0019_improve_courseoverviewtab','2023-02-21 14:13:10.764379'),(350,'course_date_signals','0001_initial','2023-02-21 14:13:11.202691'),(351,'course_duration_limits','0001_initial','2023-02-21 14:13:11.378041'),(352,'course_duration_limits','0002_auto_20181119_0959','2023-02-21 14:13:11.798324'),(353,'course_duration_limits','0003_auto_20181128_1407','2023-02-21 14:13:11.941616'),(354,'course_duration_limits','0004_auto_20181128_1521','2023-02-21 14:13:12.082095'),(355,'course_duration_limits','0005_auto_20190306_1546','2023-02-21 14:13:12.223890'),(356,'course_duration_limits','0006_auto_20190308_1447','2023-02-21 14:13:12.386319'),(357,'course_duration_limits','0007_auto_20190311_1919','2023-02-21 14:13:13.135781'),(358,'course_duration_limits','0008_auto_20190313_1634','2023-02-21 14:13:13.520714'),(359,'course_goals','0001_initial','2023-02-21 14:13:13.794199'),(360,'course_goals','0002_auto_20171010_1129','2023-02-21 14:13:13.905480'),(361,'course_goals','0003_historicalcoursegoal','2023-02-21 14:13:14.097156'),(362,'course_goals','0004_auto_20210806_0137','2023-02-21 14:13:14.532247'),(363,'course_goals','0005_useractivity','2023-02-21 14:13:15.223369'),(364,'course_goals','0006_add_unsubscribe_token','2023-02-21 14:13:15.543355'),(365,'course_goals','0007_set_unsubscribe_token_default','2023-02-21 14:13:15.763523'),(366,'course_goals','0008_coursegoalreminderstatus','2023-02-21 14:13:15.940467'),(367,'course_groups','0002_change_inline_default_cohort_value','2023-02-21 14:13:15.954978'),(368,'course_groups','0003_auto_20170609_1455','2023-02-21 14:13:16.152857'),(369,'course_overviews','0020_courseoverviewtab_url_slug','2023-02-21 14:13:16.171483'),(370,'course_overviews','0021_courseoverviewtab_link','2023-02-21 14:13:16.191682'),(371,'course_overviews','0022_courseoverviewtab_is_hidden','2023-02-21 14:13:16.211361'),(372,'course_overviews','0023_courseoverview_banner_image_url','2023-02-21 14:13:16.356562'),(373,'course_overviews','0024_overview_adds_has_highlights','2023-02-21 14:13:16.486252'),(374,'course_home_api','0001_initial','2023-02-21 14:13:17.165726'),(375,'lti_consumer','0001_initial','2023-02-21 14:13:17.177098'),(376,'lti_consumer','0002_ltiagslineitem','2023-02-21 14:13:17.193044'),(377,'lti_consumer','0003_ltiagsscore','2023-02-21 14:13:17.209631'),(378,'lti_consumer','0004_keyset_mgmt_to_model','2023-02-21 14:13:17.255855'),(379,'lti_consumer','0005_migrate_keyset_to_model','2023-02-21 14:13:17.265251'),(380,'lti_consumer','0006_add_on_model_config_for_lti_1p1','2023-02-21 14:13:17.354707'),(381,'lti_consumer','0007_ltidlcontentitem','2023-02-21 14:13:17.370683'),(382,'lti_consumer','0008_fix_uuid_backfill','2023-02-21 14:13:17.405859'),(383,'lti_consumer','0009_backfill-empty-string-config-id','2023-02-21 14:13:17.413861'),(384,'lti_consumer','0010_backfill-empty-string-lti-config','2023-02-21 14:13:17.422706'),(385,'lti_consumer','0011_courseeditltifieldsenabledflag','2023-02-21 14:13:17.608166'),(386,'lti_consumer','0012_rename_courseeditltifieldsenabledflag_model','2023-02-21 14:13:17.729291'),(387,'lti_consumer','0013_auto_20210712_1352','2023-02-21 14:13:17.760276'),(388,'course_live','0001_initial','2023-02-21 14:13:18.123547'),(389,'course_live','0002_auto_20220617_1822','2023-02-21 14:13:18.257199'),(390,'course_modes','0008_course_key_field_to_foreign_key','2023-02-21 14:13:18.793385'),(391,'course_modes','0009_suggested_prices_to_charfield','2023-02-21 14:13:18.823217'),(392,'course_modes','0010_archived_suggested_prices_to_charfield','2023-02-21 14:13:18.838619'),(393,'course_modes','0011_change_regex_for_comma_separated_ints','2023-02-21 14:13:18.872538'),(394,'course_modes','0012_historicalcoursemode','2023-02-21 14:13:19.057974'),(395,'course_modes','0013_auto_20200115_2022','2023-02-21 14:13:19.248019'),(396,'course_modes','0014_auto_20230207_1212','2023-02-21 14:13:19.521912'),(397,'course_overviews','0025_auto_20210702_1602','2023-02-21 14:13:20.092014'),(398,'course_overviews','0026_courseoverview_entrance_exam','2023-02-21 14:13:20.803907'),(399,'course_overviews','0027_auto_20221102_1109','2023-02-21 14:13:20.944669'),(400,'coursewarehistoryextended','0001_initial','2023-02-21 14:13:21.179129'),(401,'coursewarehistoryextended','0002_force_studentmodule_index','2023-02-21 14:13:21.206667'),(402,'courseware','0002_coursedynamicupgradedeadlineconfiguration_dynamicupgradedeadlineconfiguration','2023-02-21 14:13:21.574172'),(403,'courseware','0003_auto_20170825_0935','2023-02-21 14:13:21.692210'),(404,'courseware','0004_auto_20171010_1639','2023-02-21 14:13:21.810063'),(405,'courseware','0005_orgdynamicupgradedeadlineconfiguration','2023-02-21 14:13:22.599337'),(406,'courseware','0006_remove_module_id_index','2023-02-21 14:13:22.733065'),(407,'courseware','0007_remove_done_index','2023-02-21 14:13:22.855985'),(408,'courseware','0008_move_idde_to_edx_when','2023-02-21 14:13:22.864598'),(409,'courseware','0009_auto_20190703_1955','2023-02-21 14:13:23.062273'),(410,'courseware','0010_auto_20190709_1559','2023-02-21 14:13:23.266292'),(411,'courseware','0011_csm_id_bigint','2023-02-21 14:13:23.503076'),(412,'courseware','0012_adjust_fields','2023-02-21 14:13:23.735591'),(413,'courseware','0013_auto_20191001_1858','2023-02-21 14:13:24.232378'),(414,'courseware','0014_fix_nan_value_for_global_speed','2023-02-21 14:13:24.242843'),(415,'courseware','0015_add_courseware_stats_index','2023-02-21 14:13:24.360863'),(416,'courseware','0016_lastseencoursewaretimezone','2023-02-21 14:13:24.563947'),(417,'courseware','0017_financialassistanceconfiguration','2023-02-21 14:13:24.755117'),(418,'crawlers','0001_initial','2023-02-21 14:13:24.945913'),(419,'crawlers','0002_auto_20170419_0018','2023-02-21 14:13:25.067553'),(420,'credentials','0001_initial','2023-02-21 14:13:25.257665'),(421,'credentials','0002_auto_20160325_0631','2023-02-21 14:13:25.381010'),(422,'credentials','0003_auto_20170525_1109','2023-02-21 14:13:25.902981'),(423,'credentials','0004_notifycredentialsconfig','2023-02-21 14:13:26.097971'),(424,'credentials','0005_remove_existing_mgmt_cmd_args','2023-02-21 14:13:26.107472'),(425,'credit','0001_initial','2023-02-21 14:13:26.654903'),(426,'credit','0002_creditconfig','2023-02-21 14:13:26.862908'),(427,'credit','0003_auto_20160511_2227','2023-02-21 14:13:26.880832'),(428,'credit','0004_delete_historical_credit_records','2023-02-21 14:13:28.040693'),(429,'credit','0005_creditrequirement_sort_value','2023-02-21 14:13:28.057356'),(430,'credit','0006_creditrequirement_alter_ordering','2023-02-21 14:13:28.075520'),(431,'credit','0007_creditrequirement_copy_values','2023-02-21 14:13:28.085978'),(432,'credit','0008_creditrequirement_remove_order','2023-02-21 14:13:28.101742'),(433,'dark_lang','0001_initial','2023-02-21 14:13:28.298330'),(434,'dark_lang','0002_data__enable_on_install','2023-02-21 14:13:28.308858'),(435,'dark_lang','0003_auto_20180425_0359','2023-02-21 14:13:28.543815'),(436,'database_fixups','0001_initial','2023-02-21 14:13:28.554132'),(437,'degreed','0001_initial','2023-02-21 14:13:29.472559'),(438,'degreed','0002_auto_20180104_0103','2023-02-21 14:13:29.896826'),(439,'degreed','0003_auto_20180109_0712','2023-02-21 14:13:30.124198'),(440,'degreed','0004_auto_20180306_1251','2023-02-21 14:13:30.353885'),(441,'degreed','0005_auto_20180807_1302','2023-02-21 14:13:32.016013'),(442,'degreed','0006_upgrade_django_simple_history','2023-02-21 14:13:32.214158'),(443,'degreed','0007_auto_20190925_0730','2023-02-21 14:13:32.758065'),(444,'degreed','0008_auto_20191001_0742','2023-02-21 14:13:32.983618'),(445,'degreed','0009_auto_20210119_1546','2023-02-21 14:13:34.596553'),(446,'degreed','0010_auto_20210708_1446','2023-02-21 14:13:34.822928'),(447,'degreed','0011_auto_20210909_1536','2023-02-21 14:13:35.041179'),(448,'degreed','0012_auto_20210923_1727','2023-02-21 14:13:35.257208'),(449,'degreed','0013_alter_degreedenterprisecustomerconfiguration_enterprise_customer','2023-02-21 14:13:35.457509'),(450,'degreed','0014_auto_20220126_1837','2023-02-21 14:13:38.099795'),(451,'degreed','0015_auto_20220131_1539','2023-02-21 14:13:38.325326'),(452,'degreed','0016_auto_20220302_2231','2023-02-21 14:13:38.547732'),(453,'degreed','0017_alter_degreedlearnerdatatransmissionaudit_completed_timestamp','2023-02-21 14:13:38.564130'),(454,'degreed','0018_auto_20220324_1550','2023-02-21 14:13:38.708183'),(455,'degreed','0019_auto_20220325_1757','2023-02-21 14:13:38.733880'),(456,'degreed','0020_auto_20220405_2311','2023-02-21 14:13:38.762392'),(457,'degreed','0021_auto_20220523_1625','2023-02-21 14:13:38.979275'),(458,'degreed','0022_degreedlearnerdatatransmissionaudit_friendly_status_message','2023-02-21 14:13:38.994445'),(459,'degreed','0023_degreedlearnerdatatransmissionaudit_api_record','2023-02-21 14:13:39.202264'),(460,'degreed','0024_auto_20221021_0159','2023-02-21 14:13:39.277536'),(461,'degreed','0025_auto_20221031_1855','2023-02-21 14:13:39.821240'),(462,'degreed','0026_move_and_recrete_completed_timestamp','2023-02-21 14:13:39.873639'),(463,'degreed','0027_alter_degreedlearnerdatatransmissionaudit_index_together','2023-02-21 14:13:39.907088'),(464,'degreed','0028_auto_20230105_2122','2023-02-21 14:13:41.497277'),(465,'degreed','0029_auto_20230112_2002','2023-02-21 14:13:41.726152'),(466,'degreed2','0001_initial','2023-02-21 14:13:42.132501'),(467,'degreed2','0002_auto_20211101_2021','2023-02-21 14:13:42.595520'),(468,'degreed2','0003_alter_degreed2enterprisecustomerconfiguration_enterprise_customer','2023-02-21 14:13:42.813762'),(469,'degreed2','0004_auto_20220126_1837','2023-02-21 14:13:44.991059'),(470,'degreed2','0005_auto_20220131_1539','2023-02-21 14:13:45.376623'),(471,'degreed2','0006_auto_20220214_1627','2023-02-21 14:13:45.619327'),(472,'degreed2','0007_auto_20220302_2231','2023-02-21 14:13:45.898782'),(473,'degreed2','0008_degreed2learnerdatatransmissionaudit_course_completed','2023-02-21 14:13:45.914647'),(474,'degreed2','0009_alter_degreed2learnerdatatransmissionaudit_completed_timestamp','2023-02-21 14:13:45.931422'),(475,'degreed2','0010_auto_20220324_1550','2023-02-21 14:13:46.099482'),(476,'degreed2','0011_auto_20220325_1757','2023-02-21 14:13:46.135376'),(477,'degreed2','0012_auto_20220405_2311','2023-02-21 14:13:46.193823'),(478,'degreed2','0013_auto_20220523_1625','2023-02-21 14:13:46.543212'),(479,'degreed2','0014_degreed2learnerdatatransmissionaudit_friendly_status_message','2023-02-21 14:13:46.565332'),(480,'degreed2','0015_degreed2learnerdatatransmissionaudit_api_record','2023-02-21 14:13:46.781928'),(481,'degreed2','0016_auto_20221021_0159','2023-02-21 14:13:46.856372'),(482,'degreed2','0017_auto_20221031_1855','2023-02-21 14:13:47.451206'),(483,'degreed2','0018_move_and_recrete_completed_timestamp','2023-02-21 14:13:47.539460'),(484,'degreed2','0019_alter_degreed2learnerdatatransmissionaudit_index_together','2023-02-21 14:13:47.587617'),(485,'degreed2','0020_auto_20230105_2122','2023-02-21 14:13:49.423372'),(486,'degreed2','0021_auto_20230112_2002','2023-02-21 14:13:49.676919'),(487,'demographics','0001_initial','2023-02-21 14:13:50.158963'),(488,'demographics','0002_clean_duplicate_entries','2023-02-21 14:13:50.178578'),(489,'demographics','0003_auto_20200827_1949','2023-02-21 14:13:50.431350'),(490,'discounts','0001_initial','2023-02-21 14:13:51.325887'),(491,'discounts','0002_auto_20191022_1720','2023-02-21 14:13:51.869410'),(492,'discussions','0001_initial','2023-02-21 14:13:52.356323'),(493,'discussions','0002_add_provider_filter','2023-02-21 14:13:53.166349'),(494,'discussions','0003_alter_provider_filter_list','2023-02-21 14:13:53.465138'),(495,'discussions','0004_historicalprogramdiscussionsconfiguration_programdiscussionsconfiguration','2023-02-21 14:13:53.940540'),(496,'discussions','0005_auto_20210910_0940','2023-02-21 14:13:54.105598'),(497,'discussions','0006_auto_20211006_0441','2023-02-21 14:13:55.360945'),(498,'discussions','0007_add_discussion_topic_link','2023-02-21 14:13:55.875010'),(499,'discussions','0008_auto_20220119_0746','2023-02-21 14:13:56.961159'),(500,'discussions','0009_discussiontopiclink_ordering','2023-02-21 14:13:56.984778'),(501,'discussions','0010_auto_20220203_2134','2023-02-21 14:13:57.887515'),(502,'discussions','0011_auto_20220510_0716','2023-02-21 14:13:58.192834'),(503,'discussions','0012_auto_20220511_0827','2023-02-21 14:13:58.899826'),(504,'discussions','0013_auto_20220802_1154','2023-02-21 14:13:59.068838'),(505,'discussions','0014_auto_20220826_1107','2023-02-21 14:13:59.230091'),(506,'discussions','0015_discussiontopiclink_context','2023-02-21 14:13:59.252104'),(507,'django_celery_results','0001_initial','2023-02-21 14:13:59.265156'),(508,'django_celery_results','0002_add_task_name_args_kwargs','2023-02-21 14:13:59.304158'),(509,'django_celery_results','0003_auto_20181106_1101','2023-02-21 14:13:59.319992'),(510,'django_celery_results','0004_auto_20190516_0412','2023-02-21 14:13:59.480539'),(511,'django_celery_results','0005_taskresult_worker','2023-02-21 14:13:59.495340'),(512,'django_celery_results','0006_taskresult_date_created','2023-02-21 14:13:59.517419'),(513,'django_celery_results','0007_remove_taskresult_hidden','2023-02-21 14:13:59.532978'),(514,'django_celery_results','0008_chordcounter','2023-02-21 14:13:59.543818'),(515,'django_celery_results','0009_groupresult','2023-02-21 14:13:59.759637'),(516,'django_celery_results','0010_remove_duplicate_indices','2023-02-21 14:13:59.797890'),(517,'django_celery_results','0011_taskresult_periodic_task_name','2023-02-21 14:13:59.813443'),(518,'django_comment_common','0001_initial','2023-02-21 14:14:00.262928'),(519,'django_comment_common','0002_forumsconfig','2023-02-21 14:14:00.479668'),(520,'django_comment_common','0003_enable_forums','2023-02-21 14:14:00.490302'),(521,'django_comment_common','0004_auto_20161117_1209','2023-02-21 14:14:00.623553'),(522,'django_comment_common','0005_coursediscussionsettings','2023-02-21 14:14:00.635953'),(523,'django_comment_common','0006_coursediscussionsettings_discussions_id_map','2023-02-21 14:14:00.652152'),(524,'django_comment_common','0007_discussionsidmapping','2023-02-21 14:14:00.663474'),(525,'django_comment_common','0008_role_user_index','2023-02-21 14:14:00.672698'),(526,'django_comment_common','0009_coursediscussionsettings_reported_content_email_notifications','2023-02-21 14:14:00.686896'),(527,'django_notify','0001_initial','2023-02-21 14:14:01.987832'),(528,'edx_name_affirmation','0001_initial','2023-02-21 14:14:02.211975'),(529,'edx_name_affirmation','0002_verifiednameconfig','2023-02-21 14:14:02.441947'),(530,'edx_name_affirmation','0003_verifiedname_status','2023-02-21 14:14:02.587982'),(531,'edx_name_affirmation','0004_auto_20210816_0958','2023-02-21 14:14:02.735537'),(532,'edx_name_affirmation','0005_remove_verifiedname_is_verified','2023-02-21 14:14:02.878964'),(533,'edx_name_affirmation','0006_auto_20210830_2029','2023-02-21 14:14:03.168952'),(534,'edx_name_affirmation','0007_historicalverifiedname','2023-02-21 14:14:03.850637'),(535,'edx_proctoring','0001_initial','2023-02-21 14:14:06.697722'),(536,'edx_proctoring','0002_proctoredexamstudentattempt_is_status_acknowledged','2023-02-21 14:14:06.857186'),(537,'edx_proctoring','0003_auto_20160101_0525','2023-02-21 14:14:07.144533'),(538,'edx_proctoring','0004_auto_20160201_0523','2023-02-21 14:14:07.293341'),(539,'edx_proctoring','0005_proctoredexam_hide_after_due','2023-02-21 14:14:07.317599'),(540,'edx_proctoring','0006_allowed_time_limit_mins','2023-02-21 14:14:07.607683'),(541,'edx_proctoring','0007_proctoredexam_backend','2023-02-21 14:14:07.631897'),(542,'edx_proctoring','0008_auto_20181116_1551','2023-02-21 14:14:08.538578'),(543,'edx_proctoring','0009_proctoredexamreviewpolicy_remove_rules','2023-02-21 14:14:08.825954'),(544,'edx_proctoring','0010_update_backend','2023-02-21 14:14:08.838389'),(545,'edx_proctoring','0011_allow_multiple_attempts','2023-02-21 14:14:08.992676'),(546,'edx_proctoring','0012_proctoredexamstudentattempt_time_remaining_seconds','2023-02-21 14:14:09.183708'),(547,'edx_proctoring','0013_proctoredexamsoftwaresecurereview_is_active_attempt','2023-02-21 14:14:09.478951'),(548,'edx_proctoring','0014_add_is_resumable_to_proctoredexamstudentattempt','2023-02-21 14:14:09.766492'),(549,'edx_proctoring','0015_rm_proctoredexamstudentattempt_ips','2023-02-21 14:14:10.388828'),(550,'edx_proctoring','0016_nullable_proctoredexamstudentattempt_name','2023-02-21 14:14:11.185835'),(551,'edx_proctoring','0017_rm_proctoredexamstudentattempt_name','2023-02-21 14:14:11.507955'),(552,'edx_proctoring','0018_historicalproctoredexamstudentattempt','2023-02-21 14:14:11.750822'),(553,'edx_proctoring','0019_proctoredexamsoftwaresecurereview_encrypted_video_url','2023-02-21 14:14:11.901769'),(554,'edx_proctoring','0020_auto_20211028_1915','2023-02-21 14:14:12.197815'),(555,'edx_proctoring','0021_auto_20211029_1353','2023-02-21 14:14:12.650483'),(556,'edx_proctoring','0022_proctoredexamstudentattempt_add_readytoresume_resumed','2023-02-21 14:14:13.718443'),(557,'edx_proctoring','0023_historicalproctoredexam','2023-02-21 14:14:13.949063'),(558,'edx_proctoring','0024_delete_proctoredexamstudentattempthistory','2023-02-21 14:14:13.960795'),(559,'edx_when','0001_initial','2023-02-21 14:14:14.468873'),(560,'edx_when','0002_auto_20190318_1736','2023-02-21 14:14:15.083629'),(561,'edx_when','0003_auto_20190402_1501','2023-02-21 14:14:16.320849'),(562,'edx_when','0004_datepolicy_rel_date','2023-02-21 14:14:16.341926'),(563,'edx_when','0005_auto_20190911_1056','2023-02-21 14:14:16.548947'),(564,'edx_when','0006_drop_active_index','2023-02-21 14:14:16.570428'),(565,'edx_when','0007_meta_tweaks','2023-02-21 14:14:16.587161'),(566,'edx_when','0008_courseversion_block_type','2023-02-21 14:14:16.620241'),(567,'edxval','0001_squashed_0016_add_transcript_credentials_model','2023-02-21 14:14:16.772344'),(568,'edxval','0002_add_error_description_field','2023-02-21 14:14:16.790901'),(569,'edxval','0003_delete_transcriptcredentials','2023-02-21 14:14:16.815801'),(570,'email_marketing','0001_initial','2023-02-21 14:14:17.054484'),(571,'email_marketing','0002_auto_20160623_1656','2023-02-21 14:14:18.887391'),(572,'email_marketing','0003_auto_20160715_1145','2023-02-21 14:14:19.626758'),(573,'email_marketing','0004_emailmarketingconfiguration_welcome_email_send_delay','2023-02-21 14:14:19.775002'),(574,'email_marketing','0005_emailmarketingconfiguration_user_registration_cookie_timeout_delay','2023-02-21 14:14:19.922506'),(575,'email_marketing','0006_auto_20170711_0615','2023-02-21 14:14:20.069969'),(576,'email_marketing','0007_auto_20170809_0653','2023-02-21 14:14:20.991921'),(577,'email_marketing','0008_auto_20170809_0539','2023-02-21 14:14:21.005427'),(578,'email_marketing','0009_remove_emailmarketingconfiguration_sailthru_activation_template','2023-02-21 14:14:21.164219'),(579,'email_marketing','0010_auto_20180425_0800','2023-02-21 14:14:21.489181'),(580,'email_marketing','0011_delete_emailmarketingconfiguration','2023-02-21 14:14:21.500628'),(581,'embargo','0001_initial','2023-02-21 14:14:22.099668'),(582,'embargo','0002_data__add_countries','2023-02-21 14:14:22.113077'),(583,'enterprise','0154_alter_systemwideenterpriseuserroleassignment_unique_together','2023-02-21 14:14:22.305009'),(584,'enterprise','0155_add_is_relinkable_to_enterprise_customer_user','2023-02-21 14:14:22.556840'),(585,'enterprise','0156_add_is_active_role_assignment','2023-02-21 14:14:22.932890'),(586,'enterprise','0157_make_field_nullable_before_removal','2023-02-21 14:14:23.803150'),(587,'enterprise','0158_remove_is_active_from_role_assignment','2023-02-21 14:14:24.186994'),(588,'enterprise','0159_add_enable_learner_portal_offers','2023-02-21 14:14:24.444276'),(589,'enterprise','0160_add_enable_portal_learner_credit_management_screen','2023-02-21 14:14:24.711032'),(590,'enterprise','0161_alter_enterprisecustomerreportingconfiguration_data_type','2023-02-21 14:14:24.794159'),(591,'enterprise','0162_add_enable_executive_education_2U_fulfillment','2023-02-21 14:14:25.057166'),(592,'enterprise','0163_auto_20220928_1611','2023-02-21 14:14:25.319163'),(593,'enterprise','0164_enterprisecatalogquery_include_exec_ed_2u_courses','2023-02-21 14:14:25.340051'),(594,'enterprise','0165_alter_enterprisecustomerreportingconfiguration_pgp_encryption_key','2023-02-21 14:14:25.396230'),(595,'enterprise','0166_auto_20221209_0819','2023-02-21 14:14:26.384416'),(596,'experiments','0001_initial','2023-02-21 14:14:26.912764'),(597,'student','0001_squashed_0031_auto_20200317_1122','2023-02-21 14:14:40.085676'),(598,'entitlements','0001_initial','2023-02-21 14:14:40.379148'),(599,'entitlements','0002_auto_20171102_0719','2023-02-21 14:14:41.704243'),(600,'entitlements','0003_auto_20171205_1431','2023-02-21 14:14:42.701823'),(601,'entitlements','0004_auto_20171206_1729','2023-02-21 14:14:42.893419'),(602,'entitlements','0005_courseentitlementsupportdetail','2023-02-21 14:14:43.654779'),(603,'entitlements','0006_courseentitlementsupportdetail_action','2023-02-21 14:14:43.849397'),(604,'entitlements','0007_change_expiration_period_default','2023-02-21 14:14:43.913503'),(605,'entitlements','0008_auto_20180328_1107','2023-02-21 14:14:44.281498'),(606,'entitlements','0009_courseentitlement_refund_locked','2023-02-21 14:14:44.473595'),(607,'entitlements','0010_backfill_refund_lock','2023-02-21 14:14:44.486367'),(608,'entitlements','0011_historicalcourseentitlement','2023-02-21 14:14:44.758039'),(609,'entitlements','0012_allow_blank_order_number_values','2023-02-21 14:14:45.133236'),(610,'entitlements','0013_historicalcourseentitlementsupportdetail','2023-02-21 14:14:45.423134'),(611,'entitlements','0014_auto_20200115_2022','2023-02-21 14:14:46.184401'),(612,'entitlements','0015_add_unique_together_constraint','2023-02-21 14:14:46.767706'),(613,'experiments','0002_auto_20170627_1402','2023-02-21 14:14:46.796214'),(614,'experiments','0003_auto_20170713_1148','2023-02-21 14:14:46.814747'),(615,'experiments','0004_historicalexperimentkeyvalue','2023-02-21 14:14:47.096664'),(616,'external_user_ids','0001_initial','2023-02-21 14:14:48.716222'),(617,'external_user_ids','0002_mb_coaching_20200210_1754','2023-02-21 14:14:48.730145'),(618,'external_user_ids','0003_auto_20200224_1836','2023-02-21 14:14:48.915850'),(619,'external_user_ids','0004_add_lti_type','2023-02-21 14:14:48.928238'),(620,'grades','0001_initial','2023-02-21 14:14:48.986668'),(621,'grades','0002_rename_last_edited_field','2023-02-21 14:14:49.008812'),(622,'grades','0003_coursepersistentgradesflag_persistentgradesenabledflag','2023-02-21 14:14:49.562805'),(623,'grades','0004_visibleblocks_course_id','2023-02-21 14:14:49.582941'),(624,'grades','0005_multiple_course_flags','2023-02-21 14:14:49.783097'),(625,'grades','0006_persistent_course_grades','2023-02-21 14:14:49.813088'),(626,'grades','0007_add_passed_timestamp_column','2023-02-21 14:14:49.847453'),(627,'grades','0008_persistentsubsectiongrade_first_attempted','2023-02-21 14:14:49.866248'),(628,'grades','0009_auto_20170111_1507','2023-02-21 14:14:49.899299'),(629,'grades','0010_auto_20170112_1156','2023-02-21 14:14:49.917824'),(630,'grades','0011_null_edited_time','2023-02-21 14:14:49.974095'),(631,'grades','0012_computegradessetting','2023-02-21 14:14:50.257480'),(632,'grades','0013_persistentsubsectiongradeoverride','2023-02-21 14:14:50.279994'),(633,'grades','0014_persistentsubsectiongradeoverridehistory','2023-02-21 14:14:50.576269'),(634,'grades','0015_historicalpersistentsubsectiongradeoverride','2023-02-21 14:14:51.282458'),(635,'grades','0016_auto_20190703_1446','2023-02-21 14:14:51.708258'),(636,'grades','0017_delete_manual_psgoverride_table','2023-02-21 14:14:52.010051'),(637,'grades','0018_add_waffle_flag_defaults','2023-02-21 14:14:52.023096'),(638,'grades','0019_auto_20220912_0855','2023-02-21 14:14:52.325061'),(639,'instructor_task','0002_gradereportsetting','2023-02-21 14:14:52.605382'),(640,'instructor_task','0003_alter_task_input_field','2023-02-21 14:14:52.799792'),(641,'instructor_task','0004_historicalinstructortaskschedule_instructortaskschedule','2023-02-21 14:14:53.864101'),(642,'instructor_task','0005_alter_instructortaskschedule_task','2023-02-21 14:14:54.152568'),(643,'integrated_channel','0022_alter_contentmetadataitemtransmission_index_together','2023-02-21 14:14:54.241731'),(644,'integrated_channel','0023_auto_20221021_0159','2023-02-21 14:14:54.330109'),(645,'integrated_channel','0024_genericenterprisecustomerpluginconfiguration_deleted_at','2023-02-21 14:14:54.405565'),(646,'integrated_channel','0025_auto_20230105_2122','2023-02-21 14:14:54.805997'),(647,'integrated_channel','0026_genericenterprisecustomerpluginconfiguration_last_modified_at','2023-02-21 14:14:54.876263'),(648,'learner_pathway_progress','0001_initial','2023-02-21 14:14:55.158688'),(649,'learner_pathway_progress','0002_historicallearnerpathwayprogress_learnerpathwayprogress','2023-02-21 14:14:56.186979'),(650,'learner_pathway_progress','0003_auto_20220901_0616','2023-02-21 14:14:56.597606'),(651,'learner_pathway_progress','0004_auto_20220907_0316','2023-02-21 14:14:56.923553'),(652,'learner_pathway_progress','0005_auto_20221007_0758','2023-02-21 14:14:56.936566'),(653,'learning_sequences','0001_initial','2023-02-21 14:14:57.182282'),(654,'learning_sequences','0002_coursesectionsequence_inaccessible_after_due','2023-02-21 14:14:57.203658'),(655,'learning_sequences','0003_create_course_context_for_course_specific_models','2023-02-21 14:14:57.362016'),(656,'learning_sequences','0004_coursecontext_self_paced','2023-02-21 14:14:57.384200'),(657,'learning_sequences','0005_coursecontext_days_early_for_beta','2023-02-21 14:14:57.407284'),(658,'learning_sequences','0006_coursecontext_entrance_exam_id','2023-02-21 14:14:57.429001'),(659,'learning_sequences','0007_coursesequenceexam','2023-02-21 14:14:57.454671'),(660,'learning_sequences','0008_add_learning_context_title_index','2023-02-21 14:14:57.477144'),(661,'learning_sequences','0009_contenterror_publishreport','2023-02-21 14:14:57.526198'),(662,'learning_sequences','0010_add_publishreport_indexes','2023-02-21 14:14:57.593614'),(663,'learning_sequences','0011_course_meta_names','2023-02-21 14:14:57.640957'),(664,'learning_sequences','0012_add_user_partition_group','2023-02-21 14:14:57.727939'),(665,'learning_sequences','0013_through_model_for_user_partition_groups_1','2023-02-21 14:14:57.829831'),(666,'learning_sequences','0014_remove_user_partition_group_duplicates','2023-02-21 14:14:57.842049'),(667,'learning_sequences','0015_add_user_partition_group_unique_constraint','2023-02-21 14:14:57.866746'),(668,'learning_sequences','0016_through_model_for_user_partition_groups_2','2023-02-21 14:14:57.917576'),(669,'lms_xblock','0001_initial','2023-02-21 14:14:58.208981'),(670,'lti_consumer','0014_adds_external_id','2023-02-21 14:14:58.258606'),(671,'lti_consumer','0015_add_additional_1p3_fields','2023-02-21 14:14:58.433692'),(672,'lti_consumer','0016_lticonfiguration_lti_1p3_proctoring_enabled','2023-02-21 14:14:58.458847'),(673,'milestones','0001_initial','2023-02-21 14:14:59.131262'),(674,'milestones','0002_data__seed_relationship_types','2023-02-21 14:14:59.144845'),(675,'milestones','0003_coursecontentmilestone_requirements','2023-02-21 14:14:59.167321'),(676,'milestones','0004_auto_20151221_1445','2023-02-21 14:14:59.255193'),(677,'mobile_api','0001_initial','2023-02-21 14:14:59.544060'),(678,'mobile_api','0002_auto_20160406_0904','2023-02-21 14:14:59.577073'),(679,'mobile_api','0003_ignore_mobile_available_flag','2023-02-21 14:15:00.092253'),(680,'mobile_api','0004_mobileconfig','2023-02-21 14:15:00.110900'),(681,'moodle','0001_initial','2023-02-21 14:15:00.722582'),(682,'moodle','0002_moodlelearnerdatatransmissionaudit','2023-02-21 14:15:00.738103'),(683,'moodle','0003_auto_20201006_1706','2023-02-21 14:15:01.064285'),(684,'moodle','0004_auto_20201105_1921','2023-02-21 14:15:01.874908'),(685,'moodle','0005_auto_20210708_1446','2023-02-21 14:15:02.196916'),(686,'moodle','0006_auto_20210909_1536','2023-02-21 14:15:02.503894'),(687,'moodle','0007_auto_20210923_1727','2023-02-21 14:15:02.809264'),(688,'moodle','0008_alter_moodleenterprisecustomerconfiguration_enterprise_customer','2023-02-21 14:15:03.114707'),(689,'moodle','0009_auto_20220126_1837','2023-02-21 14:15:06.134983'),(690,'moodle','0010_auto_20220131_1539','2023-02-21 14:15:06.956208'),(691,'moodle','0011_auto_20220302_2231','2023-02-21 14:15:07.275911'),(692,'moodle','0012_alter_moodlelearnerdatatransmissionaudit_completed_timestamp','2023-02-21 14:15:07.297805'),(693,'moodle','0013_auto_20220324_1550','2023-02-21 14:15:07.511501'),(694,'moodle','0014_auto_20220325_1757','2023-02-21 14:15:07.547725'),(695,'moodle','0015_auto_20220405_2311','2023-02-21 14:15:07.589744'),(696,'moodle','0016_auto_20220523_1625','2023-02-21 14:15:07.911360'),(697,'moodle','0017_moodlelearnerdatatransmissionaudit_friendly_status_message','2023-02-21 14:15:07.933260'),(698,'moodle','0018_moodlelearnerdatatransmissionaudit_api_record','2023-02-21 14:15:08.233711'),(699,'moodle','0019_auto_20221021_0159','2023-02-21 14:15:08.326111'),(700,'moodle','0020_auto_20221031_1855','2023-02-21 14:15:08.641149'),(701,'moodle','0021_move_and_recrete_completed_timestamp','2023-02-21 14:15:08.707617'),(702,'moodle','0022_auto_20221220_1527','2023-02-21 14:15:09.869041'),(703,'moodle','0023_alter_moodlelearnerdatatransmissionaudit_index_together','2023-02-21 14:15:09.911072'),(704,'moodle','0024_auto_20230105_2122','2023-02-21 14:15:12.446629'),(705,'moodle','0025_auto_20230112_2002','2023-02-21 14:15:12.804947'),(706,'oauth2_provider','0001_initial','2023-02-21 14:15:14.480830'),(707,'oauth2_provider','0002_auto_20190406_1805','2023-02-21 14:15:15.487750'),(708,'oauth_dispatch','0001_initial','2023-02-21 14:15:15.834484'),(709,'oauth_dispatch','0002_scopedapplication_scopedapplicationorganization','2023-02-21 14:15:16.524422'),(710,'oauth_dispatch','0003_application_data','2023-02-21 14:15:16.538287'),(711,'oauth_dispatch','0004_auto_20180626_1349','2023-02-21 14:15:18.736332'),(712,'oauth_dispatch','0005_applicationaccess_type','2023-02-21 14:15:19.347087'),(713,'oauth_dispatch','0006_drop_application_id_constraints','2023-02-21 14:15:21.531062'),(714,'oauth_dispatch','0007_restore_application_id_constraints','2023-02-21 14:15:24.487424'),(715,'oauth_dispatch','0008_applicationaccess_filters','2023-02-21 14:15:24.531684'),(716,'oauth_dispatch','0009_delete_enable_scopes_waffle_switch','2023-02-21 14:15:24.555109'),(717,'oauth_dispatch','0010_noop_migration_to_test_rollback','2023-02-21 14:15:24.572251'),(718,'oauth_dispatch','0011_noop_migration_to_test_rollback','2023-02-21 14:15:24.597240'),(719,'oauth_dispatch','0012_noop_migration_to_test_rollback','2023-02-21 14:15:24.632518'),(720,'organizations','0002_unique_short_name','2023-02-21 14:15:25.014811'),(721,'organizations','0003_historicalorganizationcourse','2023-02-21 14:15:25.458717'),(722,'outcome_surveys','0001_initial','2023-02-21 14:15:25.529813'),(723,'outcome_surveys','0002_learnercourseevent_already_sent','2023-02-21 14:15:25.553184'),(724,'outcome_surveys','0003_auto_20230130_0352','2023-02-21 14:15:25.692794'),(725,'outcome_surveys','0004_auto_20230203_0147','2023-02-21 14:15:26.047908'),(726,'program_enrollments','0001_initial','2023-02-21 14:15:27.020674'),(727,'program_enrollments','0002_historicalprogramcourseenrollment_programcourseenrollment','2023-02-21 14:15:29.592785'),(728,'program_enrollments','0003_auto_20190424_1622','2023-02-21 14:15:30.028234'),(729,'program_enrollments','0004_add_programcourseenrollment_relatedname','2023-02-21 14:15:30.590741'),(730,'program_enrollments','0005_canceled_not_withdrawn','2023-02-21 14:15:31.881064'),(731,'program_enrollments','0006_add_the_correct_constraints','2023-02-21 14:15:32.338305'),(732,'program_enrollments','0007_waiting_programcourseenrollment_constraint','2023-02-21 14:15:32.401799'),(733,'program_enrollments','0008_add_ended_programenrollment_status','2023-02-21 14:15:33.753583'),(734,'program_enrollments','0009_update_course_enrollment_field_to_foreign_key','2023-02-21 14:15:34.248336'),(735,'program_enrollments','0010_add_courseaccessroleassignment','2023-02-21 14:15:34.712743'),(736,'programs','0001_initial','2023-02-21 14:15:35.125658'),(737,'programs','0002_programsapiconfig_cache_ttl','2023-02-21 14:15:35.397695'),(738,'programs','0003_auto_20151120_1613','2023-02-21 14:15:37.072846'),(739,'programs','0004_programsapiconfig_enable_certification','2023-02-21 14:15:37.335754'),(740,'programs','0005_programsapiconfig_max_retries','2023-02-21 14:15:37.634877'),(741,'programs','0006_programsapiconfig_xseries_ad_enabled','2023-02-21 14:15:37.900975'),(742,'programs','0007_programsapiconfig_program_listing_enabled','2023-02-21 14:15:38.152593'),(743,'programs','0008_programsapiconfig_program_details_enabled','2023-02-21 14:15:38.400187'),(744,'programs','0009_programsapiconfig_marketing_path','2023-02-21 14:15:38.667580'),(745,'programs','0010_auto_20170204_2332','2023-02-21 14:15:39.661253'),(746,'programs','0011_auto_20170301_1844','2023-02-21 14:15:44.509677'),(747,'programs','0012_auto_20170419_0018','2023-02-21 14:15:44.782116'),(748,'programs','0013_customprogramsconfig','2023-02-21 14:15:45.141473'),(749,'programs','0014_delete_customprogramsconfig','2023-02-21 14:15:45.156175'),(750,'programs','0015_historicalprogramdiscussionsconfiguration_historicalprogramliveconfiguration_programdiscussionsconfi','2023-02-21 14:15:47.173239'),(751,'redirects','0001_initial','2023-02-21 14:15:47.533561'),(752,'redirects','0002_alter_redirect_new_path_help_text','2023-02-21 14:15:47.609324'),(753,'rss_proxy','0001_initial','2023-02-21 14:15:47.626282'),(754,'sap_success_factors','0001_squashed_0022_auto_20200206_1046','2023-02-21 14:15:48.420660'),(755,'sap_success_factors','0002_sapsuccessfactorslearnerdatatransmissionaudit_credit_hours','2023-02-21 14:15:48.424096'),(756,'sap_success_factors','0003_auto_20210701_1556','2023-02-21 14:15:48.426782'),(757,'sap_success_factors','0004_auto_20210708_1639','2023-02-21 14:15:48.429560'),(758,'sap_success_factors','0005_sapsuccessfactorsenterprisecustomerconfiguration_prevent_learner_self_submit_grades','2023-02-21 14:15:48.432875'),(759,'sap_success_factors','0006_sapsuccessfactorsenterprisecustomerconfiguration_idp_id','2023-02-21 14:15:48.435503'),(760,'sap_success_factors','0007_sapsuccessfactorsenterprisecustomerconfiguration_disable_learner_data_transmissions','2023-02-21 14:15:48.437730'),(761,'sap_success_factors','0008_alter_sapsuccessfactorsenterprisecustomerconfiguration_enterprise_customer','2023-02-21 14:15:48.440808'),(762,'sap_success_factors','0009_auto_20220126_1837','2023-02-21 14:15:48.443569'),(763,'sap_success_factors','0010_sapsuccessfactorsenterprisecustomerconfiguration_display_name','2023-02-21 14:15:48.446564'),(764,'sap_success_factors','0011_alter_sapsuccessfactorslearnerdatatransmissionaudit_enterprise_course_enrollment_id','2023-02-21 14:15:48.449053'),(765,'sap_success_factors','0002_alter_sapsuccessfactorsenterprisecustomerconfiguration_display_name','2023-02-21 14:15:48.547818'),(766,'sap_success_factors','0003_alter_sapsuccessfactorslearnerdatatransmissionaudit_completed_timestamp','2023-02-21 14:15:48.575486'),(767,'sap_success_factors','0004_auto_20220324_1550','2023-02-21 14:15:48.763292'),(768,'sap_success_factors','0005_auto_20220325_1757','2023-02-21 14:15:48.766451'),(769,'sap_success_factors','0006_auto_20220330_1157','2023-02-21 14:15:48.768442'),(770,'sap_success_factors','0005_sapsuccessfactorsenterprisecustomerconfiguration_dry_run_mode_enabled','2023-02-21 14:15:48.853277'),(771,'sap_success_factors','0006_sapsuccessfactorslearnerdatatransmissionaudit_friendly_status_message','2023-02-21 14:15:48.875782'),(772,'sap_success_factors','0007_sapsuccessfactorslearnerdatatransmissionaudit_api_record','2023-02-21 14:15:49.759182'),(773,'sap_success_factors','0008_auto_20221021_0159','2023-02-21 14:15:49.891585'),(774,'sap_success_factors','0009_sapsuccessfactorsenterprisecustomerconfiguration_deleted_at','2023-02-21 14:15:49.998782'),(775,'sap_success_factors','0010_move_and_recrete_completed_timestamp','2023-02-21 14:15:50.196231'),(776,'sap_success_factors','0011_alter_sapsuccessfactorslearnerdatatransmissionaudit_index_together','2023-02-21 14:15:50.255238'),(777,'sap_success_factors','0012_auto_20230105_2122','2023-02-21 14:15:50.779034'),(778,'sap_success_factors','0013_sapsuccessfactorsenterprisecustomerconfiguration_last_modified_at','2023-02-21 14:15:50.877704'),(779,'save_for_later','0001_initial','2023-02-21 14:15:50.916967'),(780,'save_for_later','0002_auto_20220322_1621','2023-02-21 14:15:51.150563'),(781,'schedules','0001_initial','2023-02-21 14:15:51.524231'),(782,'schedules','0002_auto_20170816_1532','2023-02-21 14:15:51.613793'),(783,'schedules','0003_scheduleconfig','2023-02-21 14:15:52.646737'),(784,'schedules','0004_auto_20170922_1428','2023-02-21 14:15:53.183448'),(785,'schedules','0005_auto_20171010_1722','2023-02-21 14:15:53.704608'),(786,'schedules','0006_scheduleexperience','2023-02-21 14:15:54.071547'),(787,'schedules','0007_scheduleconfig_hold_back_ratio','2023-02-21 14:15:54.355363'),(788,'schedules','0008_add_new_start_date_field','2023-02-21 14:15:54.398531'),(789,'schedules','0009_schedule_copy_column_values','2023-02-21 14:15:54.411640'),(790,'schedules','0010_remove_null_blank_from_schedules_date','2023-02-21 14:15:54.456278'),(791,'schedules','0011_auto_20200228_2018','2023-02-21 14:15:54.815001'),(792,'schedules','0012_auto_20200302_1914','2023-02-21 14:15:55.640886'),(793,'schedules','0013_historicalschedule','2023-02-21 14:15:56.003880'),(794,'schedules','0014_historicalschedule_drop_fk','2023-02-21 14:15:56.412559'),(795,'schedules','0015_schedules_start_nullable','2023-02-21 14:15:56.739660'),(796,'schedules','0016_remove_start_from_schedules','2023-02-21 14:15:56.780520'),(797,'schedules','0017_remove_start_from_historicalschedule','2023-02-21 14:15:57.042827'),(798,'schedules','0018_readd_historicalschedule_fks','2023-02-21 14:15:58.254308'),(799,'schedules','0019_auto_20200316_1935','2023-02-21 14:15:59.171280'),(800,'schedules','0020_remove_config_rollout_fields','2023-02-21 14:15:59.729821'),(801,'sessions','0001_initial','2023-02-21 14:15:59.748662'),(802,'site_configuration','0001_initial','2023-02-21 14:16:00.521268'),(803,'site_configuration','0002_auto_20160720_0231','2023-02-21 14:16:00.654758'),(804,'site_configuration','0003_auto_20200217_1058','2023-02-21 14:16:01.267261'),(805,'site_configuration','0004_add_site_values_field','2023-02-21 14:16:01.413418'),(806,'site_configuration','0005_populate_siteconfig_history_site_values','2023-02-21 14:16:01.426422'),(807,'site_configuration','0006_copy_values_to_site_values','2023-02-21 14:16:01.440341'),(808,'site_configuration','0007_remove_values_field','2023-02-21 14:16:01.574092'),(809,'site_configuration','0008_auto_20210910_0940','2023-02-21 14:16:01.716487'),(810,'default','0001_initial','2023-02-21 14:16:02.400002'),(811,'social_auth','0001_initial','2023-02-21 14:16:02.402701'),(812,'default','0002_add_related_name','2023-02-21 14:16:02.774248'),(813,'social_auth','0002_add_related_name','2023-02-21 14:16:02.776615'),(814,'default','0003_alter_email_max_length','2023-02-21 14:16:02.802278'),(815,'social_auth','0003_alter_email_max_length','2023-02-21 14:16:02.804978'),(816,'default','0004_auto_20160423_0400','2023-02-21 14:16:03.050292'),(817,'social_auth','0004_auto_20160423_0400','2023-02-21 14:16:03.053194'),(818,'social_auth','0005_auto_20160727_2333','2023-02-21 14:16:03.077141'),(819,'social_django','0006_partial','2023-02-21 14:16:03.093255'),(820,'social_django','0007_code_timestamp','2023-02-21 14:16:03.115172'),(821,'social_django','0008_partial_timestamp','2023-02-21 14:16:03.137443'),(822,'social_django','0009_auto_20191118_0520','2023-02-21 14:16:03.627928'),(823,'social_django','0010_uid_db_index','2023-02-21 14:16:04.311319'),(824,'splash','0001_initial','2023-02-21 14:16:04.720384'),(825,'split_modulestore_django','0001_initial','2023-02-21 14:16:05.145575'),(826,'split_modulestore_django','0002_data_migration','2023-02-21 14:16:05.160143'),(827,'staffgrader','0001_initial','2023-02-21 14:16:05.176934'),(828,'static_replace','0001_initial','2023-02-21 14:16:05.543708'),(829,'static_replace','0002_assetexcludedextensionsconfig','2023-02-21 14:16:05.922369'),(830,'status','0001_initial','2023-02-21 14:16:07.185390'),(831,'status','0002_update_help_text','2023-02-21 14:16:07.438195'),(832,'student','0032_removed_logout_view_configuration','2023-02-21 14:16:07.886489'),(833,'student','0033_userprofile_state','2023-02-21 14:16:08.173542'),(834,'student','0034_courseenrollmentcelebration','2023-02-21 14:16:08.577551'),(835,'student','0035_bulkchangeenrollmentconfiguration','2023-02-21 14:16:08.961479'),(836,'student','0036_userpasswordtogglehistory','2023-02-21 14:16:09.764953'),(837,'student','0037_linkedinaddtoprofileconfiguration_updates','2023-02-21 14:16:10.522451'),(838,'student','0038_auto_20201021_1256','2023-02-21 14:16:10.800261'),(839,'student','0039_anon_id_context','2023-02-21 14:16:11.060941'),(840,'student','0040_usercelebration','2023-02-21 14:16:11.426273'),(841,'student','0041_registration_activation_timestamp','2023-02-21 14:16:11.714252'),(842,'student','0042_allow_certificate_null_20210427_1519','2023-02-21 14:16:12.466277'),(843,'student','0043_remove_userprofile_allow_certificate','2023-02-21 14:16:12.722623'),(844,'student','0044_courseenrollmentcelebration_celebrate_weekly_goal','2023-02-21 14:16:12.770486'),(845,'submissions','0001_initial','2023-02-21 14:16:13.657952'),(846,'submissions','0002_auto_20151119_0913','2023-02-21 14:16:13.659970'),(847,'submissions','0003_submission_status','2023-02-21 14:16:13.662229'),(848,'submissions','0004_remove_django_extensions','2023-02-21 14:16:13.664115'),(849,'submissions','0005_CreateTeamModel','2023-02-21 14:16:13.665857'),(850,'submissions','0002_team_submission_optional','2023-02-21 14:16:14.136402'),(851,'submissions','0003_ensure_ascii','2023-02-21 14:16:14.172772'),(852,'super_csv','0001_initial','2023-02-21 14:16:14.196316'),(853,'super_csv','0002_csvoperation_user','2023-02-21 14:16:14.651424'),(854,'super_csv','0003_csvoperation_original_filename','2023-02-21 14:16:15.477690'),(855,'support','0001_initial','2023-02-21 14:16:15.919611'),(856,'survey','0001_initial','2023-02-21 14:16:16.361752'),(857,'survey_report','0001_initial','2023-02-21 14:16:16.382427'),(858,'survey_report','0002_auto_20221130_1533','2023-02-21 14:16:16.528012'),(859,'survey_report','0003_add_state_field_and_add_default_values_to_fields','2023-02-21 14:16:16.667192'),(860,'system_wide_roles','0001_SystemWideRole_SystemWideRoleAssignment','2023-02-21 14:16:17.059299'),(861,'system_wide_roles','0002_add_system_wide_student_support_role','2023-02-21 14:16:17.074381'),(862,'system_wide_roles','0003_systemwideroleassignment_applies_to_all_contexts','2023-02-21 14:16:17.345496'),(863,'teams','0001_initial','2023-02-21 14:16:18.963061'),(864,'teams','0002_slug_field_ids','2023-02-21 14:16:19.538425'),(865,'teams','0003_courseteam_organization_protected','2023-02-21 14:16:19.889632'),(866,'teams','0004_alter_defaults','2023-02-21 14:16:21.616330'),(867,'theming','0001_initial','2023-02-21 14:16:22.022019'),(868,'third_party_auth','0001_squashed_0026_auto_20200401_1932','2023-02-21 14:16:24.450474'),(869,'third_party_auth','0002_samlproviderconfig_country','2023-02-21 14:16:24.804666'),(870,'third_party_auth','0002_auto_20200721_1650','2023-02-21 14:16:26.156313'),(871,'third_party_auth','0003_samlconfiguration_is_public','2023-02-21 14:16:26.577792'),(872,'third_party_auth','0004_auto_20200919_0955','2023-02-21 14:16:28.398553'),(873,'third_party_auth','0005_auto_20210723_1527','2023-02-21 14:16:29.422597'),(874,'third_party_auth','0006_auto_20220314_1551','2023-02-21 14:16:33.048118'),(875,'third_party_auth','0007_samlproviderconfig_was_valid_at','2023-02-21 14:16:33.435184'),(876,'third_party_auth','0008_auto_20220324_1422','2023-02-21 14:16:34.706344'),(877,'third_party_auth','0009_historicalusersocialauth','2023-02-21 14:16:35.214432'),(878,'third_party_auth','0010_delete_historicalusersocialauth','2023-02-21 14:16:35.231400'),(879,'thumbnail','0001_initial','2023-02-21 14:16:35.248912'),(880,'track','0001_initial','2023-02-21 14:16:35.269502'),(881,'track','0002_delete_trackinglog','2023-02-21 14:16:35.285748'),(882,'user_api','0003_userretirementrequest','2023-02-21 14:16:35.838888'),(883,'user_api','0004_userretirementpartnerreportingstatus','2023-02-21 14:16:36.356792'),(884,'user_authn','0001_data__add_login_service','2023-02-21 14:16:36.372676'),(885,'user_tours','0001_initial','2023-02-21 14:16:36.913721'),(886,'user_tours','0002_auto_20230110_0905','2023-02-21 14:16:38.184555'),(887,'util','0001_initial','2023-02-21 14:16:38.645413'),(888,'util','0002_data__default_rate_limit_config','2023-02-21 14:16:38.664211'),(889,'verify_student','0001_initial','2023-02-21 14:16:43.707753'),(890,'verify_student','0002_auto_20151124_1024','2023-02-21 14:16:44.175248'),(891,'verify_student','0003_auto_20151113_1443','2023-02-21 14:16:44.550664'),(892,'verify_student','0004_delete_historical_records','2023-02-21 14:16:44.999227'),(893,'verify_student','0005_remove_deprecated_models','2023-02-21 14:16:50.094918'),(894,'verify_student','0006_ssoverification','2023-02-21 14:16:50.554690'),(895,'verify_student','0007_idverificationaggregate','2023-02-21 14:16:51.096579'),(896,'verify_student','0008_populate_idverificationaggregate','2023-02-21 14:16:51.114147'),(897,'verify_student','0009_remove_id_verification_aggregate','2023-02-21 14:16:52.113983'),(898,'verify_student','0010_manualverification','2023-02-21 14:16:53.203819'),(899,'verify_student','0011_add_fields_to_sspv','2023-02-21 14:16:53.871321'),(900,'verify_student','0012_sspverificationretryconfig','2023-02-21 14:16:54.396548'),(901,'verify_student','0013_add_expiration_date_field','2023-02-21 14:16:55.354476'),(902,'verify_student','0014_remove_softwaresecurephotoverification_expiry_date','2023-02-21 14:16:55.710800'),(903,'video_config','0001_initial','2023-02-21 14:16:57.424574'),(904,'video_config','0002_coursevideotranscriptenabledflag_videotranscriptenabledflag','2023-02-21 14:16:58.419925'),(905,'video_config','0003_transcriptmigrationsetting','2023-02-21 14:16:58.881892'),(906,'video_config','0004_transcriptmigrationsetting_command_run','2023-02-21 14:16:59.798024'),(907,'video_config','0005_auto_20180719_0752','2023-02-21 14:17:00.201453'),(908,'video_config','0006_videothumbnailetting_updatedcoursevideos','2023-02-21 14:17:00.773298'),(909,'video_config','0007_videothumbnailsetting_offset','2023-02-21 14:17:01.108123'),(910,'video_config','0008_courseyoutubeblockedflag','2023-02-21 14:17:01.777703'),(911,'video_pipeline','0001_initial','2023-02-21 14:17:02.267925'),(912,'video_pipeline','0002_auto_20171114_0704','2023-02-21 14:17:03.535136'),(913,'video_pipeline','0003_coursevideouploadsenabledbydefault_videouploadsenabledbydefault','2023-02-21 14:17:04.488958'),(914,'video_pipeline','0004_vempipelineintegration','2023-02-21 14:17:04.948991'),(915,'video_pipeline','0005_add_vem_course_percentage','2023-02-21 14:17:05.301075'),(916,'video_pipeline','0006_remove_vempipelineintegration_vem_enabled_courses_percentage','2023-02-21 14:17:06.205909'),(917,'video_pipeline','0007_delete_videopipelineintegration','2023-02-21 14:17:06.224675'),(918,'waffle','0002_auto_20161201_0958','2023-02-21 14:17:06.260080'),(919,'waffle','0003_update_strings_for_i18n','2023-02-21 14:17:13.453011'),(920,'waffle','0004_update_everyone_nullbooleanfield','2023-02-21 14:17:13.772075'),(921,'waffle_utils','0001_initial','2023-02-21 14:17:14.226667'),(922,'waffle_utils','0002_waffleflagcourseoverridemodel_note','2023-02-21 14:17:14.523127'),(923,'waffle_utils','0003_add_org_level_waffle_override','2023-02-21 14:17:15.388618'),(924,'wiki','0001_initial','2023-02-21 14:17:30.860058'),(925,'wiki','0002_remove_article_subscription','2023-02-21 14:17:30.879306'),(926,'wiki','0003_ip_address_conv','2023-02-21 14:17:32.178081'),(927,'wiki','0004_increase_slug_size','2023-02-21 14:17:32.844166'),(928,'wiki','0005_remove_attachments_and_images','2023-02-21 14:17:35.274268'),(929,'wiki','0006_auto_20200110_1003','2023-02-21 14:17:35.666849'),(930,'workflow','0001_initial','2023-02-21 14:17:35.750074'),(931,'workflow','0002_remove_django_extensions','2023-02-21 14:17:35.785194'),(932,'workflow','0003_TeamWorkflows','2023-02-21 14:17:35.817583'),(933,'workflow','0004_assessmentworkflowstep_skipped','2023-02-21 14:17:35.852798'),(934,'xapi','0001_initial','2023-02-21 14:17:37.031018'),(935,'xapi','0002_auto_20180726_0142','2023-02-21 14:17:37.375055'),(936,'xapi','0003_auto_20190807_1006','2023-02-21 14:17:38.449323'),(937,'xapi','0004_auto_20190830_0710','2023-02-21 14:17:38.777393'),(938,'xapi','0005_auto_20220324_1550','2023-02-21 14:17:42.045126'),(939,'xapi','0006_auto_20220325_1757','2023-02-21 14:17:43.275547'),(940,'xapi','0007_auto_20220405_2311','2023-02-21 14:17:43.931168'),(941,'xapi','0008_xapilearnerdatatransmissionaudit_friendly_status_message','2023-02-21 14:17:44.304955'),(942,'xapi','0009_xapilearnerdatatransmissionaudit_api_record','2023-02-21 14:17:44.791180'),(943,'xapi','0010_auto_20221021_0159','2023-02-21 14:17:46.246627'),(944,'xapi','0011_alter_xapilearnerdatatransmissionaudit_index_together','2023-02-21 14:17:46.576078'),(945,'xblock_django','0001_initial','2023-02-21 14:17:47.027957'),(946,'xblock_django','0002_auto_20160204_0809','2023-02-21 14:17:47.390138'),(947,'xblock_django','0003_add_new_config_models','2023-02-21 14:17:49.287906'),(948,'xblock_django','0004_delete_xblock_disable_config','2023-02-21 14:17:49.758451'),(949,'social_django','0001_initial','2023-02-21 14:17:49.781089'),(950,'social_django','0005_auto_20160727_2333','2023-02-21 14:17:49.783825'),(951,'social_django','0002_add_related_name','2023-02-21 14:17:49.785685'),(952,'social_django','0004_auto_20160423_0400','2023-02-21 14:17:49.787651'),(953,'social_django','0003_alter_email_max_length','2023-02-21 14:17:49.790107'),(954,'submissions','0001_squashed_0005_CreateTeamModel','2023-02-21 14:17:49.791890'),(955,'organizations','0001_squashed_0007_historicalorganization','2023-02-21 14:17:49.794258'),(956,'sap_success_factors','0004_auto_20220324_1550_squashed_0006_auto_20220330_1157','2023-02-21 14:17:49.796151'),(957,'sap_success_factors','0001_squashed_0022_auto_20200206_1046_squashed_0011_alter_sapsuccessfactorslearnerdatatransmissionaudit_enterprise_course_enrollment_id','2023-02-21 14:17:49.798018'),(958,'blackboard','0001_initial_squashed_0014_alter_blackboardlearnerassessmentdatatransmissionaudit_enterprise_course_enrollment_id','2023-02-21 14:17:49.799813'),(959,'contentstore','0001_initial','2023-02-21 14:18:51.862333'),(960,'contentstore','0002_add_assets_page_flag','2023-02-21 14:18:52.753514'),(961,'contentstore','0003_remove_assets_page_flag','2023-02-21 14:18:53.424949'),(962,'contentstore','0004_remove_push_notification_configmodel_table','2023-02-21 14:18:53.768331'),(963,'contentstore','0005_add_enable_checklists_quality_waffle_flag','2023-02-21 14:18:54.109530'),(964,'contentstore','0006_courseoutlineregenerate','2023-02-21 14:18:54.125371'),(965,'contentstore','0007_backfillcoursetabsconfig','2023-02-21 14:18:54.464955'),(966,'contentstore','0008_cleanstalecertificateavailabilitydatesconfig','2023-02-21 14:18:54.787714'),(967,'course_creators','0001_initial','2023-02-21 14:18:55.101341'),(968,'course_creators','0002_add_org_support_for_course_creators','2023-02-21 14:18:55.889979'),(969,'tagging','0001_initial','2023-02-21 14:18:55.934558'),(970,'tagging','0002_auto_20170116_1541','2023-02-21 14:18:55.971895'),(971,'user_tasks','0001_initial','2023-02-21 14:18:56.621397'),(972,'user_tasks','0002_artifact_file_storage','2023-02-21 14:18:56.647963'),(973,'user_tasks','0003_url_max_length','2023-02-21 14:18:56.672737'),(974,'user_tasks','0004_url_textfield','2023-02-21 14:18:56.700847'),(975,'xblock_config','0001_initial','2023-02-21 14:18:57.034092'),(976,'xblock_config','0002_courseeditltifieldsenabledflag','2023-02-21 14:18:57.036700'),(977,'xblock_config','0003_move_course_edit_lti_fields_enabled_flag_model_to_lti_consumer','2023-02-21 14:18:57.039626'),(978,'xblock_config','0001_squashed_0003_move_course_edit_lti_fields_enabled_flag_model_to_lti_consumer','2023-02-21 14:18:57.059641'); /*!40000 ALTER TABLE `django_migrations` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; @@ -89,4 +90,4 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2018-01-31 21:37:17 +-- Dump completed on 2023-02-21 14:42:10 diff --git a/enterprise/provision.sh b/enterprise/provision.sh new file mode 100755 index 0000000000..18b8947a44 --- /dev/null +++ b/enterprise/provision.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +set -eu -o pipefail +set -x + +docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker manage_user enterprise_worker enterprise_worker@example.com --staff' +cat enterprise/worker_permissions.py | docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms shell --settings=devstack_docker' + +docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker create_dot_application --grant-type client-credentials --client-id "enterprise-backend-service-key" --client-secret "enterprise-backend-service-secret" enterprise-backend-service enterprise_worker' diff --git a/enterprise/worker_permissions.py b/enterprise/worker_permissions.py new file mode 100644 index 0000000000..52cfcf41b0 --- /dev/null +++ b/enterprise/worker_permissions.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python +# Run like so: +# ./manage.py lms shell -c "`cat worker_permissions.py`" + +from django.contrib.auth import get_user_model +from django.contrib.auth.models import Permission + + +User = get_user_model() +enterprise_worker = User.objects.get(username='enterprise_worker') + +enterprise_model_permissions = list(Permission.objects.filter(content_type__app_label='enterprise')) + +enterprise_worker.user_permissions.add(*enterprise_model_permissions) +enterprise_worker.save() diff --git a/healthchecks.sh b/healthchecks.sh deleted file mode 100755 index 8f98dfe855..0000000000 --- a/healthchecks.sh +++ /dev/null @@ -1,36 +0,0 @@ -set -x - -echo "Checking LMS heartbeat:" -curl http://localhost:18000/heartbeat -if [ $? -ne 0 ]; then - docker-compose logs - exit 2 -fi -echo -echo "Checking Studio heartbeat:" -curl http://localhost:18010/heartbeat # Studio -if [ $? -ne 0 ]; then - docker-compose logs - exit 2 -fi -echo -echo "Checking ecommerce health:" -curl http://localhost:18130/health/ # Ecommerce -if [ $? -ne 0 ]; then - docker-compose logs - exit 2 -fi -echo -echo "Checking discovery health:" -curl http://localhost:18381/health/ # Discovery -if [ $? -ne 0 ]; then - docker-compose logs - exit 2 -fi -echo -echo "Checking forum health:" -curl http://localhost:44567/heartbeat # Forums -if [ $? -ne 0 ]; then - docker-compose logs - exit 2 -fi \ No newline at end of file diff --git a/in b/in new file mode 100755 index 0000000000..cf8ee69158 --- /dev/null +++ b/in @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +# Run a command in a service's container. +# Try to bring up the service if it isn't already up. +# Example: +# ~/devstack> ./in registrar ls /edx/app/ +# edx_ansible nginx registrar supervisor +# Example 2: +# ~/devstack> ./in registrar "cd /edx/app/registrar && ls" +# data registrar registrar.sh venvs +# devstack.sh registrar_env registrar-workers.sh +# nodeenvs registrar_gunicorn.py staticfiles + +set -e +set -o pipefail +set -u + +service="$1" +shift + +container_id=$(make --silent --no-print-directory dev.print-container."$service") +if [[ -z "$container_id" ]]; then + make --silent --no-print-directory dev.up."$service" + container_id=$(make --silent --no-print-directory dev.print-container."$service") +fi + +docker exec -it "$container_id" bash -c "$*" diff --git a/load-db.sh b/load-db.sh index 24b70fada5..99be594989 100755 --- a/load-db.sh +++ b/load-db.sh @@ -7,8 +7,7 @@ # # This will load the edxapp database from a file named exapp.sql. -set -e -set -o pipefail +set -eu -o pipefail if [ -z "$1" ] then @@ -17,5 +16,6 @@ then fi echo "Loading the $1 database..." -docker exec -i edx.devstack.mysql mysql -uroot $1 < $1.sql +mysql_container=$(make --silent --no-print-directory dev.print-container.mysql57) +docker exec -i "$mysql_container" mysql -uroot $1 < $1.sql echo "Finished loading the $1 database!" diff --git a/marketing.mk b/marketing.mk deleted file mode 100644 index 6932e36395..0000000000 --- a/marketing.mk +++ /dev/null @@ -1,24 +0,0 @@ -help-marketing: ## Display this help message - @echo "Please use \`make ' where is one of" - @perl -nle'print $& if m{^[\.a-zA-Z_-]+:.*?## .*$$}' $(MAKEFILE_LIST) | grep marketing | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m %-25s\033[0m %s\n", $$1, $$2}' - -marketing-shell: ## Run a shell on the marketing site container - docker exec -it edx.devstack.marketing env TERM=$(TERM) bash - -stop-marketing: ## Stop all services (including the marketing site) with host volumes - docker-compose -f docker-compose.yml -f docker-compose-host.yml -f docker-compose-marketing-site.yml -f docker-compose-marketing-site-host.yml stop - -down-marketing: ## Bring down all services (including the marketing site) with host volumes - docker-compose -f docker-compose.yml -f docker-compose-host.yml -f docker-compose-marketing-site.yml -f docker-compose-marketing-site-host.yml down - -up-marketing: ## Bring up all services (including the marketing site) with host volumes - docker-compose -f docker-compose.yml -f docker-compose-host.yml -f docker-compose-marketing-site.yml -f docker-compose-marketing-site-host.yml up - -up-marketing-detached: ## Bring up all services (including the marketing site) with host volumes (in detached mode) - docker-compose -f docker-compose.yml -f docker-compose-host.yml -f docker-compose-marketing-site.yml -f docker-compose-marketing-site-host.yml up -d - -up-marketing-sync: ## Bring up all services (including the marketing site) with docker-sync - docker-sync-stack start -c docker-sync-marketing-site.yml - -clean-marketing-sync: ## Remove the docker-sync containers for all services (including the marketing site) - docker-sync-stack clean -c docker-sync-marketing-site.yml diff --git a/microfrontend.yml b/microfrontend.yml new file mode 100644 index 0000000000..2c3c541bb8 --- /dev/null +++ b/microfrontend.yml @@ -0,0 +1,12 @@ +# This file contains configuration common too all microfrontends + +version: "2.1" + +services: + microfrontend: + command: bash -c 'npm install; while true; do npm start; sleep 2; done' + stdin_open: true + tty: true + image: node:16 + environment: + - NODE_ENV=development diff --git a/openedx.yaml b/openedx.yaml index b268e5006e..37e1ca8843 100644 --- a/openedx.yaml +++ b/openedx.yaml @@ -3,9 +3,11 @@ nick: dev oeps: - oep-2: True - oep-5: True - oep-10: True + oep-2: true + oep-7: true # Python 3 + oep-5: true + oep-10: true openedx-release: {ref: master} -owner: edx/platform-team -track-pulls: true +owner: jmbowman +supporting-teams: + - platform-core diff --git a/options.mk b/options.mk new file mode 100644 index 0000000000..dc2b453001 --- /dev/null +++ b/options.mk @@ -0,0 +1,93 @@ +# DEFAULT DEVSTACK OPTIONS +# Included into Makefile and exported to command environment. +# Defaults are listed in this file. +# Local git-ignored overrides can be configured by creating `options.local.mk`. + +# WHEN ADDING NEW OPTIONS TO THIS FILE: +# 1. Provide an explanation of what the option is for. +# 2. Explain what values it can be overriden to. +# 3. Set the default value with `?=` (i.e., "set if not already set") such that values +# set in `options.local.mk` or passed in via the environment are not clobbered. + +# Include local overrides to options. +# You can use this file to configure your Devstack. It is ignored by git. +-include options.local.mk # Prefix with hyphen to tolerate absence of file. + +# Folder in which we looks for repositories. +# Defaults to parent of this repository. +DEVSTACK_WORKSPACE ?= $(shell pwd)/.. + +# Open edX named release branch (omitting open-release/ prefix). +# For example, `hawthorn.master` or `zebrawood.rc1`. +# By deafult, this value is undefined (it's only listed here as documentation). +# If it is defined in options.local.mk or the environment, then Devstack will try +# to use the Docker images and Git repo branches that correspond to that release. +# If the release does not exist, you will see errors. +# OPENEDX_RELEASE ?= + +# Name of Docker Compose project. +# Volumes and network are namespaced based on this value, +# so changing it will give you a separate set of databases. +# See https://docs.docker.com/compose/reference/envvars/#compose_project_name +# If OPENEDX_RELAESE is defined, defaults to `devstack-${OPENEDX_RELEASE}`; +# otherwise, it defaults to `devstack`. +# Be sure to bring down services before changing the value of `COMPOSE_PROJECT_NAME`. +ifdef OPENEDX_RELEASE + COMPOSE_PROJECT_NAME ?= devstack-${OPENEDX_RELEASE} +else + COMPOSE_PROJECT_NAME ?= devstack +endif + +# Docker Compse HTTP timeout, in seconds. +# By default, increased so that devstack provisioning does not fail in unstable networks. +COMPOSE_HTTP_TIMEOUT ?= 180 + +# Whether we should always copy programs to LMS cache upon LMS startup. +# If 'true', then run `make dev.cache-programs` whenever we bring up +# containers. +# Defaults to false. Case-sensitive. +ALWAYS_CACHE_PROGRAMS ?= false + +# Services that are to be pulled, provisioned, run, and checked by default +# when no services are specified manually. +# Should be a subset of $(EDX_SERVICES). +# Separated by plus signs. Listed in alphabetical order for clarity. +# WARNING: You may remove services from this list in order to make Devstack lighter, +# but beware that some services have implicit, undocumented dependencies on +# other ones. For example, Discovery depends on both LMS and Ecommerce being +# provisioned and started in order to provision correctly. +# Tread at your own risk. +# TODO: Re-evaluate this list and consider paring it down to a tighter core. +# The current value was chosen such that it would not change the existing +# Devstack behavior. +DEFAULT_SERVICES ?= \ +credentials+discovery+ecommerce+edx_notes_api+forum+frontend-app-authn+frontend-app-gradebook+frontend-app-payment+frontend-app-publisher+frontend-app-learning+lms+studio + +# All edX services, whether or not they are run by default. +# Separated by plus signs. +# Separated by plus signs. Listed in alphabetical order for clarity. +EDX_SERVICES ?= \ +analyticsapi+credentials+discovery+ecommerce+edx_notes_api+forum+frontend-app-account+frontend-app-profile+frontend-app-authn+frontend-app-course-authoring+frontend-app-gradebook+frontend-app-ora-grading+frontend-app-learning+frontend-app-library-authoring+frontend-app-payment+frontend-app-program-console+frontend-app-publisher+insights+lms+lms_watcher+registrar+registrar-worker+studio+studio_watcher+xqueue+xqueue_consumer + +# Services with database migrations. +# Should be a subset of $(EDX_SERVICES). +# Separated by plus signs. Listed in alphabetical order for clarity. +# Services must provide a Makefile target named: $(service)-update-db +# Note: This list should contain _all_ db-backed services, even if not +# configured to run; the list will be filtered later against $(DEFAULT_SERVICES). +DB_SERVICES ?= \ +credentials+discovery+ecommerce+lms+registrar+studio + +# Services with static assets to be built. +# Should be a subset of $(EDX_SERVICES). +# Services must provide a Makefile target named: dev.migrate.$(service) +# Separated by plus signs. Listed in alphabetical order for clarity. +# Note: This list should contain _all_ services with static asse to compile ts, even if not +# configured to run; the list will be filtered later against $(DEFAULT_SERVICES). +ASSET_SERVICES ?= \ +credentials+discovery+ecommerce+insights+lms+registrar+studio + +# All third-party services. +# Separated by plus signs. Listed in alphabetical order for clarity. +THIRD_PARTY_SERVICES ?= \ +chrome+coursegraph+devpi+elasticsearch+elasticsearch7+elasticsearch710+firefox+memcached+mongo+mysql57+opensearch12+redis+namenode+datanode+resourcemanager+nodemanager+sparkmaster+sparkworker+vertica diff --git a/post-pip-compile.sh b/post-pip-compile.sh deleted file mode 100644 index 63362330e1..0000000000 --- a/post-pip-compile.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env bash -set -e - -# Remove any cruft from a requirements file generated by pip-tools which we don't want to keep - -function show_help { - echo "Usage: post-pip-compile.sh file ..." - echo "Remove any cruft left behind by pip-compile in the given requirements file(s)." - echo "" - echo "Updates the instructions for re-generating each requirements file." -} - -function clean_file { - FILE_PATH=$1 - TEMP_FILE=${FILE_PATH}.tmp - # Replace the instructions for regenerating the output file. - sed "s/pip-compile --output-file.*/make upgrade/" ${FILE_PATH} > ${TEMP_FILE} - mv ${TEMP_FILE} ${FILE_PATH} -} - -for i in "$@"; do - case ${i} in - -h|--help) - # help or unknown option - show_help - exit 0 - ;; - *) - clean_file ${i} - ;; - esac -done diff --git a/programs/README.md b/programs/README.md index 6864bcccd2..730dce36dd 100644 --- a/programs/README.md +++ b/programs/README.md @@ -10,12 +10,20 @@ Normally you don't need to manually run these scripts to provision the demo cour If you have an existing older devstack installation and want to add the demo program to it, simply run: -``./programs/provision.sh`` + ./programs/provision.sh -And it will set it up for you. This can be run mutiple times safely. +And it will set it up for you. This can be run multiple times safely. ## Recaching If you have an existing devstack with the demo program, but want to recache the programs inside LMS (something you need to do every time you bring the LMS container back up), simply run: -``./programs/provision.sh cache`` \ No newline at end of file + make dev.cache-programs + +To do this while launching a service, run: + + make dev.up.with-programs. + +To make this the default behavior for `dev.up.*`, add the following to `options.local.mk`, creating the file if it does not yet exist: + + ALWAYS_CACHE_PROGRAMS=true diff --git a/programs/discovery.py b/programs/discovery.py index b44fbc7f73..fe8a8c763b 100644 --- a/programs/discovery.py +++ b/programs/discovery.py @@ -40,7 +40,7 @@ # Now, after an ID has been created, connect the program to other models course = Course.objects.get(key='edX+DemoX') -program.courses = [course] +program.courses.set([course]) try: # This run causes run-time exceptions, because it uses old style key. @@ -51,8 +51,8 @@ pass edx_org = Organization.objects.get(key='edX') -program.authoring_organizations = [edx_org] -program.credit_backing_organizations = [edx_org] +program.authoring_organizations.set([edx_org]) +program.credit_backing_organizations.set([edx_org]) # And set up the banner image if not program.banner_image.name: diff --git a/programs/lms.py b/programs/lms.py index 8ec55aee72..d3a3f96877 100644 --- a/programs/lms.py +++ b/programs/lms.py @@ -31,6 +31,6 @@ def set_current_config(cls, args): site=Site.objects.get(domain='example.com'), defaults={ 'enabled': True, - 'values': {'COURSE_CATALOG_API_URL': DISCOVERY_API_URL}, + 'site_values': {'COURSE_CATALOG_API_URL': DISCOVERY_API_URL}, }, ) diff --git a/programs/provision.sh b/programs/provision.sh index 8ce3d1567a..32697100d7 100755 --- a/programs/provision.sh +++ b/programs/provision.sh @@ -1,4 +1,7 @@ -#!/bin/sh +#!/usr/bin/env bash +set -eu -o pipefail +set -x + # # To add programs support, we need to tweak/add certain rows in the database. # We want to go through Django for this (rather than direct db modification), since we have a lot of Python @@ -17,10 +20,10 @@ BASEDIR=$(dirname "$0") # Main items are green, rest is dull grey since they are noisy, but we still might want to see their output, # for error cases and the like. notice() { - SWITCH="\033[" - GREY="${SWITCH}0;37m" + SWITCH='\033[' + GREY="${SWITCH}1;90m" GREEN="${SWITCH}0;32m" - echo "${GREEN}${@}${GREY}" + echo -e "${GREEN}${@}${GREY}" } # We reset color once we're done with the script. @@ -28,7 +31,7 @@ notice() { reset_color() { SWITCH="\033[" NORMAL="${SWITCH}0m" - echo -n "${NORMAL}" + echo -e -n "${NORMAL}" } docker_exec() { @@ -42,21 +45,24 @@ docker_exec() { /edx/app/$app/$repo/manage.py $cmd " - docker-compose exec "$service" bash -c "$CMDS" + docker-compose exec -T "$service" bash -e -c "$CMDS" } provision_ida() { - service=${1} - cmd=${2:-"shell"} + service=$1 + cmd=$2 + shift 2 # Escape double quotes and backticks from the Python PROGRAM_SCRIPT="$(sed -E 's/("|`)/\\\1/g' < "$BASEDIR/$service.py")" cmd="$cmd -c \"$PROGRAM_SCRIPT\"" - docker_exec "$service" "$cmd" "$3" "$4" + docker_exec "$service" "$cmd" "$@" } +trap reset_color 1 2 3 6 15 + if [ "$1" = "lms" -o -z "$1" ]; then notice Adding program support to LMS... provision_ida lms "lms shell" edxapp edx-platform @@ -64,7 +70,10 @@ fi if [ "$1" = "discovery" -o -z "$1" ]; then notice Adding demo program to Discovery... - provision_ida discovery + set +e + # FIXME[bash-e]: Bash scripts should use -e -- but this command fails + provision_ida discovery "shell" + set -e fi if [ "$1" = "cache" -o -z "$1" ]; then diff --git a/provision-analytics-pipeline.sh b/provision-analytics-pipeline.sh deleted file mode 100755 index a866fe3fe6..0000000000 --- a/provision-analytics-pipeline.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env bash - -set -e -set -o pipefail -set -x - -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[0;33m' -NC='\033[0m' # No Color - -if [ -z "$DEVSTACK_WORKSPACE" ]; then - DEVSTACK_WORKSPACE=.. -elif [ ! -d "$DEVSTACK_WORKSPACE" ]; then - echo "Workspace directory $DEVSTACK_WORKSPACE doesn't exist" - exit 1 -fi - -# Bring the mysql & pipeline containers online. -docker-compose $DOCKER_COMPOSE_FILES up -d mysql analyticspipeline - -# Ensure the MySQL server is online and usable -echo "Waiting for MySQL" -until docker exec -i edx.devstack.mysql mysql -uroot -se "SELECT EXISTS(SELECT 1 FROM mysql.user WHERE user = 'root')" &> /dev/null -do - printf "." - sleep 1 -done - -# In the event of a fresh MySQL container, wait a few seconds for the server to restart. -# This can be removed once https://github.com/docker-library/mysql/issues/245 is resolved. -sleep 20 - -# Analytics pipeline has dependency on lms but we only need its db schema & not full lms. So we'll just load their db -# schemas as part of analytics pipeline provisioning. If there is a need of a fully fledged LMS, then provision lms -# by following their documentation. -if [[ ! -z "`docker exec -i edx.devstack.mysql mysql -uroot -se "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME='edxapp'" 2>&1`" ]]; -then - echo -e "${GREEN}LMS DB exists, skipping lms schema load.${NC}" -else - echo -e "${GREEN}LMS DB not found, provisioning lms schema.${NC}" - docker exec -i edx.devstack.mysql mysql -uroot mysql < provision.sql - ./load-db.sh edxapp - docker-compose $DOCKER_COMPOSE_FILES up -d lms studio - docker-compose exec lms bash -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform && NO_PYTHON_UNINSTALL=1 paver install_prereqs' - #Installing prereqs crashes the process - docker-compose restart lms - # Run edxapp migrations first since they are needed for the service users and OAuth clients - docker-compose exec lms bash -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform && paver update_db --settings devstack_docker' -fi - -echo -e "${GREEN}LMS database provisioned successfully...${NC}" -echo -e "${GREEN}Creating databases and users...${NC}" -docker exec -i edx.devstack.mysql mysql -uroot mysql < provision-analytics-pipeline.sql - -# initialize hive metastore -echo -e "${GREEN}Initializing HIVE metastore...${NC}" -docker-compose $DOCKER_COMPOSE_FILES exec analyticspipeline bash -c '/edx/app/hadoop/hive/bin/schematool -dbType mysql -initSchema' - -# materialize hadoop directory structure -echo -e "${GREEN}Initializing Hadoop directory structure...${NC}" - -until curl http://127.0.0.1:50070/jmx?qry=Hadoop:service=NameNode,name=NameNodeStatus|grep -q 'active'; do - printf "Waiting for namenode!" - sleep 5 -done - -sleep 10 # for datanode & other services to activate -echo -e "${GREEN}Namenode is ready!${NC}" - -docker exec -u hadoop -i edx.devstack.analytics_pipeline bash -c 'sudo /edx/app/hadoop/hadoop/bin/hdfs dfs -chown -R hadoop:hadoop hdfs://namenode:8020/; hdfs dfs -mkdir -p hdfs://namenode:8020/edx-analytics-pipeline/{warehouse,marker,manifest,packages} hdfs://namenode:8020/{spark-warehouse,data} hdfs://namenode:8020/tmp/spark-events;hdfs dfs -copyFromLocal -f /edx/app/hadoop/lib/edx-analytics-hadoop-util.jar hdfs://namenode:8020/edx-analytics-pipeline/packages/;' - -docker image prune -f - -echo -e "${GREEN}Analytics pipeline provisioning complete!${NC}" diff --git a/provision-analytics-pipeline.sql b/provision-analytics-pipeline.sql deleted file mode 100644 index e64ec35cc6..0000000000 --- a/provision-analytics-pipeline.sql +++ /dev/null @@ -1,9 +0,0 @@ -CREATE DATABASE IF NOT EXISTS reports; -CREATE DATABASE IF NOT EXISTS edx_hive_metastore; -GRANT ALL PRIVILEGES ON edx_hive_metastore.* TO 'edx_hive'@'%' IDENTIFIED BY 'edx'; -GRANT ALL PRIVILEGES ON `test\_%`.* TO 'edx_hive'@'%' IDENTIFIED BY 'edx'; -GRANT ALL PRIVILEGES ON reports.* TO 'pipeline001'@'%' IDENTIFIED BY 'password'; -GRANT ALL PRIVILEGES ON `acceptance\_%`.* TO 'pipeline001'@'%' IDENTIFIED BY 'password'; -GRANT SELECT ON edxapp.* TO 'read_only'@'%' IDENTIFIED BY 'password'; - -FLUSH PRIVILEGES; \ No newline at end of file diff --git a/provision-analyticsapi.sh b/provision-analyticsapi.sh new file mode 100755 index 0000000000..0e4fffc373 --- /dev/null +++ b/provision-analyticsapi.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +set -eu -o pipefail + +. scripts/colors.sh +set -x + +name=analyticsapi +port=19001 + +docker-compose up -d ${name} + +echo -e "${GREEN}Installing requirements for ${name}...${NC}" +docker-compose exec -T ${name} bash -e -c 'source /edx/app/analytics_api/analytics_api_env && cd /edx/app/analytics_api/analytics_api && make develop' -- ${name} + +echo -e "${GREEN}Running migrations for ${name}...${NC}" +docker-compose exec -T ${name} bash -e -c 'source /edx/app/analytics_api/analytics_api_env && export DJANGO_SETTINGS_MODULE="analyticsdataserver.settings.devstack" && cd /edx/app/analytics_api/analytics_api && make migrate-all' -- ${name} + +echo -e "${GREEN}Creating default user and authentication token for ${name}...${NC}" +docker-compose exec -T ${name} bash -e -c 'source /edx/app/analytics_api/analytics_api_env && cd /edx/app/analytics_api/analytics_api && python manage.py set_api_key edx edx' -- ${name} + +echo -e "${GREEN}Loading test data for ${name}...${NC}" +docker-compose exec -T ${name} bash -e -c 'source /edx/app/analytics_api/analytics_api_env && cd /edx/app/analytics_api/analytics_api && make loaddata' -- ${name} diff --git a/provision-coursegraph.sh b/provision-coursegraph.sh new file mode 100755 index 0000000000..c10cf712cf --- /dev/null +++ b/provision-coursegraph.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +set -eu -o pipefail + +. scripts/colors.sh +set -x + +# Pulling the image will almost always be a no-op, but will be important +# when we bump the version in docker-compose.yml or when Neo4j releases a patch. +# Also, this gives us a chance to refresh the container in case it's gotten into +# a weird state. +echo -e "${GREEN} Ensuring Coursegraph image is up to date...${NC}" +docker-compose rm --force --stop coursegraph +docker-compose pull coursegraph + +echo -e "${GREEN} Starting Coursegraph and CMS...${NC}" +docker-compose up -d coursegraph studio +sleep 10 # Give Neo4j some time to boot up. + +echo -e "${GREEN} Updating CMS courses in Coursegraph...${NC}" +docker-compose exec studio bash -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform/ && ./manage.py cms dump_to_neo4j --host coursegraph.devstack.edx --user neo4j --password edx' + +echo -e "${GREEN} Coursegraph is now up-to-date with CMS!${NC}" diff --git a/provision-credentials.sh b/provision-credentials.sh index 32fccdaf61..77fd1ce02e 100755 --- a/provision-credentials.sh +++ b/provision-credentials.sh @@ -1,4 +1,8 @@ #!/usr/bin/env bash +set -eu -o pipefail + +. scripts/colors.sh +set -x # NOTE (CCB): We do NOT call provision-ida because it expects a virtualenv. # The new images for Credentials do not use virtualenv. @@ -6,23 +10,26 @@ name=credentials port=18150 -docker-compose $DOCKER_COMPOSE_FILES up -d $name +docker-compose up -d $name echo -e "${GREEN}Installing requirements for ${name}...${NC}" -docker exec -t edx.devstack.${name} bash -c 'source /edx/app/credentials/credentials_env && cd /edx/app/credentials/credentials && make requirements && make production-requirements' -- "$name" +docker-compose exec -T ${name} bash -e -c 'source /edx/app/credentials/credentials_env && cd /edx/app/credentials/credentials && make requirements' -- "$name" echo -e "${GREEN}Running migrations for ${name}...${NC}" -docker exec -t edx.devstack.${name} bash -c 'source /edx/app/credentials/credentials_env && cd /edx/app/credentials/credentials && make migrate' -- "$name" +docker-compose exec -T ${name} bash -e -c 'source /edx/app/credentials/credentials_env && cd /edx/app/credentials/credentials && make migrate' -- "$name" echo -e "${GREEN}Creating super-user for ${name}...${NC}" -docker exec -t edx.devstack.${name} bash -c 'source /edx/app/credentials/credentials_env && cd /edx/app/credentials/credentials && echo "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser(\"edx\", \"edx@example.com\", \"edx\") if not User.objects.filter(username=\"edx\").exists() else None" | python /edx/app/$1/$1/manage.py shell' -- "$name" +docker-compose exec -T ${name} bash -e -c 'source /edx/app/credentials/credentials_env && cd /edx/app/credentials/credentials && echo "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser(\"edx\", \"edx@example.com\", \"edx\") if not User.objects.filter(username=\"edx\").exists() else None" | python /edx/app/$1/$1/manage.py shell' -- "$name" echo -e "${GREEN}Configuring site for ${name}...${NC}" -docker exec -t edx.devstack.${name} bash -c 'source /edx/app/credentials/credentials_env && cd /edx/app/credentials/ && ./manage.py create_or_update_site --site-id=1 --site-domain=localhost:18150 --site-name="Open edX" --platform-name="Open edX" --company-name="Open edX" --lms-url-root=http://localhost:18000 --catalog-api-url=http://edx.devstack.discovery:18381/api/v1/ --tos-url=http://localhost:18000/tos --privacy-policy-url=http://localhost:18000/privacy --homepage-url=http://localhost:18000 --certificate-help-url=http://localhost:18000/faq --records-help-url=http://localhost:18000/faq --theme-name=openedx' +docker-compose exec -T ${name} bash -e -c 'source /edx/app/credentials/credentials_env && cd /edx/app/credentials/credentials && ./manage.py create_or_update_site --site-id=1 --site-domain=localhost:18150 --site-name="Open edX" --platform-name="Open edX" --company-name="Open edX" --lms-url-root=http://localhost:18000 --catalog-api-url=http://edx.devstack.discovery:18381/api/v1/ --tos-url=http://localhost:18000/tos --privacy-policy-url=http://localhost:18000/privacy --homepage-url=http://localhost:18000 --certificate-help-url=http://localhost:18000/faq --records-help-url=http://localhost:18000/faq --theme-name=openedx' ./provision-ida-user.sh ${name} ${name} ${port} # Compile static assets last since they are absolutely necessary for all services. This will allow developers to get # started if they do not care about static assets echo -e "${GREEN}Compiling static assets for ${name}...${NC}" -docker exec -t edx.devstack.${name} bash -c ' if ! source /edx/app/credentials/credentials_env && cd /edx/app/credentials/credentials && make static 2>creds_make_static.err; then echo "------- Last 100 lines of stderr"; tail creds_make_static.err -n 100; echo "-------"; fi;' -- "$name" +docker-compose exec -T ${name} bash -e -c ' if ! source /edx/app/credentials/credentials_env && cd /edx/app/credentials/credentials && make static 2>creds_make_static.err; then echo "------- Last 100 lines of stderr"; tail creds_make_static.err -n 100; echo "-------"; fi;' -- "$name" + +# Restart credentials devserver. +make dev.restart-devserver.credentials diff --git a/provision-discovery.sh b/provision-discovery.sh index 2ffec8d1d2..676e78de22 100755 --- a/provision-discovery.sh +++ b/provision-discovery.sh @@ -1,10 +1,20 @@ +#!/usr/bin/env bash # Provisioning script for the discovery service +set -eu -o pipefail +set -x + ./provision-ida.sh discovery discovery 18381 -docker-compose exec discovery bash -c 'rm -rf /edx/var/discovery/*' -docker-compose exec discovery bash -c 'source /edx/app/discovery/discovery_env && python /edx/app/discovery/discovery/manage.py create_or_update_partner --site-id 1 --site-domain localhost:18381 --code edx --name edX --courses-api-url "http://edx.devstack.lms:18000/api/courses/v1/" --ecommerce-api-url "http://edx.devstack.ecommerce:18130/api/v2/" --organizations-api-url "http://edx.devstack.lms:18000/api/organizations/v0/" --oidc-url-root "http://edx.devstack.lms:18000/oauth2" --oidc-key discovery-key --oidc-secret discovery-secret' -docker-compose exec discovery bash -c 'source /edx/app/discovery/discovery_env && python /edx/app/discovery/discovery/manage.py refresh_course_metadata' -docker-compose exec discovery bash -c 'source /edx/app/discovery/discovery_env && python /edx/app/discovery/discovery/manage.py update_index --disable-change-limit' +docker-compose exec -T discovery bash -e -c 'rm -rf /edx/var/discovery/*' +docker-compose exec -T discovery bash -e -c 'source /edx/app/discovery/discovery_env && python /edx/app/discovery/discovery/manage.py create_or_update_partner --site-id 1 --site-domain localhost:18381 --code edx --name edX --courses-api-url "http://edx.devstack.lms:18000/api/courses/v1/" --lms-coursemode-api-url "http://edx.devstack.lms:18000/api/course_modes/v1/" --ecommerce-api-url "http://edx.devstack.ecommerce:18130/api/v2/" --organizations-api-url "http://edx.devstack.lms:18000/api/organizations/v0/" --lms-url "http://edx.devstack.lms:18000/" --studio-url "http://edx.devstack.studio:18010/" --publisher-url "http://edx.devstack.frontend-app-publisher:18400/"' + +set +e +# FIXME[bash-e]: Bash scripts should use -e -- but this script fails +# (after many retries) when trying to talk to ecommerce +docker-compose exec -T discovery bash -e -c 'source /edx/app/discovery/discovery_env && python /edx/app/discovery/discovery/manage.py refresh_course_metadata' +set -e + +docker-compose exec -T discovery bash -e -c 'source /edx/app/discovery/discovery_env && python /edx/app/discovery/discovery/manage.py update_index --disable-change-limit' # Add demo program ./programs/provision.sh discovery diff --git a/provision-e2e.sh b/provision-e2e.sh index 47417df310..aaf2df88f2 100755 --- a/provision-e2e.sh +++ b/provision-e2e.sh @@ -1,5 +1,6 @@ -set -e -set -o pipefail +#!/usr/bin/env bash + +set -eu -o pipefail set -x if [ -z "$DEVSTACK_WORKSPACE" ]; then @@ -10,14 +11,14 @@ elif [ ! -d "$DEVSTACK_WORKSPACE" ]; then fi # Copy the test course tarball into the studio container -docker cp ${DEVSTACK_WORKSPACE}/edx-e2e-tests/upload_files/course.tar.gz edx.devstack.studio:/tmp/ +docker cp "${DEVSTACK_WORKSPACE}/edx-e2e-tests/upload_files/course.tar.gz" "$(make --silent --no-print-directory dev.print-container.studio)":/tmp/ # Extract the test course tarball -docker-compose exec studio bash -c 'cd /tmp && tar xzf course.tar.gz' +docker-compose exec -T studio bash -e -c 'cd /tmp && tar xzf course.tar.gz' # Import the course content -docker-compose exec studio bash -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py cms --settings=devstack_docker import /tmp course' +docker-compose exec -T studio bash -e -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py cms --settings=devstack_docker import /tmp course' # Clean up the temp files -docker-compose exec studio bash -c 'rm /tmp/course.tar.gz' -docker-compose exec studio bash -c 'rm -r /tmp/course' +docker-compose exec -T studio bash -e -c 'rm /tmp/course.tar.gz' +docker-compose exec -T studio bash -e -c 'rm -r /tmp/course' diff --git a/provision-ecommerce.sh b/provision-ecommerce.sh index b807af9c29..85cda52306 100755 --- a/provision-ecommerce.sh +++ b/provision-ecommerce.sh @@ -1,9 +1,13 @@ +#!/usr/bin/env bash +set -eu -o pipefail +set -x + # Load database dumps for the largest databases to save time ./load-db.sh ecommerce ./provision-ida.sh ecommerce ecommerce 18130 # Configure ecommerce -docker exec -t edx.devstack.ecommerce bash -c 'source /edx/app/ecommerce/ecommerce_env && python /edx/app/ecommerce/ecommerce/manage.py create_or_update_site --site-id=1 --site-domain=localhost:18130 --partner-code=edX --partner-name="Open edX" --lms-url-root=http://edx.devstack.lms:18000 --client-side-payment-processor=cybersource --payment-processors=cybersource,paypal --client-id=ecommerce-key --client-secret=ecommerce-secret --from-email staff@example.com --discovery_api_url=http://edx.devstack.discovery:18381/api/v1/' -docker exec -t edx.devstack.ecommerce bash -c 'source /edx/app/ecommerce/ecommerce_env && python /edx/app/ecommerce/ecommerce/manage.py oscar_populate_countries --initial-only' -docker exec -t edx.devstack.ecommerce bash -c 'source /edx/app/ecommerce/ecommerce_env && python /edx/app/ecommerce/ecommerce/manage.py create_demo_data --partner=edX' +docker-compose exec -T ecommerce bash -e -c 'source /edx/app/ecommerce/ecommerce_env && python /edx/app/ecommerce/ecommerce/manage.py create_or_update_site --site-id=1 --site-domain=localhost:18130 --partner-code=edX --partner-name="Open edX" --lms-url-root=http://edx.devstack.lms:18000 --lms-public-url-root=http://localhost:18000 --client-side-payment-processor=cybersource --payment-processors=cybersource,paypal --sso-client-id=ecommerce-sso-key --sso-client-secret=ecommerce-sso-secret --backend-service-client-id=ecommerce-backend-service-key --backend-service-client-secret=ecommerce-backend-service-secret --from-email staff@example.com --discovery_api_url=http://edx.devstack.discovery:18381/api/v1/ --enable-microfrontend-for-basket-page=1 --payment-microfrontend-url=http://localhost:1998' +docker-compose exec -T ecommerce bash -e -c 'source /edx/app/ecommerce/ecommerce_env && python /edx/app/ecommerce/ecommerce/manage.py oscar_populate_countries --initial-only' +docker-compose exec -T ecommerce bash -e -c 'source /edx/app/ecommerce/ecommerce_env && python /edx/app/ecommerce/ecommerce/manage.py create_demo_data --partner=edX' diff --git a/provision-forum.sh b/provision-forum.sh index 793a799b73..d943e5e1f7 100755 --- a/provision-forum.sh +++ b/provision-forum.sh @@ -1,6 +1,6 @@ -set -e -set -o pipefail +#!/usr/bin/env bash +set -eu -o pipefail set -x -docker-compose $DOCKER_COMPOSE_FILES up -d forum -docker-compose exec forum bash -c 'source /edx/app/forum/ruby_env && cd /edx/app/forum/cs_comments_service && bundle install --deployment --path /edx/app/forum/.gem/' +docker-compose up -d forum +docker-compose exec -T forum bash -e -c 'source /edx/app/forum/ruby_env && cd /edx/app/forum/cs_comments_service && bundle install --deployment --path /edx/app/forum/.gem/' diff --git a/provision-ida-user.sh b/provision-ida-user.sh index a18ce1d301..ccc2ecf0dc 100755 --- a/provision-ida-user.sh +++ b/provision-ida-user.sh @@ -1,9 +1,20 @@ +#!/usr/bin/env bash +set -eu -o pipefail +set -x + #This script depends on the LMS being up! +. scripts/colors.sh + app_name=$1 client_name=$2 client_port=$3 -echo -e "${GREEN}Creating service user and OAuth client for ${app_name}...${NC}" -docker exec -t edx.devstack.lms bash -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker manage_user $1_worker $1_worker@example.com --staff --superuser' -- "$app_name" -docker exec -t edx.devstack.lms bash -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker create_oauth2_client "http://localhost:$3" "http://localhost:$3/complete/edx-oidc/" confidential --client_name $2 --client_id "$1-key" --client_secret "$1-secret" --trusted --logout_uri "http://localhost:$3/logout/" --username $1_worker' -- "$app_name" "$client_name" "$client_port" +echo -e "${GREEN}Creating service user and OAuth2 applications for ${app_name}...${NC}" + +# Create the service user. +docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker manage_user $1_worker $1_worker@example.com --staff --superuser' -- "$app_name" + +# Create the DOT applications - one for single sign-on and one for backend service IDA-to-IDA authentication. +docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker create_dot_application --grant-type authorization-code --skip-authorization --redirect-uris "http://localhost:$3/complete/edx-oauth2/" --client-id "$1-sso-key" --client-secret "$1-sso-secret" --scopes "user_id" $1-sso $1_worker' -- "$app_name" "$client_name" "$client_port" +docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker create_dot_application --grant-type client-credentials --client-id "$1-backend-service-key" --client-secret "$1-backend-service-secret" $1-backend-service $1_worker' -- "$app_name" "$client_name" "$client_port" diff --git a/provision-ida.sh b/provision-ida.sh index 02206bd735..4fb0db27be 100755 --- a/provision-ida.sh +++ b/provision-ida.sh @@ -1,21 +1,28 @@ +#!/usr/bin/env bash +set -eu -o pipefail + +. scripts/colors.sh +set -x + app_name=$1 # The name of the IDA application, i.e. /edx/app/ client_name=$2 # The name of the Oauth client stored in the edxapp DB. client_port=$3 # The port corresponding to this IDA service in devstack. +container_name=${4:-$1} # (Optional) The name of the container. If missing, will use app_name. -docker-compose $DOCKER_COMPOSE_FILES up -d $app_name +docker-compose up -d $app_name echo -e "${GREEN}Installing requirements for ${app_name}...${NC}" -docker exec -t edx.devstack.${app_name} bash -c 'source /edx/app/$1/$1_env && cd /edx/app/$1/$1/ && make requirements' -- "$app_name" +docker-compose exec -T ${container_name} bash -e -c 'source /edx/app/$1/$1_env && cd /edx/app/$1/$1/ && make requirements' -- "$app_name" echo -e "${GREEN}Running migrations for ${app_name}...${NC}" -docker exec -t edx.devstack.${app_name} bash -c 'source /edx/app/$1/$1_env && cd /edx/app/$1/$1/ && make migrate' -- "$app_name" +docker-compose exec -T ${container_name} bash -e -c 'source /edx/app/$1/$1_env && cd /edx/app/$1/$1/ && make migrate' -- "$app_name" echo -e "${GREEN}Creating super-user for ${app_name}...${NC}" -docker exec -t edx.devstack.${app_name} bash -c 'source /edx/app/$1/$1_env && echo "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser(\"edx\", \"edx@example.com\", \"edx\") if not User.objects.filter(username=\"edx\").exists() else None" | python /edx/app/$1/$1/manage.py shell' -- "$app_name" +docker-compose exec -T ${container_name} bash -e -c 'source /edx/app/$1/$1_env && echo "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser(\"edx\", \"edx@example.com\", \"edx\") if not User.objects.filter(username=\"edx\").exists() else None" | python /edx/app/$1/$1/manage.py shell' -- "$app_name" ./provision-ida-user.sh $app_name $client_name $client_port # Compile static assets last since they are absolutely necessary for all services. This will allow developers to get # started if they do not care about static assets echo -e "${GREEN}Compiling static assets for ${app_name}...${NC}" -docker exec -t edx.devstack.${app_name} bash -c 'source /edx/app/$1/$1_env && cd /edx/app/$1/$1/ && make static' -- "$app_name" +docker-compose exec -T ${container_name} bash -e -c 'source /edx/app/$1/$1_env && cd /edx/app/$1/$1/ && make static' -- "$app_name" diff --git a/provision-insights.sh b/provision-insights.sh new file mode 100755 index 0000000000..52b1581f0b --- /dev/null +++ b/provision-insights.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +set -eu -o pipefail + +. scripts/colors.sh +set -x + +name=insights +port=18110 + +docker-compose up -d insights + +echo -e "${GREEN}Installing requirements for ${name}...${NC}" +docker-compose exec -T ${name} bash -e -c 'source /edx/app/insights/insights_env && cd /edx/app/insights/insights && make develop' -- ${name} + +# # Install Insights npm dependencies +docker-compose exec -T ${name} bash -e -c 'source /edx/app/insights/insights_env && cd /edx/app/insights/insights/ && npm install && ./npm-post-install.sh' + +echo -e "${GREEN}Running migrations for ${name}...${NC}" +docker-compose exec -T ${name} bash -e -c 'source /edx/app/insights/insights_env && export DJANGO_SETTINGS_MODULE="analytics_dashboard.settings.devstack" && cd /edx/app/insights/insights && make migrate' -- ${name} + +./provision-ida-user.sh ${name} ${name} ${port} + +# Compile static assets last since they are absolutely necessary for all services. This will allow developers to get +# started if they do not care about static assets +echo -e "${GREEN}Compiling static assets for ${name}...${NC}" +docker-compose exec -T ${name} bash -e -c 'source /edx/app/insights/insights_env && cd /edx/app/insights/insights && make static' -- "$name" diff --git a/provision-lms.sh b/provision-lms.sh index 3b7439a06d..d85bed2e6b 100755 --- a/provision-lms.sh +++ b/provision-lms.sh @@ -1,47 +1,93 @@ -set -e -set -o pipefail +#!/usr/bin/env bash +set -eu -o pipefail set -x apps=( lms studio ) +studio_port=18010 + # Load database dumps for the largest databases to save time ./load-db.sh edxapp ./load-db.sh edxapp_csmh # Bring edxapp containers online for app in "${apps[@]}"; do - docker-compose $DOCKER_COMPOSE_FILES up -d $app + docker-compose up -d $app done -docker-compose exec lms bash -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform && NO_PYTHON_UNINSTALL=1 paver install_prereqs' +# install git for both LMS and Studio +for app in "${apps[@]}"; do + docker-compose exec -T $app bash -e -c 'apt-get update && apt-get -y install --no-install-recommends git' -#Installing prereqs crashes the process -docker-compose restart lms + docker-compose exec -T $app bash -e -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform && NO_PYTHON_UNINSTALL=1 paver install_prereqs' + + #Installing prereqs crashes the process + docker-compose restart $app +done # Run edxapp migrations first since they are needed for the service users and OAuth clients -docker-compose exec lms bash -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform && paver update_db --settings devstack_docker' +# docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform && paver update_db --settings devstack_docker' + +docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && /edx/app/edxapp/venvs/edxapp/bin/python /edx/app/edxapp/edx-platform/manage.py lms showmigrations --database default --traceback --pythonpath=. --settings devstack_docker' +docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && /edx/app/edxapp/venvs/edxapp/bin/python /edx/app/edxapp/edx-platform/manage.py lms migrate --database default --noinput --traceback --pythonpath=. --settings devstack_docker' +docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && /edx/app/edxapp/venvs/edxapp/bin/python /edx/app/edxapp/edx-platform/manage.py lms showmigrations --database student_module_history --traceback --pythonpath=. --settings devstack_docker' +docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && /edx/app/edxapp/venvs/edxapp/bin/python /edx/app/edxapp/edx-platform/manage.py lms migrate --database student_module_history --noinput --traceback --pythonpath=. --settings devstack_docker' + +docker-compose exec -T studio bash -e -c 'source /edx/app/edxapp/edxapp_env && /edx/app/edxapp/venvs/edxapp/bin/python /edx/app/edxapp/edx-platform/manage.py cms showmigrations --database default --traceback --pythonpath=. --settings devstack_docker' +docker-compose exec -T studio bash -e -c 'source /edx/app/edxapp/edxapp_env && /edx/app/edxapp/venvs/edxapp/bin/python /edx/app/edxapp/edx-platform/manage.py cms migrate --database default --noinput --traceback --pythonpath=. --settings devstack_docker' +docker-compose exec -T studio bash -e -c 'source /edx/app/edxapp/edxapp_env && /edx/app/edxapp/venvs/edxapp/bin/python /edx/app/edxapp/edx-platform/manage.py cms showmigrations --database student_module_history --traceback --pythonpath=. --settings devstack_docker' +docker-compose exec -T studio bash -e -c 'source /edx/app/edxapp/edxapp_env && /edx/app/edxapp/venvs/edxapp/bin/python /edx/app/edxapp/edx-platform/manage.py cms migrate --database student_module_history --noinput --traceback --pythonpath=. --settings devstack_docker' # Create a superuser for edxapp -docker-compose exec lms bash -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker manage_user edx edx@example.com --superuser --staff' -docker-compose exec lms bash -c 'source /edx/app/edxapp/edxapp_env && echo "from django.contrib.auth import get_user_model; User = get_user_model(); user = User.objects.get(username=\"edx\"); user.set_password(\"edx\"); user.save()" | python /edx/app/edxapp/edx-platform/manage.py lms shell --settings=devstack_docker' +docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker manage_user edx edx@example.com --superuser --staff' +docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && echo "from django.contrib.auth import get_user_model; User = get_user_model(); user = User.objects.get(username=\"edx\"); user.set_password(\"edx\"); user.save()" | python /edx/app/edxapp/edx-platform/manage.py lms shell --settings=devstack_docker' -# Create an enterprise service user for edxapp -docker-compose exec lms bash -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker manage_user enterprise_worker enterprise_worker@example.com' +# Create an enterprise service user for edxapp and give them appropriate permissions +./enterprise/provision.sh # Enable the LMS-E-Commerce integration -docker-compose exec lms bash -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker configure_commerce' +docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker configure_commerce' # Create demo course and users -docker-compose exec lms bash -c '/edx/app/edx_ansible/venvs/edx_ansible/bin/ansible-playbook /edx/app/edx_ansible/edx_ansible/playbooks/demo.yml -v -c local -i "127.0.0.1," --extra-vars="COMMON_EDXAPP_SETTINGS=devstack_docker"' +#docker-compose exec -T lms bash -e -c '/edx/app/edx_ansible/venvs/edx_ansible/bin/ansible-playbook /edx/app/edx_ansible/edx_ansible/playbooks/demo.yml -v -c local -i "127.0.0.1," --extra-vars="COMMON_EDXAPP_SETTINGS=devstack_docker"' +if [[ ${DEVSTACK_SKIP_DEMO-false} == "true" ]] +then + echo "Skipping import of demo course. DEVSTACK_SKIP_DEMO is set to true" +else + docker-compose exec -T lms bash -e -c 'git clone https://github.com/openedx/edx-demo-course.git /tmp/edx-demo-course' + docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py cms --settings=devstack_docker import /edx/var/edxapp/data /tmp/edx-demo-course && rm -rf /tmp/edx-demo-course' + # Seed forums for the demo course + docker-compose exec -T lms bash -e -c "source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker seed_permissions_roles course-v1:edX+DemoX+Demo_Course" +fi + +demo_hashed_password='pbkdf2_sha256$20000$TjE34FJjc3vv$0B7GUmH8RwrOc/BvMoxjb5j8EgnWTt3sxorDANeF7Qw=' +for user in honor audit verified staff ; do + email="$user@example.com" + # Set staff flag for staff user + if [[ $user == "staff" ]] ; then + docker-compose exec -T lms bash -e -c "source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker --service-variant lms manage_user $user $email --initial-password-hash '$demo_hashed_password' --staff" + else + docker-compose exec -T lms bash -e -c "source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker --service-variant lms manage_user $user $email --initial-password-hash '$demo_hashed_password'" + fi + if [[ "${DEVSTACK_SKIP_DEMO-false}" != "true" ]] + then + # Enroll users in the demo course + docker-compose exec -T lms bash -e -c "source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker --service-variant lms enroll_user_in_course -e $email -c course-v1:edX+DemoX+Demo_Course" + fi +done + # Fix missing vendor file by clearing the cache -docker-compose exec lms bash -c 'rm /edx/app/edxapp/edx-platform/.prereqs_cache/Node_prereqs.sha1' +docker-compose exec -T lms bash -e -c 'rm /edx/app/edxapp/edx-platform/.prereqs_cache/Node_prereqs.sha1' # Create static assets for both LMS and Studio for app in "${apps[@]}"; do - docker-compose exec $app bash -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform && paver update_assets --settings devstack_docker' + docker-compose exec -T $app bash -e -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform && paver update_assets --settings devstack_docker' done +# Allow LMS SSO for Studio +./provision-ida-user.sh studio studio "$studio_port" + # Provision a retirement service account user ./provision-retirement-user.sh retirement retirement_service_worker diff --git a/provision-notes.sh b/provision-notes.sh index 4a2c924ab4..9202cb50d4 100755 --- a/provision-notes.sh +++ b/provision-notes.sh @@ -1,8 +1,13 @@ +#!/usr/bin/env bash # Provisioning script for the notes service +set -eu -o pipefail + +. scripts/colors.sh +set -x # Common provisioning tasks for IDAs, including requirements, migrations, oauth client creation, etc. -./provision-ida.sh edx_notes_api edx-notes 18120 +./provision-ida.sh edx_notes_api edx-notes 18120 edx_notes_api # This will build the elasticsearch index for notes. echo -e "${GREEN}Creating indexes for edx_notes_api...${NC}" -docker exec -t edx.devstack.edx_notes_api bash -c 'source /edx/app/$1/$1_env && cd /edx/app/$1/$1/ && python manage.py rebuild_index --noinput' -- edx_notes_api +docker-compose exec -T edx_notes_api bash -e -c 'source /edx/app/$1/$1_env && cd /edx/app/$1/$1/ && python manage.py search_index --rebuild -f' -- edx_notes_api diff --git a/provision-registrar.sh b/provision-registrar.sh new file mode 100755 index 0000000000..4d695c747b --- /dev/null +++ b/provision-registrar.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +set -eu -o pipefail + +. scripts/colors.sh +set -x + +name=registrar +port=18734 + +docker-compose up -d $name + +echo -e "${GREEN}Installing requirements for ${name}...${NC}" +docker-compose exec -T ${name} bash -e -c 'cd /edx/app/registrar && make requirements' -- "$name" + +echo -e "${GREEN}Running migrations for ${name}...${NC}" +docker-compose exec -T ${name} bash -e -c 'cd /edx/app/registrar && make migrate' -- "$name" + +echo -e "${GREEN}Creating super-user for ${name}...${NC}" +docker-compose exec -T ${name} bash -e -c 'cd /edx/app/registrar && make createsuperuser' -- "$name" + +./provision-ida-user.sh ${name} ${name} ${port} + +# Compile static assets last since they are absolutely necessary for all services. This will allow developers to get +# started if they do not care about static assets +echo -e "${GREEN}Compiling static assets for ${name}...${NC}" +docker-compose exec -T ${name} bash -e -c ' if ! cd /edx/app/registrar && make static 2>registrar_make_static.err; then echo "------- Last 100 lines of stderr"; tail regsitrar_make_static.err -n 100; echo "-------"; fi;' -- "$name" diff --git a/provision-retirement-user.sh b/provision-retirement-user.sh index b3a5dac2e3..2df6d814ee 100755 --- a/provision-retirement-user.sh +++ b/provision-retirement-user.sh @@ -1,8 +1,13 @@ +#!/usr/bin/env bash #This script depends on the LMS being up! +set -eu -o pipefail + +. scripts/colors.sh +set -x app_name=$1 user_name=$2 echo -e "${GREEN}Creating retirement service user ${user_name} and DOT Application ${app_name}...${NC}" -docker exec -t edx.devstack.lms bash -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker manage_user $1 $1@example.com --staff --superuser' -- "$user_name" -docker exec -t edx.devstack.lms bash -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker create_dot_application $1 $2' -- "$app_name" "$user_name" +docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker manage_user $1 $1@example.com --staff --superuser' -- "$user_name" +docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker create_dot_application $1 $2' -- "$app_name" "$user_name" diff --git a/provision-xqueue.sh b/provision-xqueue.sh index 36e55579bb..8fde5dafce 100755 --- a/provision-xqueue.sh +++ b/provision-xqueue.sh @@ -1,24 +1,13 @@ -set -e -set -o pipefail +#!/usr/bin/env bash +set -eu -o pipefail set -x # Bring up XQueue, we don't need the consumer for provisioning -docker-compose $DOCKER_COMPOSE_FILES up -d xqueue +docker-compose up -d xqueue -# This works in case you provision xqueue without having other services up -# Bring the database online. -docker-compose up -d mysql - -# Ensure the MySQL server is online and usable -echo "Waiting for MySQL" -until docker exec -i edx.devstack.mysql mysql -uroot -se "SELECT EXISTS(SELECT 1 FROM mysql.user WHERE user = 'root')" &> /dev/null -do - printf "." - sleep 1 -done - -docker exec -i edx.devstack.mysql mysql -uroot mysql < provision-xqueue.sql +# Update dependencies +docker-compose exec -T xqueue bash -e -c 'source /edx/app/xqueue/xqueue_env && cd /edx/app/xqueue/xqueue && make requirements' # Run migrations -docker-compose $DOCKER_COMPOSE_FILES exec xqueue bash -c 'source /edx/app/xqueue/xqueue_env && cd /edx/app/xqueue/xqueue && python manage.py migrate' +docker-compose exec -T xqueue bash -e -c 'source /edx/app/xqueue/xqueue_env && cd /edx/app/xqueue/xqueue && python manage.py migrate' # Add users that graders use to fetch data, there's one default user in Ansible which is part of our settings -docker-compose $DOCKER_COMPOSE_FILES exec xqueue bash -c 'source /edx/app/xqueue/xqueue_env && cd /edx/app/xqueue/xqueue && python manage.py update_users' +docker-compose exec -T xqueue bash -e -c 'source /edx/app/xqueue/xqueue_env && cd /edx/app/xqueue/xqueue && python manage.py update_users' diff --git a/provision-xqueue.sql b/provision-xqueue.sql deleted file mode 100644 index 88ae993e20..0000000000 --- a/provision-xqueue.sql +++ /dev/null @@ -1,4 +0,0 @@ -CREATE DATABASE IF NOT EXISTS xqueue; -GRANT ALL ON xqueue.* TO 'xqueue001'@'%' IDENTIFIED BY 'password'; - -FLUSH PRIVILEGES; diff --git a/provision.sh b/provision.sh index 8324ff18dc..86932ca331 100755 --- a/provision.sh +++ b/provision.sh @@ -1,53 +1,183 @@ #!/usr/bin/env bash -# This script will provision all of the services. Each service will be setup in the following manner: +# This script will provision the services specified in the argument list, +# or all services if no arguments are provided. # +# Non-existant services will be ignored. +# Specifying services more than once will cause them to be provisioned more +# than once. +# +# To allow services to be passed in through a Makefile target, +# services can be plus-sign-separated as well as space separated. +# +# Service(s) will generally be setup in the following manner +# (but refer to individual ./provision-{service} scripts to be sure): # 1. Migrations run, # 2. Tenants—as in multi-tenancy—setup, # 3. Service users and OAuth clients setup in LMS, # 4. Static assets compiled/collected. +# +# DEVSTACK DEVELOPERS -- To add a service to provisioning: +# * Create a provision-{service}.sh script for your new service. +# * Add the name of the service to ALL_SERVICES. +# +# Example usages: +# ./provision.sh # Provision all services. +# ./provision.sh lms ecommerce discovery # Provision these three services. +# ./provision.sh lms+ecommerce+discovery # Same as previous command. - -set -e -set -o pipefail +set -eu -o pipefail set -x -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[0;33m' -NC='\033[0m' # No Color +. scripts/colors.sh + +# All provisionable services. +# (Leading and trailing space are necessary for if-checks.) +# The order here is the order we will use when provisioning, even if only a subset +# of services are requested. +# Changing this order may break provisioning. +# For example, Discovery breaks if LMS is not provisioned first. +ALL_SERVICES_IN_ORDER=" \ +lms \ +ecommerce \ +discovery \ +credentials \ +e2e \ +forum \ +notes \ +registrar \ +xqueue \ +coursegraph \ +insights \ +analyticsapi \ + " + +# What should we provision? +if [[ $# -eq 0 ]]; then + requested_services=$ALL_SERVICES_IN_ORDER +else + arg_string=" $* " + # Replace plus signs with spaces in order to allow plus-sign-separated + # services in addition to space-separated services. + requested_services="${arg_string//+/ }" +fi + +# Returns whether first arg contains second arg as substring. +is_substring() { + local str="$1" + local substr="$2" + if [[ "$str" == *" ${substr} "* ]]; then + return 0 # Note that '0' means 'success' (i.e., true) in bash. + else + return 1 + fi +} + +# Returns whether we need to boot mongo, +# based on the space-separated list of services passed in the first argument. +needs_mongo() { + local services="$1" + if is_substring "$services" lms || is_substring "$services" forum; then + return 0 + else + return 1 + fi +} + +# Validate user input, building up list of services to provision. +to_provision=" " +for serv in $requested_services; do + case "$serv" in + studio) + echo -e "${YELLOW}Studio is provisioned alongside LMS.\nPass 'lms' as an argument to ensure that Studio is provisioned.${NC}" + continue + ;; + edx_notes_api) + # Treat 'edx_notes_api' as an alias for 'notes'. + service="notes" + ;; + *) + service="$serv" + esac + if is_substring "$ALL_SERVICES_IN_ORDER" "$service"; then + if ! is_substring "$to_provision" "$service"; then + to_provision="${to_provision}${service} " + fi + else + echo -e "${YELLOW}Service '${service}' either doesn't exist or isn't provisionable.${NC}" + fi +done + +# Order the services based on $ALL_SERVICES_IN_ORDER. +to_provision_ordered=" " +for ordered_service in $ALL_SERVICES_IN_ORDER; do + if is_substring "$to_provision" "$ordered_service"; then + to_provision_ordered="${to_provision_ordered}${ordered_service} " + fi +done + +if [[ "$to_provision_ordered" = " " ]]; then + echo -e "${YELLOW}Nothing to provision; will exit.${NC}" + exit 0 +fi +echo -e "${GREEN}Will provision the following:\n ${to_provision_ordered}${NC}" # Bring the databases online. -docker-compose up -d mysql mongo +docker-compose up -d mysql57 +if needs_mongo "$to_provision_ordered"; then + docker-compose up -d mongo +fi # Ensure the MySQL server is online and usable -echo "Waiting for MySQL" -until docker exec -i edx.devstack.mysql mysql -uroot -se "SELECT EXISTS(SELECT 1 FROM mysql.user WHERE user = 'root')" &> /dev/null +echo "${GREEN}Waiting for MySQL 5.7.${NC}" +until docker-compose exec -T mysql57 bash -e -c "mysql -uroot -se \"SELECT EXISTS(SELECT 1 FROM mysql.user WHERE user = 'root')\"" &> /dev/null do printf "." sleep 1 done # In the event of a fresh MySQL container, wait a few seconds for the server to restart -# This can be removed once https://github.com/docker-library/mysql/issues/245 is resolved. -sleep 20 +# See https://github.com/docker-library/mysql/issues/245 for why this is necessary. +sleep 10 + +echo "${GREEN}Waiting for MySQL 5.7 to restart.${NC}" +until docker-compose exec -T mysql57 bash -e -c "mysql -uroot -se \"SELECT EXISTS(SELECT 1 FROM mysql.user WHERE user = 'root')\"" &> /dev/null +do + printf "." + sleep 1 +done -echo -e "MySQL ready" +echo -e "${GREEN}MySQL ready.${NC}" -echo -e "${GREEN}Creating databases and users...${NC}" -docker exec -i edx.devstack.mysql mysql -uroot mysql < provision.sql -docker exec -i edx.devstack.mongo mongo < mongo-provision.js -./provision-lms.sh +# Ensure that the MySQL databases and users are created for all IDAs. +# (A no-op for databases and users that already exist). +echo -e "${GREEN}Ensuring MySQL 5.7 databases and users exist...${NC}" +docker-compose exec -T mysql57 bash -e -c "mysql -uroot mysql" < provision.sql -# Nothing special needed for studio -docker-compose $DOCKER_COMPOSE_FILES up -d studio -./provision-ecommerce.sh -./provision-discovery.sh -./provision-credentials.sh -./provision-e2e.sh -./provision-forum.sh -./provision-notes.sh +# If necessary, ensure the MongoDB server is online and usable +# and create its users. +if needs_mongo "$to_provision_ordered"; then + echo -e "${GREEN}Waiting for MongoDB...${NC}" + # mongo container and mongo process/shell inside the container + until docker-compose exec -T mongo mongo --eval "db.serverStatus()" &> /dev/null + do + printf "." + sleep 1 + done + echo -e "${GREEN}MongoDB ready.${NC}" + echo -e "${GREEN}Creating MongoDB users...${NC}" + docker-compose exec -T mongo bash -e -c "mongo" < mongo-provision.js +else + echo -e "${GREEN}MongoDB preparation not required; skipping.${NC}" +fi + +# Run the service-specific provisioning script(s) +for service in $to_provision_ordered; do + echo -e "${GREEN} Provisioning ${service}...${NC}" + ./provision-"$service".sh + echo -e "${GREEN} Provisioned ${service}.${NC}" +done docker image prune -f diff --git a/provision.sql b/provision.sql index 60692a4f42..0b672c9986 100644 --- a/provision.sql +++ b/provision.sql @@ -7,15 +7,31 @@ GRANT ALL ON discovery.* TO 'discov001'@'%' IDENTIFIED BY 'password'; CREATE DATABASE IF NOT EXISTS ecommerce; GRANT ALL ON ecommerce.* TO 'ecomm001'@'%' IDENTIFIED BY 'password'; -CREATE DATABASE IF NOT EXISTS edxmktg; -GRANT ALL ON edxmktg.* TO 'edxmktg001'@'%' IDENTIFIED BY 'password'; - CREATE DATABASE IF NOT EXISTS notes; GRANT ALL ON notes.* TO 'notes001'@'%' IDENTIFIED BY 'password'; +CREATE DATABASE IF NOT EXISTS registrar; +GRANT ALL ON registrar.* TO 'registrar001'@'%' IDENTIFIED BY 'password'; + +CREATE DATABASE IF NOT EXISTS xqueue; +GRANT ALL ON xqueue.* TO 'xqueue001'@'%' IDENTIFIED BY 'password'; + CREATE DATABASE IF NOT EXISTS edxapp; CREATE DATABASE IF NOT EXISTS edxapp_csmh; GRANT ALL ON edxapp.* TO 'edxapp001'@'%' IDENTIFIED BY 'password'; GRANT ALL ON edxapp_csmh.* TO 'edxapp001'@'%'; +CREATE DATABASE IF NOT EXISTS `dashboard`; +GRANT ALL ON `dashboard`.* TO 'analytics001'@'%' IDENTIFIED BY 'password'; + +CREATE DATABASE IF NOT EXISTS `analytics-api`; +GRANT ALL ON `analytics-api`.* TO 'analytics001'@'%' IDENTIFIED BY 'password'; + +CREATE DATABASE IF NOT EXISTS `reports`; +GRANT ALL ON `reports`.* TO 'analytics001'@'%' IDENTIFIED BY 'password'; + +CREATE DATABASE IF NOT EXISTS `reports_v1`; +GRANT ALL ON `reports_v1`.* TO 'analytics001'@'%' IDENTIFIED BY 'password'; + + FLUSH PRIVILEGES; diff --git a/repo.sh b/repo.sh index 669979714b..ac7ec56779 100755 --- a/repo.sh +++ b/repo.sh @@ -11,22 +11,71 @@ if [ -z "$DEVSTACK_WORKSPACE" ]; then echo "need to set workspace dir" exit 1 elif [ -d "$DEVSTACK_WORKSPACE" ]; then - cd $DEVSTACK_WORKSPACE + cd "$DEVSTACK_WORKSPACE" else echo "Workspace directory $DEVSTACK_WORKSPACE doesn't exist" exit 1 fi +# When you add new services should add them to both repos and ssh_repos +# (or non_release_repos and non_release_ssh_repos if they are not part +# of Open edX releases). repos=( - "https://github.com/edx/course-discovery.git" - "https://github.com/edx/credentials.git" - "https://github.com/edx/cs_comments_service.git" - "https://github.com/edx/ecommerce.git" + "https://github.com/openedx/course-discovery.git" + "https://github.com/openedx/credentials.git" + "https://github.com/openedx/cs_comments_service.git" + "https://github.com/openedx/ecommerce.git" "https://github.com/edx/edx-e2e-tests.git" - "https://github.com/edx/edx-notes-api.git" - "https://github.com/edx/edx-platform.git" - "https://github.com/edx/xqueue.git" - "https://github.com/edx/edx-analytics-pipeline.git" + "https://github.com/openedx/edx-notes-api.git" + "https://github.com/openedx/edx-platform.git" + "https://github.com/openedx/xqueue.git" + "https://github.com/openedx/edx-analytics-dashboard.git" + "https://github.com/openedx/frontend-app-gradebook.git" + "https://github.com/openedx/frontend-app-payment.git" + "https://github.com/openedx/frontend-app-publisher.git" + "https://github.com/openedx/edx-analytics-dashboard.git" + "https://github.com/openedx/edx-analytics-data-api.git" +) + +non_release_repos=( + "https://github.com/openedx/frontend-app-authn.git" + "https://github.com/openedx/frontend-app-course-authoring.git" + "https://github.com/openedx/frontend-app-learning.git" + "https://github.com/openedx/frontend-app-library-authoring.git" + "https://github.com/openedx/registrar.git" + "https://github.com/openedx/frontend-app-program-console.git" + "https://github.com/openedx/frontend-app-account.git" + "https://github.com/openedx/frontend-app-profile.git" + "https://github.com/edx/frontend-app-ora-grading.git" +) + +ssh_repos=( + "git@github.com:openedx/course-discovery.git" + "git@github.com:openedx/credentials.git" + "git@github.com:openedx/cs_comments_service.git" + "git@github.com:openedx/ecommerce.git" + "git@github.com:edx/edx-e2e-tests.git" + "git@github.com:openedx/edx-notes-api.git" + "git@github.com:openedx/edx-platform.git" + "git@github.com:openedx/xqueue.git" + "git@github.com:openedx/edx-analytics-dashboard.git" + "git@github.com:openedx/frontend-app-gradebook.git" + "git@github.com:openedx/frontend-app-payment.git" + "git@github.com:openedx/frontend-app-publisher.git" + "git@github.com:openedx/edx-analytics-dashboard.git" + "git@github.com:openedx/edx-analytics-data-api.git" +) + +non_release_ssh_repos=( + "git@github.com:openedx/frontend-app-authn.git" + "git@github.com:openedx/frontend-app-course-authoring.git" + "git@github.com:openedx/frontend-app-learning.git" + "git@github.com:openedx/frontend-app-library-authoring.git" + "git@github.com:openedx/registrar.git" + "git@github.com:openedx/frontend-app-program-console.git" + "git@github.com:openedx/frontend-app-account.git" + "git@github.com:openedx/frontend-app-profile.git" + "git@github.com:edx/frontend-app-ora-grading.git" ) private_repos=( @@ -34,13 +83,44 @@ private_repos=( "https://github.com/edx/edx-themes.git" ) -name_pattern=".*edx/(.*).git" +if [ -n "${OPENEDX_RELEASE}" ]; then + OPENEDX_GIT_BRANCH=open-release/${OPENEDX_RELEASE} +else + repos+=("${non_release_repos[@]}") + ssh_repos+=("${non_release_ssh_repos[@]}") +fi + +name_pattern=".*/(.*).git" + +_checkout () +{ + repos_to_checkout=("$@") + + for repo in "${repos_to_checkout[@]}" + do + # Use Bash's regex match operator to capture the name of the repo. + # Results of the match are saved to an array called $BASH_REMATCH. + [[ $repo =~ $name_pattern ]] + name="${BASH_REMATCH[1]}" + + # If a directory exists and it is nonempty, assume the repo has been cloned. + if [ -d "$name" ] && [ -n "$(ls -A "$name" 2>/dev/null)" ]; then + cd "$name" + _checkout_and_update_branch + cd .. + fi + done +} + +checkout () +{ + _checkout "${repos[@]}" +} _clone () { - # for repo in ${repos[*]} - repos_to_clone=("$@") + repos_to_clone=("$@") for repo in "${repos_to_clone[@]}" do # Use Bash's regex match operator to capture the name of the repo. @@ -48,25 +128,62 @@ _clone () [[ $repo =~ $name_pattern ]] name="${BASH_REMATCH[1]}" - # If a directory exists and it is nonempty, assume the repo has been checked out. - if [ -d "$name" -a -n "$(ls -A "$name" 2>/dev/null)" ]; then - printf "The [%s] repo is already checked out. Continuing.\n" $name + # If a directory exists and it is nonempty, assume the repo has been checked out + # and only make sure it's on the required branch + if [ -d "$name" ] && [ -n "$(ls -A "$name" 2>/dev/null)" ]; then + if [ ! -d "$name/.git" ]; then + printf "ERROR: [%s] exists but is not a git repo.\n" "$name" + exit 1 + fi + printf "The [%s] repo is already checked out. Checking for updates.\n" "$name" + cd "${DEVSTACK_WORKSPACE}/${name}" + _checkout_and_update_branch + cd .. else + if [ -n "${OPENEDX_GIT_BRANCH:-}" ]; then + CLONE_BRANCH="-b ${OPENEDX_GIT_BRANCH}" + else + CLONE_BRANCH="" + fi if [ "${SHALLOW_CLONE}" == "1" ]; then - git clone --depth=1 $repo + git clone ${CLONE_BRANCH} -c core.symlinks=true --depth=1 "${repo}" else - git clone $repo + git clone ${CLONE_BRANCH} -c core.symlinks=true "${repo}" fi fi done cd - &> /dev/null } +_checkout_and_update_branch () +{ + GIT_SYMBOLIC_REF="$(git symbolic-ref HEAD 2>/dev/null)" + BRANCH_NAME=${GIT_SYMBOLIC_REF##refs/heads/} + if [ -n "${OPENEDX_GIT_BRANCH}" ]; then + CHECKOUT_BRANCH=${OPENEDX_GIT_BRANCH} + else + CHECKOUT_BRANCH=$(git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@') + fi + echo "Checking out branch ${CHECKOUT_BRANCH}" + if [ "${BRANCH_NAME}" == "${CHECKOUT_BRANCH}" ]; then + git pull origin ${CHECKOUT_BRANCH} + else + git fetch origin ${CHECKOUT_BRANCH}:${CHECKOUT_BRANCH} + git checkout ${CHECKOUT_BRANCH} + fi + find . -name '*.pyc' -not -path './.git/*' -delete +} + clone () { _clone "${repos[@]}" } +clone_ssh () +{ + _clone "${ssh_repos[@]}" +} + clone_private () { _clone "${private_repos[@]}" @@ -74,19 +191,38 @@ clone_private () reset () { - currDir=$(pwd) + read -p "This will switch to the default branch and pull changes in your local git checkouts. Would you like to proceed? [y/n] " -r + if [[ ! $REPLY =~ ^[Yy]$ ]]; then + echo "Cancelling." + exit 1 + fi + for repo in ${repos[*]} do [[ $repo =~ $name_pattern ]] name="${BASH_REMATCH[1]}" if [ -d "$name" ]; then - cd $name;git reset --hard HEAD;git checkout master;git reset --hard origin/master;git pull;cd "$currDir" + DEFAULT_BRANCH=$(cd ${name}; git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@') + # Try to switch branch and pull, but fail if there are uncommitted changes. + if (cd "$name"; git checkout -q ${DEFAULT_BRANCH} && git pull -q --ff-only); + then + # Echo untracked files to simplify debugging and make it easier to see that resetting does not remove everything + untracked_files="$(cd ${name} && git ls-files --others --exclude-standard)" + if [[ $untracked_files ]]; + then + echo "The following untracked files are in ${name} repository:" + echo "$untracked_files" + fi + else + echo >&2 "Failed to reset $name repo. Exiting." + echo >&2 "Please go to the repo and clean up any issues that are keeping 'git checkout $DEFAULT_BRANCH' and 'git pull' from working." + exit 1 + fi else - printf "The [%s] repo is not cloned. Continuing.\n" $name + printf "The [%s] repo is not cloned. Skipping.\n" "$name" fi done - cd - &> /dev/null } status () @@ -98,24 +234,25 @@ status () name="${BASH_REMATCH[1]}" if [ -d "$name" ]; then - printf "\nGit status for [%s]:\n" $name - cd $name;git status;cd "$currDir" + printf "\nGit status for [%s]:\n" "$name" + cd "$name";git status;cd "$currDir" else - printf "The [%s] repo is not cloned. Continuing.\n" $name + printf "The [%s] repo is not cloned. Skipping.\n" "$name" fi done cd - &> /dev/null } -if [ "$1" == "clone" ]; then +if [ "$1" == "checkout" ]; then + checkout +elif [ "$1" == "clone" ]; then clone +elif [ "$1" == "clone_ssh" ]; then + clone_ssh elif [ "$1" == "whitelabel" ]; then clone_private elif [ "$1" == "reset" ]; then - read -p "This will override any uncommited changes in your local git checkouts. Would you like to proceed? [y/n] " -r - if [[ $REPLY =~ ^[Yy]$ ]]; then - reset - fi + reset elif [ "$1" == "status" ]; then status fi diff --git a/requirements/base.in b/requirements/base.in index bb47d04a85..8fce5cc217 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -1,2 +1,4 @@ -docker-compose>=1.9.0,<2.0.0 -functools32 ; python_version == "2.7" # via jsonschema +-c constraints.txt + +docker-compose # For launching the devstack Docker containers +PyYAML # For parsing configuration files while generating offline installers diff --git a/requirements/base.txt b/requirements/base.txt index b5bde361fe..f7517f1859 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,26 +1,72 @@ # -# This file is autogenerated by pip-compile -# To update, run: +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: # # make upgrade # -backports.ssl-match-hostname==3.5.0.1 # via docker, docker-compose -cached-property==1.4.2 # via docker-compose -certifi==2018.4.16 # via requests -chardet==3.0.4 # via requests -docker-compose==1.21.2 -docker-pycreds==0.2.3 # via docker -docker==3.3.0 # via docker-compose -dockerpty==0.4.1 # via docker-compose -docopt==0.6.2 # via docker-compose -enum34==1.1.6 # via docker-compose -functools32==3.2.3.post2 ; python_version == "2.7" -idna==2.6 # via requests -ipaddress==1.0.22 # via docker, docker-compose -jsonschema==2.6.0 # via docker-compose -pyyaml==3.12 # via docker-compose -requests==2.18.4 # via docker, docker-compose -six==1.11.0 # via docker, docker-compose, docker-pycreds, dockerpty, websocket-client -texttable==0.9.1 # via docker-compose -urllib3==1.22 # via requests -websocket-client==0.47.0 # via docker, docker-compose +attrs==22.2.0 + # via jsonschema +bcrypt==4.0.1 + # via paramiko +certifi==2022.12.7 + # via requests +cffi==1.15.1 + # via + # cryptography + # pynacl +charset-normalizer==3.0.1 + # via requests +cryptography==39.0.1 + # via paramiko +distro==1.8.0 + # via docker-compose +docker[ssh]==6.0.1 + # via docker-compose +docker-compose==1.29.2 + # via -r requirements/base.in +dockerpty==0.4.1 + # via docker-compose +docopt==0.6.2 + # via docker-compose +idna==3.4 + # via requests +jsonschema==3.2.0 + # via docker-compose +packaging==23.0 + # via docker +paramiko==3.0.0 + # via docker +pycparser==2.21 + # via cffi +pynacl==1.5.0 + # via paramiko +pyrsistent==0.19.3 + # via jsonschema +python-dotenv==0.21.1 + # via docker-compose +pyyaml==5.4.1 + # via + # -r requirements/base.in + # docker-compose +requests==2.28.2 + # via + # docker + # docker-compose +six==1.16.0 + # via + # dockerpty + # jsonschema + # websocket-client +texttable==1.6.7 + # via docker-compose +urllib3==1.26.14 + # via + # docker + # requests +websocket-client==0.59.0 + # via + # docker + # docker-compose + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/constraints.txt b/requirements/constraints.txt new file mode 100644 index 0000000000..d91704bb51 --- /dev/null +++ b/requirements/constraints.txt @@ -0,0 +1,12 @@ +# Version constraints for pip-installation. +# +# This file doesn't install any packages. It specifies version constraints +# that will be applied if a package is needed. +# +# When pinning something here, please provide an explanation of why. Ideally, +# link to other information that will help people in the future to remove the +# pin when possible. Writing an issue against the offending project and +# linking to it here is good. + +# Common constraints for edx repos +-c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt diff --git a/requirements/dev.in b/requirements/dev.in new file mode 100644 index 0000000000..26c282d439 --- /dev/null +++ b/requirements/dev.in @@ -0,0 +1,9 @@ +# Additional requirements for development of this application +-c constraints.txt + +-r pip-tools.txt # pip-tools and its dependencies, for managing requirements files +-r base.txt # Core dependencies for this package +-r test.txt # Dependencies required for running tests + +tox # Virtualenv management for tests +tox-battery # Makes tox aware of requirements file changes diff --git a/requirements/dev.txt b/requirements/dev.txt new file mode 100644 index 0000000000..58a6a7094a --- /dev/null +++ b/requirements/dev.txt @@ -0,0 +1,212 @@ +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# make upgrade +# +attrs==22.2.0 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # jsonschema + # pytest +bcrypt==4.0.1 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # paramiko +build==0.10.0 + # via + # -r requirements/pip-tools.txt + # pip-tools +certifi==2022.12.7 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # requests +cffi==1.15.1 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # cryptography + # pynacl +charset-normalizer==3.0.1 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # requests +click==8.1.3 + # via + # -r requirements/pip-tools.txt + # pip-tools +cryptography==39.0.1 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # paramiko +distlib==0.3.6 + # via virtualenv +distro==1.8.0 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # docker-compose +docker[ssh]==6.0.1 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # docker-compose +docker-compose==1.29.2 + # via + # -r requirements/base.txt + # -r requirements/test.txt +dockerpty==0.4.1 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # docker-compose +docopt==0.6.2 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # docker-compose +exceptiongroup==1.1.0 + # via + # -r requirements/test.txt + # pytest +filelock==3.9.0 + # via + # tox + # virtualenv +idna==3.4 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # requests +iniconfig==2.0.0 + # via + # -r requirements/test.txt + # pytest +jsonschema==3.2.0 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # docker-compose +packaging==23.0 + # via + # -r requirements/base.txt + # -r requirements/pip-tools.txt + # -r requirements/test.txt + # build + # docker + # pytest + # tox +paramiko==3.0.0 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # docker +pexpect==4.8.0 + # via -r requirements/test.txt +pip-tools==6.12.2 + # via -r requirements/pip-tools.txt +platformdirs==3.0.0 + # via virtualenv +pluggy==1.0.0 + # via + # -r requirements/test.txt + # pytest + # tox +ptyprocess==0.7.0 + # via + # -r requirements/test.txt + # pexpect +py==1.11.0 + # via tox +pycparser==2.21 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # cffi +pynacl==1.5.0 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # paramiko +pyproject-hooks==1.0.0 + # via + # -r requirements/pip-tools.txt + # build +pyrsistent==0.19.3 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # jsonschema +pytest==7.2.1 + # via -r requirements/test.txt +python-dotenv==0.21.1 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # docker-compose +pyyaml==5.4.1 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # docker-compose +requests==2.28.2 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # docker + # docker-compose +six==1.16.0 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # dockerpty + # jsonschema + # tox + # websocket-client +texttable==1.6.7 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # docker-compose +tomli==2.0.1 + # via + # -r requirements/pip-tools.txt + # -r requirements/test.txt + # build + # pyproject-hooks + # pytest + # tox +tox==3.28.0 + # via + # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + # -r requirements/dev.in + # tox-battery +tox-battery==0.6.1 + # via -r requirements/dev.in +urllib3==1.26.14 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # docker + # requests +virtualenv==20.20.0 + # via tox +websocket-client==0.59.0 + # via + # -r requirements/base.txt + # -r requirements/test.txt + # docker + # docker-compose +wheel==0.38.4 + # via + # -r requirements/pip-tools.txt + # pip-tools + +# The following packages are considered to be unsafe in a requirements file: +# pip +# setuptools diff --git a/requirements/doc.in b/requirements/doc.in new file mode 100644 index 0000000000..3654542147 --- /dev/null +++ b/requirements/doc.in @@ -0,0 +1,9 @@ +# Requirements for documentation validation +-c constraints.txt + +-r base.txt # Core dependencies for this package + +doc8 # reStructuredText style checker +edx_sphinx_theme # edX theme for Sphinx output +readme_renderer # Validates README.rst for usage on PyPI +Sphinx # Documentation builder diff --git a/requirements/doc.txt b/requirements/doc.txt new file mode 100644 index 0000000000..21df24e4ae --- /dev/null +++ b/requirements/doc.txt @@ -0,0 +1,181 @@ +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# make upgrade +# +alabaster==0.7.13 + # via sphinx +attrs==22.2.0 + # via + # -r requirements/base.txt + # jsonschema +babel==2.12.1 + # via sphinx +bcrypt==4.0.1 + # via + # -r requirements/base.txt + # paramiko +bleach==6.0.0 + # via readme-renderer +certifi==2022.12.7 + # via + # -r requirements/base.txt + # requests +cffi==1.15.1 + # via + # -r requirements/base.txt + # cryptography + # pynacl +charset-normalizer==3.0.1 + # via + # -r requirements/base.txt + # requests +cryptography==39.0.1 + # via + # -r requirements/base.txt + # paramiko +distro==1.8.0 + # via + # -r requirements/base.txt + # docker-compose +doc8==1.1.1 + # via -r requirements/doc.in +docker[ssh]==6.0.1 + # via + # -r requirements/base.txt + # docker-compose +docker-compose==1.29.2 + # via -r requirements/base.txt +dockerpty==0.4.1 + # via + # -r requirements/base.txt + # docker-compose +docopt==0.6.2 + # via + # -r requirements/base.txt + # docker-compose +docutils==0.19 + # via + # doc8 + # readme-renderer + # restructuredtext-lint + # sphinx +edx-sphinx-theme==3.1.0 + # via -r requirements/doc.in +idna==3.4 + # via + # -r requirements/base.txt + # requests +imagesize==1.4.1 + # via sphinx +importlib-metadata==6.0.0 + # via sphinx +jinja2==3.1.2 + # via sphinx +jsonschema==3.2.0 + # via + # -r requirements/base.txt + # docker-compose +markupsafe==2.1.2 + # via jinja2 +packaging==23.0 + # via + # -r requirements/base.txt + # docker + # sphinx +paramiko==3.0.0 + # via + # -r requirements/base.txt + # docker +pbr==5.11.1 + # via stevedore +pycparser==2.21 + # via + # -r requirements/base.txt + # cffi +pygments==2.14.0 + # via + # doc8 + # readme-renderer + # sphinx +pynacl==1.5.0 + # via + # -r requirements/base.txt + # paramiko +pyrsistent==0.19.3 + # via + # -r requirements/base.txt + # jsonschema +python-dotenv==0.21.1 + # via + # -r requirements/base.txt + # docker-compose +pytz==2022.7.1 + # via babel +pyyaml==5.4.1 + # via + # -r requirements/base.txt + # docker-compose +readme-renderer==37.3 + # via -r requirements/doc.in +requests==2.28.2 + # via + # -r requirements/base.txt + # docker + # docker-compose + # sphinx +restructuredtext-lint==1.4.0 + # via doc8 +six==1.16.0 + # via + # -r requirements/base.txt + # bleach + # dockerpty + # edx-sphinx-theme + # jsonschema + # websocket-client +snowballstemmer==2.2.0 + # via sphinx +sphinx==5.3.0 + # via + # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + # -r requirements/doc.in + # edx-sphinx-theme +sphinxcontrib-applehelp==1.0.4 + # via sphinx +sphinxcontrib-devhelp==1.0.2 + # via sphinx +sphinxcontrib-htmlhelp==2.0.1 + # via sphinx +sphinxcontrib-jsmath==1.0.1 + # via sphinx +sphinxcontrib-qthelp==1.0.3 + # via sphinx +sphinxcontrib-serializinghtml==1.1.5 + # via sphinx +stevedore==5.0.0 + # via doc8 +texttable==1.6.7 + # via + # -r requirements/base.txt + # docker-compose +tomli==2.0.1 + # via doc8 +urllib3==1.26.14 + # via + # -r requirements/base.txt + # docker + # requests +webencodings==0.5.1 + # via bleach +websocket-client==0.59.0 + # via + # -r requirements/base.txt + # docker + # docker-compose +zipp==3.15.0 + # via importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/pip-tools.in b/requirements/pip-tools.in index 2c2a9f3841..f99de0eece 100644 --- a/requirements/pip-tools.in +++ b/requirements/pip-tools.in @@ -1 +1,3 @@ +-c constraints.txt + pip-tools diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index e7027f3fb2..e40369cc27 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -1,10 +1,24 @@ # -# This file is autogenerated by pip-compile -# To update, run: +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: # # make upgrade # -click==6.7 # via pip-tools -first==2.0.1 # via pip-tools -pip-tools==2.0.2 -six==1.11.0 # via pip-tools +build==0.10.0 + # via pip-tools +click==8.1.3 + # via pip-tools +packaging==23.0 + # via build +pip-tools==6.12.2 + # via -r requirements/pip-tools.in +pyproject-hooks==1.0.0 + # via build +tomli==2.0.1 + # via build +wheel==0.38.4 + # via pip-tools + +# The following packages are considered to be unsafe in a requirements file: +# pip +# setuptools diff --git a/requirements/pip.in b/requirements/pip.in new file mode 100644 index 0000000000..715478cdc0 --- /dev/null +++ b/requirements/pip.in @@ -0,0 +1,7 @@ +-c constraints.txt +# Core dependencies for installing other packages + +pip +setuptools +wheel + diff --git a/requirements/pip.txt b/requirements/pip.txt new file mode 100644 index 0000000000..97b1eb9029 --- /dev/null +++ b/requirements/pip.txt @@ -0,0 +1,14 @@ +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# make upgrade +# +wheel==0.38.4 + # via -r requirements/pip.in + +# The following packages are considered to be unsafe in a requirements file: +pip==23.0.1 + # via -r requirements/pip.in +setuptools==67.4.0 + # via -r requirements/pip.in diff --git a/requirements/test.in b/requirements/test.in new file mode 100644 index 0000000000..3e675fccfe --- /dev/null +++ b/requirements/test.in @@ -0,0 +1,8 @@ +# Dependencies required for running tests. + +-c constraints.txt + +-r base.txt # Core dependencies for this package + +pytest # Test runner +pexpect # Utility for making Expect-like tests for CLI interaction diff --git a/requirements/test.txt b/requirements/test.txt new file mode 100644 index 0000000000..2327ec3ad0 --- /dev/null +++ b/requirements/test.txt @@ -0,0 +1,129 @@ +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# make upgrade +# +attrs==22.2.0 + # via + # -r requirements/base.txt + # jsonschema + # pytest +bcrypt==4.0.1 + # via + # -r requirements/base.txt + # paramiko +certifi==2022.12.7 + # via + # -r requirements/base.txt + # requests +cffi==1.15.1 + # via + # -r requirements/base.txt + # cryptography + # pynacl +charset-normalizer==3.0.1 + # via + # -r requirements/base.txt + # requests +cryptography==39.0.1 + # via + # -r requirements/base.txt + # paramiko +distro==1.8.0 + # via + # -r requirements/base.txt + # docker-compose +docker[ssh]==6.0.1 + # via + # -r requirements/base.txt + # docker-compose +docker-compose==1.29.2 + # via -r requirements/base.txt +dockerpty==0.4.1 + # via + # -r requirements/base.txt + # docker-compose +docopt==0.6.2 + # via + # -r requirements/base.txt + # docker-compose +exceptiongroup==1.1.0 + # via pytest +idna==3.4 + # via + # -r requirements/base.txt + # requests +iniconfig==2.0.0 + # via pytest +jsonschema==3.2.0 + # via + # -r requirements/base.txt + # docker-compose +packaging==23.0 + # via + # -r requirements/base.txt + # docker + # pytest +paramiko==3.0.0 + # via + # -r requirements/base.txt + # docker +pexpect==4.8.0 + # via -r requirements/test.in +pluggy==1.0.0 + # via pytest +ptyprocess==0.7.0 + # via pexpect +pycparser==2.21 + # via + # -r requirements/base.txt + # cffi +pynacl==1.5.0 + # via + # -r requirements/base.txt + # paramiko +pyrsistent==0.19.3 + # via + # -r requirements/base.txt + # jsonschema +pytest==7.2.1 + # via -r requirements/test.in +python-dotenv==0.21.1 + # via + # -r requirements/base.txt + # docker-compose +pyyaml==5.4.1 + # via + # -r requirements/base.txt + # docker-compose +requests==2.28.2 + # via + # -r requirements/base.txt + # docker + # docker-compose +six==1.16.0 + # via + # -r requirements/base.txt + # dockerpty + # jsonschema + # websocket-client +texttable==1.6.7 + # via + # -r requirements/base.txt + # docker-compose +tomli==2.0.1 + # via pytest +urllib3==1.26.14 + # via + # -r requirements/base.txt + # docker + # requests +websocket-client==0.59.0 + # via + # -r requirements/base.txt + # docker + # docker-compose + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/scripts/Jenkinsfiles/devstack_snapshot.sh b/scripts/Jenkinsfiles/devstack_snapshot.sh new file mode 100644 index 0000000000..4da0a4e6eb --- /dev/null +++ b/scripts/Jenkinsfiles/devstack_snapshot.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +virtualenv --python=python3.8 devstack_snapshot_venv -q +source devstack_snapshot_venv/bin/activate + +python scripts/snapshot.py ../devstack_snapshot diff --git a/scripts/Jenkinsfiles/snapshot b/scripts/Jenkinsfiles/snapshot new file mode 100644 index 0000000000..b4db0fc678 --- /dev/null +++ b/scripts/Jenkinsfiles/snapshot @@ -0,0 +1,28 @@ +pipeline { + agent { label "devstack-worker" } + environment { + COMPOSE_HTTP_TIMEOUT = '120' + DOCKER_CLIENT_TIMEOUT = '120' + USE_TTY = 'false' + } + options { + timestamps() + timeout(120) + } + stages { + stage("Build installer") { + steps { + sh 'make requirements' + sh 'make dev.clone.https' + sh 'make dev.pull' + sh 'make dev.provision' + sh 'bash devstack_snapshot.sh' + } + } + } + post { + always { + cleanWs() + } + } +} diff --git a/scripts/README.txt b/scripts/README.txt new file mode 100644 index 0000000000..03abcbc383 --- /dev/null +++ b/scripts/README.txt @@ -0,0 +1,57 @@ +To install this snapshot of Open edX devstack (no network access required): + +1. Copy the entire "devstack_snapshot" directory to your computer. You'll + need about 35 GB free (9 GB for the copied files and 26 GB more for the + subsequent installation. + +2. Unmount the flash drive, remove it, and return it to the workshop staff + so someone else can use it. + +macOS +----- + +3. If you don't already have Docker 17.06 CE or later installed, install + it from "devstack_snapshot/Docker.dmg". + +4. From a terminal, enter the "devstack_snapshot" directory and run + "bash mac.sh". + +Linux +----- + +3. Make sure you have Docker 17.06 CE or later installed. If not, see + https://www.docker.com/community-edition for installation instructions. + +4. Make sure you have docker-compose 1.9.0 or later installed. If not, + you can get it by running the following: + + sudo curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose + sudo chmod +x /usr/local/bin/docker-compose + +5. From a terminal, enter the "devstack_snapshot" directory and run + "bash linux.sh". Partway through you'll be prompted for your password + to grant sudo access (to run docker commands); provide it as needed. + +Windows +------- + +3. If you don't already have Docker 17.06 CE or later installed, install + it from "devstack_snapshot/Docker for Windows Installer.exe". + +4. Follow the instructions at + https://github.com/openedx/devstack/blob/master/README-windows.rst + (Unlike the macOS and Linux installations above, this will require + a network connection). + +Open edX devstack isn't fully working on Windows yet, but if you are +running Windows 10 you can help us diagnose and fix the remaining +problems. If you're running an older version of Windows, please ask +for help choosing a task that can be completed without installing +devstack. + +All Operating Systems +--------------------- + +Done! Try visiting http://localhost:18000/ for the LMS and +http://localhost:18010/ for Studio. It may take a minute or two for the +services to finish initializing and start responding to requests. diff --git a/scripts/colors.sh b/scripts/colors.sh new file mode 100644 index 0000000000..1f1f24e757 --- /dev/null +++ b/scripts/colors.sh @@ -0,0 +1,6 @@ +# Source this file to get color variables + +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[0;33m' +NC='\033[0m' # No Color diff --git a/scripts/extract_snapshot_linux.sh b/scripts/extract_snapshot_linux.sh index c387223a78..3d8d91e9be 100755 --- a/scripts/extract_snapshot_linux.sh +++ b/scripts/extract_snapshot_linux.sh @@ -14,13 +14,16 @@ done # Load Docker containers and their associated volumes # Calls to "docker" usually require sudo privileges on Linux -sudo python devstack/scripts/restore.py +# add sudo here (and line 25 & 28) if needed... +# However, best practice is to create docker group: +# q.v. https://docs.docker.com/install/linux/linux-postinstall/ +python devstack/scripts/restore.py # For the rest, we need to be in the directory with the devstack Makefile cd devstack # Shut down all the running containers, the volumes were incomplete at startup -sudo make down +make down # Start all the containers again with correctly populated volumes. -sudo make dev.up +make dev.up.large-and-slow diff --git a/scripts/extract_snapshot_mac.sh b/scripts/extract_snapshot_mac.sh index 960ae006a1..141583aaf1 100755 --- a/scripts/extract_snapshot_mac.sh +++ b/scripts/extract_snapshot_mac.sh @@ -22,4 +22,4 @@ cd devstack make down # Start all the containers again with correctly populated volumes. -make dev.up +make dev.up.large-and-slow diff --git a/scripts/make_warn_default_large.sh b/scripts/make_warn_default_large.sh new file mode 100755 index 0000000000..cae0602296 --- /dev/null +++ b/scripts/make_warn_default_large.sh @@ -0,0 +1,56 @@ +#!/bin/bash +# Warn the developer that they've run a make command that uses a very +# large set of services and that often is not the best tool for the +# job. +# +# This script is used in the Makefile for commands that should be run +# as `make $target.large-and-slow` instead if that's what's intended. + +target="$1" + +show_warning_and_wait() { + cat <<"EOCOW" >&2 + _________________________________________________________________________ +/ \ +| Are you sure you want to run this command for *all* Open edX services? | +\_________________________________________________________________________/ + \ ^__^ + \ (oo)\_______ + (__)\ )\/\ + ||----w | + || || + +EOCOW + + cat <&2 +The command "make $target" will operate on a large default set of +services and their dependencies. This can make your task take longer +than necessary. + +You may prefer to use something like "make $target.lms" to +target a smaller set of services. Learn more about the commands you +can run at: + + https://github.com/openedx/devstack/blob/master/docs/devstack_interface.rst + +Without an explicit list of services, many devstack Make targets pull +down Docker images you don't need or take up extra memory and CPU. You +might even run into bugs in unrelated services. + +(If you *really* want the large default set of services, you can use +the command "make $target.large-and-slow". You can also configure +DEFAULT_SERVICES in your options.local.mk to your preferred smaller +set of services. Either of these options will prevent this warning.) + +EOF + + read -r -p $'(You can cancel the command now with Ctrl-C or press ENTER to continue.)\n' +} + +if grep --quiet --no-messages '^DEFAULT_SERVICES' options.local.mk; then + echo >&2 "Skipping warning because DEFAULT_SERVICES is set in options.local.mk" +else + show_warning_and_wait +fi + +make --no-print-directory "$target.large-and-slow" diff --git a/scripts/restore.py b/scripts/restore.py index 48b490dd01..363c255b8f 100755 --- a/scripts/restore.py +++ b/scripts/restore.py @@ -16,7 +16,7 @@ DEVSTACK_REPO_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # Use this minimal container image to restore volume content -BACKUP_IMAGE = 'alpine:3.7' +BACKUP_IMAGE = 'alpine:latest' def load_images(): @@ -37,7 +37,7 @@ def start_devstack(): """ cwd = os.getcwd() os.chdir(DEVSTACK_REPO_DIR) - check_call(['make', 'dev.up']) + check_call(['make', 'dev.up.large-and-slow']) os.chdir(cwd) diff --git a/scripts/send_metrics.py b/scripts/send_metrics.py new file mode 100755 index 0000000000..c35785c09a --- /dev/null +++ b/scripts/send_metrics.py @@ -0,0 +1,453 @@ +#!/usr/bin/env python3 +""" +Python script to collect metrics on devstack make targets. + +If the devstack user has consented to metrics collected, this script +calls the specified make target and records metrics about the target, +execution time, and other attributes that can be used to monitor the +usability of devstack. For more information: + +https://openedx.atlassian.net/wiki/spaces/AC/pages/2720432206/Devstack+Metrics + +If environment variable ``DEVSTACK_METRICS_TESTING`` is present and non-empty, then +metrics will be annotated to indicate that the event occurred in the +course of running tests so that it does not pollute our main data. +(Extra debugging information will also be printed, including the sent +event data.) + +Config file schema: + +- 'anonymous_user_id' (string) high-entropy, non-identifying unique user ID +- 'consent' (dict) present when user has either consented or declined + metrics collection + - 'decision' (boolean) indicates whether the user has consented or declined + - 'timestamp' (string) ISO-8601 date-time when the user consented or declined +""" + +import base64 +import json +import os +import subprocess +import sys +import traceback +import urllib.request as req +import uuid +from datetime import datetime, timedelta, timezone +from http.client import RemoteDisconnected +from os import path +from signal import SIG_DFL, SIGINT, signal +from urllib.error import URLError + + +test_mode = os.environ.get('DEVSTACK_METRICS_TESTING') + +# Provisioned as a separate source particular to devstack +segment_write_key = "MUymmyrKDLk6JVwtkveX6OHVKMhpApou" + +config_dir = path.expanduser("~/.config/devstack") +config_path = path.join(config_dir, "metrics.json") + + +def base64str(s): + """Encode a string in Base64, returning a string.""" + return base64.b64encode(s.encode()).decode() + + +def check_consent(): + """ + Check if it's OK to send metrics, returning dict of: + + - 'ok_to_collect' (boolean) True when metrics may be collected + - 'config' (dict) config data, present if `ok_to_collect` is True + - 'print_invitation' (boolean) True when an invitation to consent to + metrics collection should be printed for the user + + May throw an exception if config file cannot be parsed. + """ + try: + with open(config_path, 'r') as f: + config = json.loads(f.read()) + except FileNotFoundError: + return {'ok_to_collect': False, 'print_invitation': True} + + decision = config.get('consent', {}).get('decision') + + # Explicit decline. + if decision is False: + return {'ok_to_collect': False, 'print_invitation': False} + + # Anything other than consent: Just invite. (If they haven't + # declined *or* consented, either they've not made a decision + # (value is None) or there's some invalid value that will be + # cleared out by the opt-in/out process.) + if decision is not True: + return {'ok_to_collect': False, 'print_invitation': True} + + # At this point, we know they've consented, but one last check... + + # Opt-in process should have set an anonymous user ID, which is + # required for sending events. + if not config.get('anonymous_user_id'): + # Something's wrong with the config file if they've consented + # but not been assigned an ID, so just pretend they've not + # consented -- opting in should reset things. + return {'ok_to_collect': False, 'print_invitation': True} + + # Consented, so no need to invite. + return { + 'ok_to_collect': True, + 'config': config, + 'print_invitation': False + } + + +def send_metrics_to_segment(event_type, event_properties, config): + """ + Send collected metrics to Segment. + + May throw. + """ + # Get a shallow copy of the input and annotate it as a non-test + # event unless overridden by environment variable. + event_properties = event_properties.copy() + event_properties['is_test'] = test_mode or 'no' + + event = { + 'event': event_type, + 'userId': config['anonymous_user_id'], + 'properties': event_properties, + 'sentAt': datetime.now(timezone.utc).isoformat(), + } + + if test_mode: + print("Send metrics info: %s" % json.dumps(event), file=sys.stderr) + + # https://segment.com/docs/connections/sources/catalog/libraries/server/http-api/ + headers = { + 'Authorization': 'Basic ' + base64str(segment_write_key + ':'), + 'Content-Type': 'application/json', + 'User-Agent': 'edx-devstack-send-metrics', + } + request = req.Request( + url = 'https://api.segment.io/v1/track', + method = 'POST', + headers = headers, + data = json.dumps(event).encode(), + ) + + try: + with req.urlopen(request, timeout=8) as resp: + status_code = resp.getcode() + if status_code != 200 and test_mode: + print("Segment metrics send returned an unexpected status code ${status_code}", file=sys.stderr) + # Might just be a Segment outage; user probably doesn't care. + # Other errors can bubble up to a layer that might report them. + except (RemoteDisconnected, URLError): + if test_mode: + traceback.print_exc() + + +def read_git_state(): + """ + Return additional, git-related attributes to be merged into event + properties. + """ + # %cI gets the committer timestamp, rather than the author + # timestamp; the latter could be older when commits have been + # rewritten, and the former is more likely to be of interest when + # looking at repo checkout age. + process = subprocess.run( + ['git', 'show', '--no-patch', '--pretty=format:%cI|%D'], + capture_output=True, check=True, timeout=5 + ) + timestamp, reflist = process.stdout.decode().split('|', 2) + # Returns true if master is currently checked out. Returns false + # otherwise, which includes the following situations that are similar + # to, but different from a master checkout: + # + # - Detached-head state which happens to be on same commit as master + # - Another branch is checked out but points to the same commit as + # master + # - On commit which *used to* be the tip of master, but is no longer + # (and is just in master's history) + is_at_master = "HEAD -> master" in reflist.split(', ') + return { + 'git_commit_time': timestamp, + 'git_checked_out_master': is_at_master, + } + + +def run_wrapped(make_target, config): + """ + Runs specified make shell target and collects performance data. + + Return exit code of process (negative for signals). + """ + # Do as much as possible inside try blocks + do_collect = True + try: + start_time = datetime.now(timezone.utc) + + # Catch SIGINT (but only once) so that we can report an event + # when the developer uses Ctrl-C to kill the make command + # (which would normally kill this process as well). This + # handler just ignores the signal and then unregisters itself. + # + # There is no guarantee of whether this signal will be caught + # first or the child process will exit first. This could + # theoretically result in unregistering the signal handler + # before the signal has occurred, resulting in failure to + # report the event, but there's no way to prevent this. + signal(SIGINT, lambda _signum, _frame: signal(SIGINT, SIG_DFL)) + except: + do_collect = False + traceback.print_exc() + print("Metrics collection setup failed. " + "If this keeps happening, please let the Architecture team know. " + "(This should not affect the outcome of your make command.)", + file=sys.stderr) + + completed_process = run_target(make_target) + subprocess_exit_code = completed_process.returncode + + # Do as much as possible inside try blocks + try: + # Skip metrics reporting if setup failed + if not do_collect: + return subprocess_exit_code + + signal(SIGINT, SIG_DFL) # stop trapping SIGINT (if haven't already) + end_time = datetime.now(timezone.utc) + time_diff_millis = (end_time - start_time) // timedelta(milliseconds=1) + # Must be compatible with our Segment schema, and must not be + # expanded to include additional attributes without an + # additional consent check. + event_properties = { + 'command_type': 'make', + 'command': make_target[:50], # limit in case of mis-pastes at terminal + 'start_time': start_time.isoformat(), + 'duration_ms': time_diff_millis, + # If the subprocess was interrupted by a signal, the exit + # code will be negative signal value (e.g. -2 for SIGINT, + # rather than the 130 it returns from the shell): + # https://docs.python.org/3.8/library/subprocess.html#subprocess.CompletedProcess + # + # If a make subprocess exits non-zero, make exits with code 2. + 'exit_status': subprocess_exit_code, + **read_git_state() + } + send_metrics_to_segment('devstack.command.run', event_properties, config) + except: + # We don't want to warn about transient Segment outages or + # similar, but there might be a coding error in the + # send-metrics script. + traceback.print_exc() + print("Failed to send devstack metrics to Segment. " + "If this keeps happening, please let the Architecture team know. " + "(This should not have affected the outcome of your make command.)", + file=sys.stderr) + + return subprocess_exit_code + + +def run_target(make_target): + """ + Just run make on the given target. + + Return exit code of process (negative for signals). + """ + return subprocess.run(["make", "impl-%s" % make_target], check=False) + + +def do_wrap(make_target): + """ + Run the given make target, and collect and report data if and only if + the user has consented to data collection. + + Return exit code to exit with (signals become 128 + signal value). + """ + try: + consent_state = check_consent() + except Exception as e: # don't let errors interrupt dev's work + if test_mode: + print("Metrics disabled due to startup error: %r" % e) + consent_state = {} + + if consent_state.get('ok_to_collect'): + subprocess_exit_code = run_wrapped(make_target, consent_state.get('config')) + else: + subprocess_exit_code = run_target(make_target).returncode + if consent_state.get('print_invitation'): + print( + "Would you like to assist devstack development by sending " + "anonymous usage metrics to edX? Run `make metrics-opt-in` " + "to learn more!", + file=sys.stderr + ) + + if subprocess_exit_code < 0: + # Translate to shell convention. + return 128 + -subprocess_exit_code + else: + return subprocess_exit_code + + +def do_opt_in(): + """ + Perform the interactive opt-in process. + """ + start_time = datetime.now(timezone.utc) + try: + with open(config_path, 'r') as f: + config = json.loads(f.read()) + except FileNotFoundError: + config = {} + + # Only short-circuit here if consented *and* all necessary info present. + if config.get('consent', {}).get('decision') and config.get('anonymous_user_id'): + print( + "It appears you've previously opted-in to metrics reporting. " + "Recorded consent: {record!r}" + .format(record=config['consent']) + ) + return + # variables used to bold relevant text in the consent language below + MARKUP_BOLD = '\033[1m' + MARKUP_END = '\033[0m' + + # NOTE: This is required for informed consent on the part of the users opting-in. + # The types of data collected cannot be expanded or changed without legal review. + print( + "\n" + + MARKUP_BOLD + "Allow devstack to report anonymized usage metrics?\n" + MARKUP_END + + "\n" + "This will report usage information to edX so that devstack improvements can be planned and evaluated. " + "The metrics and attributes to be collected by edX include an anonymous user ID and information about devstack command calls (e.g. make targets, exit codes, and command durations), " + "the OS, and git repo state." + "\n\n" + + MARKUP_BOLD + "Type 'yes' or 'y' to opt in to reporting this information, or anything else to cancel. " + MARKUP_END + + "\n\n" + "You may withdraw this permission and stop sending such metrics at any time by running ‘make metrics-opt-out’." + ) + answer = input() + print() + + if answer.lower() in ['yes', 'y']: + config['consent'] = { + 'decision': True, + 'timestamp': datetime.now(timezone.utc).isoformat() + } + # Set an anonymous user ID on first opt-in, but preserve it if + # they're toggling back and forth. + config['anonymous_user_id'] = config.get('anonymous_user_id') or str(uuid.uuid4()) + + os.makedirs(config_dir, exist_ok=True) + with open(config_path, 'w') as f: + f.write(json.dumps(config)) + + print( + "Thank you for contributing to devstack development! " + "Your opt-in has been stored in {config_path} and " + "you can opt out again at any time with `make metrics-opt-out`." + .format(config_path=config_path) + ) + # Send record of opt-in so we can tell whether people are + # opting in even if they're not running any of the + # instrumented commands. + event_properties = { + 'command_type': 'make', + 'command': 'metrics-opt-in', + 'choice': 'accept', + # Note: Not quite the same as the time they accepted + # (could have left prompt open for a while). + 'start_time': start_time.isoformat(), + # This tells us what version of the consent check was + # presented to the user. + **read_git_state() + } + send_metrics_to_segment('devstack.command.run', event_properties, config) + else: + print("Cancelled opt-in.") + + +def do_opt_out(): + """ + Opt the user out. + """ + start_time = datetime.now(timezone.utc) + + os.makedirs(config_dir, exist_ok=True) + try: + with open(config_path, 'r') as f: + config = json.loads(f.read()) + except FileNotFoundError: + config = {} + + had_consented = config.get('consent', {}).get('decision') is True + + config['consent'] = { + 'decision': False, + 'timestamp': datetime.now(timezone.utc).isoformat() + } + with open(config_path, 'w') as f: + f.write(json.dumps(config)) + + print( + "You have been opted out of reporting devstack command metrics to edX. " + "No further usage metrics will be sent. " + "This preference is stored in a config file located at {config_path}; " + "you can opt back in by running `make metrics-opt-in` at any time." + .format(config_path=config_path) + ) + + # Only send an event when someone had previously consented -- this + # allows us to keep a record of the start and end of their + # consent. + if had_consented: + # Collect as little information as possible for this event + event_properties = { + 'command_type': 'make', + 'command': 'metrics-opt-out', + 'previous_consent': 'yes', + 'start_time': start_time.isoformat() + } + send_metrics_to_segment('devstack.command.run', event_properties, config) + + +def main(args): + if len(args) == 0: + print( + "Usage:\n" + " send_metrics.py wrap \n" + " send_metrics.py opt-in\n" + " send_metrics.py opt-out", + file=sys.stderr + ) + sys.exit(1) + action = args[0] + action_args = args[1:] + + # Dispatch + if action == 'wrap': + if len(action_args) != 1: + print("send-metrics wrap takes one argument", file=sys.stderr) + sys.exit(1) + conveyed_exit_code = do_wrap(action_args[0]) + sys.exit(conveyed_exit_code) + elif action == 'opt-in': + if len(action_args) != 0: + print("send-metrics opt-in takes zero arguments", file=sys.stderr) + sys.exit(1) + do_opt_in() + elif action == 'opt-out': + if len(action_args) != 0: + print("send-metrics opt-out takes zero arguments", file=sys.stderr) + sys.exit(1) + do_opt_out() + else: + print("Unrecognized action: %s" % action, file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main(sys.argv[1:]) diff --git a/scripts/snapshot.py b/scripts/snapshot.py index 715a0093f1..24033c8ae4 100755 --- a/scripts/snapshot.py +++ b/scripts/snapshot.py @@ -11,7 +11,7 @@ import os import re from shutil import copyfile -from subprocess import check_call +from subprocess import STDOUT, CalledProcessError, check_output import yaml @@ -20,7 +20,7 @@ REPO_SCRIPT = os.path.join(REPO_ROOT, 'repo.sh') # Use this minimal container image to fetch volume content -BACKUP_IMAGE = 'alpine:3.7' +BACKUP_IMAGE = 'alpine:latest' def make_directories(output_dir): @@ -52,7 +52,7 @@ def archive_repos(output_dir): for directory in dirs: print('Archiving {}'.format(directory)) output = os.path.join(repositories_dir, '{}.tar.gz'.format(directory)) - check_call(['tar', 'czf', output, directory]) + check_output(['tar', 'czf', output, directory], stderr=STDOUT) os.chdir(cwd) @@ -73,13 +73,15 @@ def process_compose_file(filename, output_dir): for service_name in services: service = services[service_name] image = service['image'] + image = re.sub(r'\$.*', 'latest', image) container_name = service['container_name'] # Don't save the same image twice, like edxapp for lms and studio if image not in saved_images: output = os.path.join(images_dir, '{}.tar'.format(service_name)) print('Saving image {}'.format(service_name)) - check_call(['docker', 'save', '--output', output, image]) - check_call(['gzip', output]) + check_output(['docker', 'save', '--output', output, image], + stderr=STDOUT) + check_output(['gzip', output], stderr=STDOUT) saved_images.add(image) if 'volumes' in service: @@ -88,20 +90,24 @@ def process_compose_file(filename, output_dir): if volume[0] == '.': # Mount of a host directory, skip it continue - parts = volume.split(':') - volume_name = parts[0] - volume_path = parts[1] + if ':' in volume: + parts = volume.split(':') + volume_name = parts[0] + volume_path = parts[1] + else: + volume_name = volume[1:].replace('/', '_') + volume_path = volume tarball = '{}.tar.gz'.format(volume_name) volume_list.append({'container': container_name, 'path': volume_path, 'tarball': tarball}) print('Saving volume {}'.format(volume_name)) - check_call(['docker', 'run', '--rm', '--volumes-from', container_name, '-v', - '{}:/backup'.format(volumes_dir), BACKUP_IMAGE, 'tar', 'czf', - '/backup/{}'.format(tarball), volume_path]) + check_output(['docker', 'run', '--rm', '--volumes-from', container_name, '-v', + '{}:/backup'.format(volumes_dir), BACKUP_IMAGE, 'tar', 'czf', + '/backup/{}'.format(tarball), volume_path], stderr=STDOUT) print('Saving image alpine') output = os.path.join(images_dir, 'alpine.tar') - check_call(['docker', 'save', '--output', output, BACKUP_IMAGE]) - check_call(['gzip', output]) + check_output(['docker', 'save', '--output', output, BACKUP_IMAGE], stderr=STDOUT) + check_output(['gzip', output], stderr=STDOUT) print('Saving volume metadata') with open(os.path.join(volumes_dir, 'volumes.json'), 'w') as f: f.write(json.dumps(volume_list)) @@ -111,11 +117,17 @@ def process_compose_file(filename, output_dir): parser = argparse.ArgumentParser() parser.add_argument('output_dir', help='The directory in which to create the devstack snapshot') args = parser.parse_args() - output_dir = args.output_dir + output_dir = os.path.abspath(args.output_dir) make_directories(output_dir) - archive_repos(output_dir) - process_compose_file('docker-compose.yml', output_dir) + try: + archive_repos(output_dir) + process_compose_file('docker-compose.yml', output_dir) + except CalledProcessError as e: + print(e.output) + raise copyfile(os.path.join(REPO_ROOT, 'scripts', 'extract_snapshot_linux.sh'), os.path.join(output_dir, 'linux.sh')) copyfile(os.path.join(REPO_ROOT, 'scripts', 'extract_snapshot_mac.sh'), os.path.join(output_dir, 'mac.sh')) + copyfile(os.path.join(REPO_ROOT, 'scripts', 'README.txt'), + os.path.join(output_dir, 'README.txt')) diff --git a/tests/README.rst b/tests/README.rst new file mode 100644 index 0000000000..f2332070dd --- /dev/null +++ b/tests/README.rst @@ -0,0 +1,15 @@ +Devstack CLI tests +================== + +These tests rely heavily on the pexpect library (inspired by TCL +Expect); if you're editing or creating tests it is highly recommended +you read up on the gotchas in here: + +https://pexpect.readthedocs.io/en/stable/overview.html + +Debugging tips +-------------- + +If an expectation fails (or an unexpected timeout or EOF occurs) then pexpect will throw an exception which contains a printout of the internal state of the pexpect instance. This includes the ``buffer``, ``before``, and ``after`` buffers, which are essential for seeing what the child process's output was. + +However, pexpect truncates two of these to 100 characters by default. To see more, set the undocumented ``str_last_chars`` attribute on the pexpect object to something larger, or to 0 for the full output. diff --git a/tests/metrics.py b/tests/metrics.py new file mode 100644 index 0000000000..37ebb37e9e --- /dev/null +++ b/tests/metrics.py @@ -0,0 +1,350 @@ +""" +Tests for send_metrics.py +""" + +import json +import os +import re +from contextlib import contextmanager + +import pexpect +from pexpect import EOF + + +#### Utilities + +## Substrings to use as probes: +invitation = 'Would you like to assist devstack development' +consent_question = "Allow devstack to report anonymized usage metrics?" + +config_dir = os.path.expanduser('~/.config/devstack') +config_path = os.path.join(config_dir, 'metrics.json') + +@contextmanager +def environment_as(config_data): + """ + Context manager: Set up environment for metrics testing, or fail if there's + something wrong in the environment which can't be fixed. + + If `config_data` is not None, write it as JSON to the config file and + remove it again after the wrapped code runs. + """ + assert os.environ.get('DEVSTACK_METRICS_TESTING'), \ + "You need a DEVSTACK_METRICS_TESTING=debug if running this test " \ + "locally since this environment variable both enables printing of " \ + "metrics and also marks sent metric events as test data." + + assert not os.path.isfile(config_path), \ + "You already have a config file; failing now to avoid overwriting it." + + if config_data is not None: + os.makedirs(config_dir, exist_ok=True) + with open(config_path, 'w') as f: + f.write(json.dumps(config_data)) + + try: + yield + finally: + # Clean up before exiting. + if config_data is not None: + with open(config_path, 'r') as f: + # For debugging... + print("Metrics config file in effect was: " + f.read()) + + try: + os.remove(config_path) + except FileNotFoundError: + pass + + +def do_opt_in(): + """Opt in (and assert it worked).""" + p = pexpect.spawn('make metrics-opt-in', timeout=10) + p.expect("Type 'yes' or 'y'") + p.sendline('yes') + p.expect(EOF) + p.close() + assert_consent(True) + + +def assert_consent(status=True): + """ + Assert consent status in config file. status=True will check for consent + with timestamp, False will check for a decline with timestamp, and None + will check that the consent dict is missing. + """ + try: + with open(config_path, 'r') as f: + config = json.loads(f.read()) + except FileNotFoundError: + config = FileNotFoundError + + if status is None: + assert config is FileNotFoundError or 'consent' not in config + else: + assert isinstance(status, bool) + assert 'consent' in config + consent = config['consent'] + assert consent.get('decision') == status + # Timestamp should be a date at least (likely also has a time) + assert re.match(r'^[0-9]{4}-[0-9]{2}-[0-9]{2}', consent.get('timestamp')) + + +#### Opting in and out + +def test_initial_opt_in_accept(): + """ + Test that a consent check is provided, and what happens on accept. + """ + with environment_as(None): + p = pexpect.spawn('make metrics-opt-in', timeout=10) + p.expect_exact(consent_question) + p.expect("Type 'yes' or 'y'") + p.sendline("yes") + p.expect("metrics-opt-out") # prints instructions for opt-out + # Check that a metric is sent for opt-in + p.expect("Send metrics info:") + p.expect(EOF) + metrics_json = p.before.decode() + + data = json.loads(metrics_json) + # These keys are defined by a central document; do not send + # additional metrics without specifying them there first: + # + # https://openedx.atlassian.net/wiki/spaces/AC/pages/2720432206/Devstack+Metrics + # + # Additional metrics require approval (as do changes to + # existing ones). Changes to metrics also require an update to the + # list of metrics displayed during opt-in. + assert sorted(data.keys()) == ['event', 'properties', 'sentAt', 'userId'], \ + "Unrecognized key in envelope -- confirm that this addition is authorized." + assert sorted(data['properties'].keys()) == [ + 'choice', 'command', 'command_type', + 'git_checked_out_master', 'git_commit_time', + 'is_test', 'start_time', + ], "Unrecognized attribute -- confirm that this addition is authorized." + + assert data['event'] == 'devstack.command.run' + assert data['properties']['command_type'] == 'make' + assert data['properties']['command'] == 'metrics-opt-in' + assert data['properties']['choice'] == 'accept' + + assert_consent(True) + + +def test_initial_opt_in_decline(): + """ + Test that a consent check is provided, and what happens on decline. + """ + with environment_as(None): + p = pexpect.spawn('make metrics-opt-in', timeout=10) + p.sendline("") # empty response + p.expect(EOF) + + assert 'Send metrics info:' not in p.before.decode() + # No consent info stored on decline + assert_consent(None) + + +def test_initial_opt_out(): + """ + Test that opt-out always marks consent=False. + """ + with environment_as(None): + p = pexpect.spawn('make metrics-opt-out', timeout=10) + p.expect('metrics-opt-in') # indicates how to undo + p.expect(EOF) + + assert 'Send metrics info:' not in p.before.decode() + assert_consent(False) + + +def test_later_opt_out(): + """ + Test that opt-out after previously opting in sends an event. + """ + with environment_as(None): + do_opt_in() + p = pexpect.spawn('make metrics-opt-out', timeout=10) + p.expect('metrics-opt-in') + p.expect(r'Send metrics info:') + p.expect(EOF) + metrics_json = p.before.decode() + + data = json.loads(metrics_json) + # These keys are defined by a central document; do not send + # additional metrics without specifying them there first: + # + # https://openedx.atlassian.net/wiki/spaces/AC/pages/2720432206/Devstack+Metrics + # + # Additional metrics require approval (as do changes to + # existing ones). + assert sorted(data.keys()) == ['event', 'properties', 'sentAt', 'userId'], \ + "Unrecognized key in envelope -- confirm that this addition is authorized." + assert sorted(data['properties'].keys()) == [ + 'command', 'command_type', 'is_test', 'previous_consent', 'start_time', + ], "Unrecognized attribute -- confirm that this addition is authorized." + + assert data['event'] == 'devstack.command.run' + assert data['properties']['command_type'] == 'make' + assert data['properties']['command'] == 'metrics-opt-out' + assert data['properties']['previous_consent'] == 'yes' + + assert_consent(False) + + +#### Collection, or not, for an instrumented make target + +def test_invitation(): + """ + Test that an invitation is printed when consent record isn't present. + """ + with environment_as(None): + p = pexpect.spawn('make dev.up.redis', timeout=60) + p.expect(EOF) + assert 'Send metrics info:' not in p.before.decode() + assert invitation in p.before.decode() + + +def test_enabled_but_declined(): + """ + Test that no invitation is printed when declined, even with feature + flag enabled. + """ + with environment_as({ + 'consent': {'decision': False, 'timestamp': '2021-05-20T21:42:18.365201+00:00'} + }): + assert_consent(False) + + p = pexpect.spawn('make dev.up.redis', timeout=60) + p.expect(EOF) + assert 'Send metrics info:' not in p.before.decode() + assert invitation not in p.before.decode() + + +def test_feature_flag_does_not_gate_collection(): + """ + Test that feature flag no longer gates collection. + """ + with environment_as(None): + do_opt_in() + p = pexpect.spawn('make dev.up.redis', timeout=60) + p.expect(EOF) + assert 'Send metrics info:' in p.before.decode() + assert invitation not in p.before.decode() + + +def test_no_arbitrary_target_instrumented(): + """ + Test that arbitrary make targets are not instrumented. + """ + with environment_as(None): + do_opt_in() + p = pexpect.spawn('make xxxxx', timeout=60) + p.expect(EOF) + assert 'Send metrics info:' not in p.before.decode() + assert invitation not in p.before.decode() + + # Also confirm that the exit code is conveyed properly + p.close() + assert p.exitstatus == 2 # make's generic error code + assert p.signalstatus is None + + +def test_metrics(): + """ + Test that dev.up.% is instrumented for metrics collection. + """ + with environment_as(None): + do_opt_in() + p = pexpect.spawn('make dev.up.redis', timeout=60) + p.expect(r'Send metrics info:') + assert invitation not in p.before.decode() + p.expect(EOF) + assert invitation not in p.before.decode() + metrics_json = p.before.decode() + + data = json.loads(metrics_json) + # These keys are defined by a central document; do not send + # additional metrics without specifying them there first: + # + # https://openedx.atlassian.net/wiki/spaces/AC/pages/2720432206/Devstack+Metrics + # + # Additional metrics require approval (as do changes to + # existing ones). + assert sorted(data.keys()) == ['event', 'properties', 'sentAt', 'userId'], \ + "Unrecognized key in envelope -- confirm that this addition is authorized." + assert sorted(data['properties'].keys()) == [ + 'command', 'command_type', 'duration_ms', 'exit_status', + 'git_checked_out_master', 'git_commit_time', + 'is_test', 'start_time', + ], "Unrecognized attribute -- confirm that this addition is authorized." + + assert data['event'] == 'devstack.command.run' + assert data['properties']['command'] == 'dev.up.redis' + # Any string but 'no', really (will match env var in practice) + assert data['properties']['is_test'] in ['ci', 'debug'] + + +def test_handle_ctrl_c(): + """ + Test that wrapper can survive and report on a Ctrl-C. + """ + with environment_as(None): + do_opt_in() + p = pexpect.spawn('make dev.pull', timeout=60) + # Make sure wrapped command has started before we interrupt, + # otherwise signal handler won't even have been registered + # yet. + p.expect(r'Are you sure you want to run this command') + p.sendintr() # send Ctrl-C to process group + p.expect(EOF) + output = p.before.decode() + + assert re.search(r'make\[[0-9]+\]: [^\r\n]+ Interrupt', output) + # confirm docker has stopped + assert 'Pulling ' not in output + + metrics_match = re.search(r'Send metrics info: ([^\r\n]+)', output) + assert metrics_match + data = json.loads(metrics_match.group(1)) + + # Exit status is negative of signal's value (SIGINT = 2) + assert data['properties']['exit_status'] == -2 + + # Exit signal here actually comes from make, so this doesn't + # really test the wrapper's own exit code. This assertion + # really just serves as documentation of behavior. + p.close() + assert p.exitstatus == None + assert p.signalstatus is 2 + + +def test_signal_conversion(): + """ + This is like test_handle_ctrl_c, except calling the wrapper + directly to avoid Make's conversion of all exit codes to 2. + """ + with environment_as(None): + do_opt_in() + p = pexpect.spawn('scripts/send_metrics.py wrap dev.pull', timeout=60) + # Make sure wrapped command has started before we interrupt, + # otherwise signal handler won't even have been registered + # yet. + p.expect(r'Are you sure you want to run this command') + p.sendintr() # send Ctrl-C to process group + # Confirm that the process is actually catching the signal, as + # proven by it printing some things before ending. + p.expect(r'Send metrics info:') + p.expect(EOF) + + # This time we're calling the script directly, so we see the + # script exiting with code 130 (128 + SIGINT). + # + # ...or, depending on timing and/or operating system, the make + # process may die *first* with its generic exit code 2 and the + # wrapper would exit before it even receives the signal. So, we + # expect either scenario. + p.close() + assert p.exitstatus in [130, 2] + assert p.signalstatus is None diff --git a/tests/warn_default.py b/tests/warn_default.py new file mode 100644 index 0000000000..c02a275a95 --- /dev/null +++ b/tests/warn_default.py @@ -0,0 +1,20 @@ +""" +Tests for make_warn_default_large.sh +""" + +import pexpect + + +def test_warn_default(): + """ + Test that dev.pull (bare) prompts before continuing. + """ + + p = pexpect.spawn('make dev.pull', timeout=15) + p.expect(r'Are you sure you want to run this command') + + p.sendline('') + p.expect(r'Pulling lms') + + # Send ^C, don't wait for it to finish + p.sendintr() diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000000..3e668ef420 --- /dev/null +++ b/tox.ini @@ -0,0 +1,20 @@ +[tox] +skipsdist=True +envlist = py{38} + +[doc8] +; D001 = Line too long +ignore=D001 + +[testenv:docs] +setenv = + PYTHONPATH = {toxinidir} +whitelist_externals = + make + rm +deps = + -r{toxinidir}/requirements/doc.txt +commands = + doc8 --ignore-path docs/_build README.rst docs + make -C docs clean + make -C docs html diff --git a/update-dbs-init-sql-scripts.sh b/update-dbs-init-sql-scripts.sh new file mode 100755 index 0000000000..9916ab1fea --- /dev/null +++ b/update-dbs-init-sql-scripts.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +# Updates MySQL databases dumps with MySQL Docker container schema/data +# Make sure you have added your user to the docker group before running this script +# or use sudo to run it + +set -eu -o pipefail +set -x + +# constants +readonly EDXAPP_MYSQL_DB_USER="edxapp001" +readonly ECOMMERCE_MYSQL_DB_USER="ecomm001" +readonly MYSQL_DB_PASSWORD="password" +readonly EDXAPP_DBS=("edxapp" "edxapp_csmh") +DBS=("ecommerce" "${EDXAPP_DBS[@]}") + +# don't include the demo course in the initial sql since it relies on data being present in mongo +export DEVSTACK_SKIP_DEMO="true" + + +# create a docker devstack with LMS and ecommerce +make destroy +make dev.clone.ssh +make dev.provision.services.lms+ecommerce + +# dump schema and data from mysql databases in the mysql docker container and copy them to current directory in docker host +MYSQL_DOCKER_CONTAINER="$(make --silent --no-print-directory dev.print-container.mysql57)" +for DB_NAME in "${DBS[@]}"; do + DB_CREATION_SQL_SCRIPT="${DB_NAME}.sql" + if [[ " ${EDXAPP_DBS[@]} " =~ " ${DB_NAME} " ]]; then + MYSQL_DB_USER=${EDXAPP_MYSQL_DB_USER} + else + MYSQL_DB_USER=${ECOMMERCE_MYSQL_DB_USER} + fi + docker exec ${MYSQL_DOCKER_CONTAINER} /bin/bash -c "mysqldump -u ${MYSQL_DB_USER} -p${MYSQL_DB_PASSWORD} --no-tablespaces --add-drop-database --skip-add-drop-table --databases ${DB_NAME} > ${DB_CREATION_SQL_SCRIPT}" + docker cp ${MYSQL_DOCKER_CONTAINER}:/${DB_CREATION_SQL_SCRIPT} . +done diff --git a/upgrade_mongo_4_0.sh b/upgrade_mongo_4_0.sh new file mode 100755 index 0000000000..0409d03698 --- /dev/null +++ b/upgrade_mongo_4_0.sh @@ -0,0 +1,100 @@ +#!/usr/bin/env bash +set -eu -o pipefail + +# This script will upgrade a devstack that was previosly running Mongo DB 3.2, 3.4 or 3.6 to MongoDB 4.0 + +. scripts/colors.sh + +export MONGO_VERSION=3.4.24 +current_mongo_version="3.4" +echo -e "${GREEN}Sarting Mongo ${MONGO_VERSION}${NC}" +make dev.up.mongo +mongo_container="$(make --silent --no-print-directory dev.print-container.mongo)" + +echo -e "${GREEN}Waiting for MongoDB...${NC}" +until docker exec "$mongo_container" mongo --eval 'db.serverStatus()' &> /dev/null +do + if docker logs "$mongo_container" | grep -q "BadValue: Invalid value for version, found 4.0, expected '3.4' or '3.2'"; then + echo -e "${YELLOW}Already upgraded to Mongo 4.0, exiting${NC}" + exit + elif docker logs "$mongo_container" | grep -q "BadValue: Invalid value for version, found 3.6, expected '3.4' or '3.2'"; then + current_mongo_version="3.6" + break + fi + printf "." + sleep 1 +done + +if [[ $current_mongo_version == "3.4" ]]; then + echo -e "${GREEN}MongoDB ready.${NC}" + MONGO_VERSION_LIVE=$(docker exec -it "$mongo_container" mongo --quiet --eval "printjson(db.version())") + MONGO_VERSION_COMPAT=$(docker exec -it "$mongo_container" mongo --quiet \ + --eval "printjson(db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )['featureCompatibilityVersion'])") + echo -e "${GREEN}Mongo Server version: ${MONGO_VERSION_LIVE}${NC}" + echo -e "${GREEN}Mongo FeatureCompatibilityVersion version: ${MONGO_VERSION_COMPAT}${NC}" + + if echo "${MONGO_VERSION_COMPAT}" | grep -q "3\.2" ; then + echo -e "${GREEN}Upgrading FeatureCompatibilityVersion to 3.4${NC}" + docker exec -it "$mongo_container" mongo --eval "db.adminCommand( { setFeatureCompatibilityVersion: \"3.4\" } )" + else + echo -e "${GREEN}FeatureCompatibilityVersion already set to 3.4${NC}" + fi +fi + + +export MONGO_VERSION=3.6.17 + +echo +echo -e "${GREEN}Restarting Mongo on version ${MONGO_VERSION}${NC}" +make dev.up.mongo +mongo_container="$(make --silent --no-print-directory dev.print-container.mongo)" + +echo -e "${GREEN}Waiting for MongoDB...${NC}" +until docker exec "$mongo_container" mongo --eval 'db.serverStatus()' &> /dev/null +do + printf "." + sleep 1 +done + +echo -e "${GREEN}MongoDB ready.${NC}" +MONGO_VERSION_LIVE=$(docker exec -it "$mongo_container" mongo --quiet --eval "printjson(db.version())") +MONGO_VERSION_COMPAT=$(docker exec -it "$mongo_container" mongo --quiet \ + --eval "printjson(db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )['featureCompatibilityVersion'])") +echo -e "${GREEN}Mongo Server version: ${MONGO_VERSION_LIVE}${NC}" +echo -e "${GREEN}Mongo FeatureCompatibilityVersion version: ${MONGO_VERSION_COMPAT}${NC}" + +if echo "${MONGO_VERSION_COMPAT}" | grep -q "3\.4" ; then + echo -e "${GREEN}Upgrading FeatureCompatibilityVersion to 3.6${NC}" + docker exec -it "$mongo_container" mongo --eval "db.adminCommand( { setFeatureCompatibilityVersion: \"3.6\" } )" +else + echo -e "${GREEN}FeatureCompatibilityVersion already set to 3.6${NC}" +fi + +# Upgrade to mongo 4 +export MONGO_VERSION=4.0.22 + +echo +echo -e "${GREEN}Restarting Mongo on version ${MONGO_VERSION}${NC}" +make dev.up.mongo +mongo_container="$(make --silent --no-print-directory dev.print-container.mongo)" + +echo -e "${GREEN}Waiting for MongoDB...${NC}" +until docker exec "$mongo_container" mongo --eval 'db.serverStatus()' &> /dev/null +do + printf "." + sleep 1 +done + +echo -e "${GREEN}MongoDB ready.${NC}" +MONGO_VERSION_LIVE=$(docker exec -it "$mongo_container" mongo --quiet --eval "printjson(db.version())") +MONGO_VERSION_COMPAT=$(docker exec -it "$mongo_container" mongo --quiet \ + --eval "printjson(db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )['featureCompatibilityVersion'])") +echo -e "${GREEN}Mongo Server version: ${MONGO_VERSION_LIVE}${NC}" +echo -e "${GREEN}Mongo FeatureCompatibilityVersion version: ${MONGO_VERSION_COMPAT}${NC}" + +if echo "${MONGO_VERSION_COMPAT}" | grep -q "3\.6" ; then + echo -e "${GREEN}Upgrading FeatureCompatibilityVersion to 4.0${NC}" + docker exec -it "$mongo_container" mongo --eval "db.adminCommand( { setFeatureCompatibilityVersion: \"4.0\" } )" +else + echo -e "${GREEN}FeatureCompatibilityVersion already set to 4.0${NC}" +fi diff --git a/upgrade_mongo_4_2.sh b/upgrade_mongo_4_2.sh new file mode 100755 index 0000000000..e0738475ae --- /dev/null +++ b/upgrade_mongo_4_2.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +set -eu -o pipefail + +# This script will upgrade a devstack that was previosly running Mongo DB 4.0 to MongoDB 4.0 + +. scripts/colors.sh + +# Upgrade to mongo 4.2 +export MONGO_VERSION=4.2.14 + +echo +echo -e "${GREEN}Restarting Mongo on version ${MONGO_VERSION}${NC}" +make dev.up.mongo +mongo_container="$(make --silent --no-print-directory dev.print-container.mongo)" + +echo -e "${GREEN}Waiting for MongoDB...${NC}" +until docker exec "$mongo_container" mongo --eval 'db.serverStatus()' &> /dev/null +do + printf "." + sleep 1 +done + +echo -e "${GREEN}MongoDB ready.${NC}" +MONGO_VERSION_LIVE=$(docker exec -it "$mongo_container" mongo --quiet --eval "printjson(db.version())") +MONGO_VERSION_COMPAT=$(docker exec -it "$mongo_container" mongo --quiet \ + --eval "printjson(db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )['featureCompatibilityVersion'])") +echo -e "${GREEN}Mongo Server version: ${MONGO_VERSION_LIVE}${NC}" +echo -e "${GREEN}Mongo FeatureCompatibilityVersion version: ${MONGO_VERSION_COMPAT}${NC}" + +if echo "${MONGO_VERSION_COMPAT}" | grep -q "4\.0" ; then + echo -e "${GREEN}Upgrading FeatureCompatibilityVersion to 4.2${NC}" + docker exec -it "$mongo_container" mongo --eval "db.adminCommand( { setFeatureCompatibilityVersion: \"4.2\" } )" +else + echo -e "${GREEN}FeatureCompatibilityVersion already set to 4.2${NC}" +fi