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/ISSUE_TEMPLATE/Bug-Report.yml b/.github/ISSUE_TEMPLATE/Bug-Report.yml new file mode 100644 index 0000000000..cf43076a3c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/Bug-Report.yml @@ -0,0 +1,42 @@ +name: Bug Report +description: File a bug report +title: "[Bug]: " +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + Please check the [devstack troubleshooting guide](https://edx.readthedocs.io/projects/open-edx-devstack/en/latest/troubleshoot_general_tips.html) and the [existing list of blocking bugs](https://github.com/openedx/devstack/labels/blocker) before filing a new issue. + - type: textarea + id: bug-report + attributes: + label: Describe the bug that you are seeing. + validations: + required: true + - type: input + id: container + attributes: + label: Did this happen on the host (your machine or the remote instance) or in the container? + description: e.g. Did this happen outside of running `make dev.shell.` or inside running `make dev.shell.`? + validations: + required: true + - type: textarea + id: reproduction-steps + attributes: + label: Steps to reproduce. + description: Do you have a way to replicate what you're seeing? + validations: + required: false + - type: dropdown + id: mac-type + attributes: + label: What system was this issue seen on? + description: What type of OS/hardware was devstack running on when you observed it? + options: + - Apple Silicon + - Apple Intel + - Hosted Devstack + - Linux + - Other + validations: + required: true diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000..d0fde72ac1 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,9 @@ +version: 2 +updates: + # Adding new check for github-actions + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + reviewers: + - "openedx/arbi-bom" 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..398b269be1 --- /dev/null +++ b/.github/workflows/cli-tests.yml @@ -0,0 +1,72 @@ +# 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@v4 + - name: setup python + uses: actions/setup-python@v5 + 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 containerd.io + 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 docker-compose + limactl start --name=default template://docker + echo "DOCKER_HOST=unix:///Users/runner/.lima/default/sock/docker.sock" >> $GITHUB_ENV + mkdir -p ~/.docker/cli-plugins + ln -sfn /usr/local/opt/docker-compose/bin/docker-compose ~/.docker/cli-plugins/docker-compose + + - 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/follow-up-devstack-bugs.yml b/.github/workflows/follow-up-devstack-bugs.yml new file mode 100644 index 0000000000..85be7e2aae --- /dev/null +++ b/.github/workflows/follow-up-devstack-bugs.yml @@ -0,0 +1,24 @@ +name: Add comment +on: + issues: + types: + - labeled +jobs: + add-comment: + if: github.event.label.name == 'bug' + runs-on: ubuntu-latest + permissions: + issues: write + steps: + - name: Add comment + uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 + with: + issue-number: ${{ github.event.issue.number }} + body: | + Follow-up checklist (for Arch-BOM usage) + - [ ] Is the issue flaky or consistent? + - [ ] Does it affect multiple people or multiple types of systems? + - [ ] Update the devstack troubleshooting documentation page if necessary + - [ ] Do we need a new troubleshooting section? + - [ ] Did a troubleshooting section already exist, but it wasn't easy to find given the symptoms? + - [ ] If a recurring issue, should we ticket an automated resolution in place of the doc? diff --git a/.github/workflows/provisioning-tests.yml b/.github/workflows/provisioning-tests.yml new file mode 100644 index 0000000000..2c1e8cc9b5 --- /dev/null +++ b/.github/workflows/provisioning-tests.yml @@ -0,0 +1,113 @@ +# Core tests: Provision and bring up various services on devstack + +name: Provisioning tests + +on: + push: + branches: [master] + paths-ignore: + - '**.rst' + pull_request: + paths-ignore: + - '**.rst' + 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, analyticsapi+insights+lms] + fail-fast: false # some services can be flaky; let others run to completion even if one fails + + steps: + - uses: actions/checkout@v4 + - name: setup python + uses: actions/setup-python@v5 + 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 containerd.io + docker version + docker compose --version + + - name: free up disk space + # 2023-09-28: google-cloud-sdk removed from this list because it was intermittently + # unavailable as an apt package to remove, and might be migrating to snap. If more + # disk space is needed, see if the snap is installed, and remove that. + run: sudo apt remove --purge -y ghc-* azure-cli 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: "Bring up services" + run: make dev.up.${{matrix.services}} + + - name: "Wait for services to become ready" + run: | + # Wait a reasonable amount of time for services to come up. If they + # don't, then call the checks one more time to ensure that diagnostic + # information is printed out. (It's suppressed by wait-for.) + timeout 5m make dev.wait-for.${{matrix.services}} || timeout 1m 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 https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} + 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/quality.yml b/.github/workflows/quality.yml new file mode 100644 index 0000000000..4a9448502c --- /dev/null +++ b/.github/workflows/quality.yml @@ -0,0 +1,39 @@ +# Assorted quality checks for PRs. + +name: Quality checks + +on: + push: + branches: [master] + pull_request: + branches: + - '**' + +jobs: + + run_ci: + runs-on: ubuntu-20.04 + env: + DEVSTACK_WORKSPACE: /tmp + SHALLOW_CLONE: 1 + strategy: + matrix: + python-version: + - '3.8' + fail-fast: false + + steps: + - uses: actions/checkout@v4 + - name: setup python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Test Makefile + run: make selfcheck + + - name: Install Python dependencies + run: make requirements + + - name: Test that docs build without errors + 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..b6f9c11efe 100644 --- a/.gitignore +++ b/.gitignore @@ -88,6 +88,9 @@ ENV/ # OS X .DS_Store +# VSCode +.vscode/ + # PyCharm .idea/ @@ -99,3 +102,9 @@ ENV/ # Personal makefile extensions local.mk + +# Local option overrides +options.local.mk + +# emacs +*~ \ No newline at end of file diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 0000000000..c011984daa --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,19 @@ +# .readthedocs.yml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +build: + os: "ubuntu-22.04" + tools: + python: "3.8" + +# Build documentation in the docs/ directory with Sphinx +sphinx: + configuration: docs/conf.py + +python: + install: + - requirements: requirements/doc.txt diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 57c1a3c6db..0000000000 --- a/.travis.yml +++ /dev/null @@ -1,44 +0,0 @@ -sudo: required - -language: python - -python: - - "3.5" - -env: - - DEVSTACK_WORKSPACE=/tmp DOCKER_COMPOSE_VERSION=1.13.0 SHALLOW_CLONE=1 - -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 - - make pull - -script: - - 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 diff --git a/Makefile b/Makefile index 8decf2e518..f0ea7516db 100644 --- a/Makefile +++ b/Makefile @@ -1,202 +1,640 @@ -######################################################################################################################## -# -# 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 +# 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+cms +# make dev.up.lms +# make dev.up.without-deps.lms+forum+discovery+mysql80+elasticsearch710+memcached +# make dev.restart-container.mysql80+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.cms \ + 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.cms \ + dev.shell.cms_watcher dev.shell.xqueue dev.shell.xqueue_consumer \ + dev.static dev.static.lms dev.static.cms 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 \ + 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 \ + 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) -export DEVSTACK_WORKSPACE +# 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 + +# 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 development environment requirements + pip install -r requirements/dev.txt + +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 + 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 -requirements: ## Install requirements - pip install -r requirements.txt +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 "$@" -dev.provision: | check-memory dev.provision.run stop ## Provision dev environment with all services stopped +impl-dev.clone.ssh: ## Clone service repos using SSH method to the parent directory. + ./repo.sh clone_ssh -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.clone.ssh: ## Clone service repos using SSH method to the parent directory. + @scripts/send_metrics.py wrap "$@" -dev.status: ## Prints the status of all git repositories - ./repo.sh status +######################################################################################## +# Developer interface: Docker image management. +######################################################################################## -dev.repo.reset: ## Attempts to reset the local repo checkouts to the master working state - ./repo.sh reset +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.up: | check-memory ## Bring up all services with host volumes - docker-compose -f docker-compose.yml -f docker-compose-host.yml up -d +dev.pull.without-deps: _expects-service-list.dev.pull.without-deps -dev.up.watchers: | check-memory ## Bring up asset watcher containers - docker-compose -f docker-compose-watchers.yml up -d +dev.pull.without-deps.%: ## Pull latest Docker images for specific services. + @scripts/send_metrics.py wrap "dev.pull.without-deps.$*" -dev.up.all: | dev.up dev.up.watchers ## Bring up all services with host volumes, including watchers +impl-dev.pull.without-deps.%: ## Pull latest Docker images for specific services. + docker compose pull $$(echo $* | tr + " ") -dev.sync.daemon.start: ## Start the docker-sycn daemon - docker-sync start +dev.pull: + @scripts/send_metrics.py wrap "$@" -dev.sync.provision: | dev.sync.daemon.start dev.provision ## Provision with docker-sync enabled +impl-dev.pull: + @scripts/make_warn_default_large.sh "dev.pull" -dev.sync.requirements: ## Install requirements - gem install docker-sync +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 -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 +# 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.$*" -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" +impl-dev.pull.%: ## Pull latest Docker images for services and their dependencies. + docker compose pull --include-deps $$(echo $* | tr + " ") -stop: ## Stop all services - (test -d .docker-sync && docker-sync stop) || true ## Ignore failure here - docker-compose stop +######################################################################################## +# Developer interface: Database management. +######################################################################################## -stop.watchers: ## Stop asset watchers - docker-compose -f docker-compose-watchers.yml stop +impl-dev.provision: ## Provision dev environment with default services, and then stop them. + make dev.check-memory + $(WINPTY) bash ./provision.sh $(DEFAULT_SERVICES) + make dev.stop -stop.all: | stop stop.watchers ## Stop all containers, including asset watchers +dev.provision: ## Provision dev environment with default services, and then stop them. + @scripts/send_metrics.py wrap "$@" -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 down +impl-dev.provision.%: dev.check-memory ## Provision specified services. + echo $* + $(WINPTY) bash ./provision.sh $* -destroy: ## Remove all devstack-related containers, networks, and volumes - ./destroy.sh +dev.provision.%: ## Provision specified services. + @scripts/send_metrics.py wrap "dev.provision.$*" -logs: ## View logs from containers running in detached mode - docker-compose logs -f +dev.backup: dev.up.mysql57+mysql80+mongo+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.mysql80) -v $$(pwd)/.dev/backups:/backup debian:jessie tar zcvf /backup/mysql80.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.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 -%-logs: ## View the logs of the specified service container - docker-compose logs -f --tail=500 $* +dev.restore: dev.up.mysql57+mysql80+mongo+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.mysql80) -v $$(pwd)/.dev/backups:/backup debian:jessie tar zxvf /backup/mysql80.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.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 -pull: ## Update Docker images - docker-compose pull --parallel +# 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))) -validate: ## Validate the devstack configuration - docker-compose config +dev.migrate: | $(_db_migration_targets) ## Run migrations for applicable default services. -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.migrate.cms: + docker compose exec cms bash -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform/ && make migrate-cms' -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.migrate.lms: + docker compose exec lms bash -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform/ && make migrate-lms' -# 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.$* env TERM=$(TERM) /edx/app/$*/devstack.sh open +dev.migrate.%: ## Run migrations on a service. + docker compose exec $* bash -c 'source /edx/app/$*/$*_env && cd /edx/app/$*/$*/ && make migrate' -credentials-shell: ## Run a shell on the credentials container - docker exec -it edx.devstack.credentials env TERM=$(TERM) bash +dev.drop-db: _expects-database.dev.drop-db -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.drop-db.%: ## Irreversably drop the contents of a MySQL database in each mysql container. + docker compose exec -T mysql80 bash -c "mysql --execute=\"DROP DATABASE $*;\"" -forum-shell: ## Run a shell on the forum container - docker exec -it edx.devstack.forum env TERM=$(TERM) bash -%-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' +######################################################################################## +# Developer interface: Container management. +######################################################################################## -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.up.attach: _expects-service.dev.up.attach -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' +impl-dev.up.attach.%: ## Bring up a service and its dependencies + and attach to it. + docker compose up $* -credentials-update-db: ## Run migrations for the credentials container - docker exec -t edx.devstack.credentials bash -c 'make migrate' +dev.up.attach.%: ## Bring up a service and its dependencies + and attach to it. + @scripts/send_metrics.py wrap "dev.up.attach.$*" -update-db: | studio-update-db lms-update-db discovery-update-db ecommerce-update-db credentials-update-db ## Run the migrations for all services +dev.up.shell: _expects-service.dev.up.shell -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.up.shell.%: ## Bring up a service and its dependencies + shell into it. + make dev.up.$* + make dev.shell.$* -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.up.with-programs: dev.up dev.cache-programs ## Bring up default services + cache programs in LMS. -%-attach: ## Attach to the specified service container process to use the debugger & see logs. - docker attach edx.devstack.$* +dev.up.with-programs.%: dev.up.$* dev.cache-programs ## Bring up services and their dependencies + cache programs in LMS. -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.up.with-watchers: dev.up.$(DEFAULT_SERVICES)+lms_watcher+cms_watcher ## Bring up default services + asset watcher containers. -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.up.with-watchers.%: ## Bring up services and their dependencies + asset watcher containers. + make dev.up.$* + make dev.up.lms_watcher+cms_watcher -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.up.without-deps: _expects-service-list.dev.up.without-deps -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}")' +impl-dev.up.without-deps.%: dev.check-memory ## Bring up services by themselves. + docker compose up -d --no-deps $$(echo $* | tr + " ") -%-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.up.without-deps.%: ## Bring up services by themselves. + @scripts/send_metrics.py wrap "dev.up.without-deps.$*" -credentials-static: ## Rebuild static assets for the credentials container - docker exec -t edx.devstack.credentials bash -c 'make static' +dev.up.without-deps.shell: _expects-service.dev.up.without-deps.shell -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.up.without-deps.shell.%: ## Bring up a service by itself + shell into it. + make dev.up.without-deps.$* + make dev.shell.$* -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.up: + @scripts/make_warn_default_large.sh "$@" -static: | credentials-static discovery-static ecommerce-static lms-static studio-static ## Rebuild static assets for all service containers +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 -healthchecks: ## Run a curl against all services' healthcheck endpoints to make sure they are up. This will eventually be parameterized - ./healthchecks.sh +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 -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"' +# Wildcards must be below anything they could match +dev.up.%: + @scripts/send_metrics.py wrap "dev.up.$*" -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.ps: ## View list of created services and their statuses. + docker compose ps -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.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 $*) -mysql-shell: ## Run a shell on the mysql container - docker-compose exec mysql bash +dev.restart-container: ## Restart all service containers. + docker compose restart $$(echo $* | tr + " ") -mysql-shell-edxapp: ## Run a mysql shell on the edxapp database - docker-compose exec mysql bash -c "mysql edxapp" +dev.restart-container.%: ## Restart specific services' containers. + docker compose restart $$(echo $* | tr + " ") -mongo-shell: ## Run a shell on the mongo container - docker-compose exec mongo bash +dev.stop: ## Stop all running services. + docker compose stop -# 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 +dev.stop.%: ## Stop specific services. + docker compose stop $$(echo $* | tr + " ") + +dev.kill: ## Kill all running services. + docker compose stop + +dev.kill.%: ## Kill specific services. + docker compose kill $$(echo $* | tr + " ") + +dev.rm-stopped: ## Remove stopped containers. Does not affect running containers. + docker compose rm --force + +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." + +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." + +dev.remove-containers: ## Stop and remove containers and networks for all services. + docker compose down + +dev.remove-containers.%: ## Stop and remove containers for specific services. + docker compose rm --force --stop $$(echo $* | tr + " ") + + +######################################################################################## +# Developer interface: System queries and checks. +######################################################################################## + +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 + +dev.stats: ## Get per-container CPU and memory utilization data. + docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}" + +dev.check: dev.check.$(DEFAULT_SERVICES) ## Run checks for the default service set. + +dev.check.%: # Run checks for a given service or set of services. + $(WINPTY) bash ./check.sh $* + +dev.wait-for.%: ## Wait for these services to become ready + $(WINPTY) bash ./wait-ready.sh $$(echo $* | tr + " ") + +dev.validate: ## Print effective Docker Compose config, validating files in COMPOSE_FILE. + docker compose config -# 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 - rm course-generator/tmp-config.json -check-memory: - @if [ `docker info --format '{{json .}}' | python -c "from __future__ import print_function; import sys, json; print(json.load(sys.stdin)['MemTotal'])"` -lt 2147483648 ]; 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 +######################################################################################## +# Developer interface: Runtime service management (caching, logs, shells). +######################################################################################## +dev.cache-programs: ## Copy programs from Discovery to Memcached for use in LMS. + $(WINPTY) bash ./programs/provision.sh cache + +dev.restart-devserver: _expects-service.dev.restart-devserver + +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}")' + +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" + +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}")' + +dev.logs: ## View logs from running containers. + docker compose logs -f + +dev.logs.%: ## View the logs of the specified service container. + docker compose logs -f --tail=500 $* + +dev.attach: _expects-service.dev.attach + +dev.attach.%: ## Attach to the specified service container process for debugging & seeing logs. + docker attach "$$(make --silent --no-print-directory dev.print-container.$*)" + +dev.shell: _expects-service.dev.shell + +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' + +dev.shell.discovery: + docker compose exec discovery env TERM=$(TERM) bash -c '/bin/bash' + +dev.shell.ecommerce: + docker compose exec ecommerce env TERM=$(TERM) /bin/bash + +dev.shell.registrar: + docker compose exec registrar env TERM=$(TERM) /bin/bash + +dev.shell.xqueue: + docker compose exec xqueue env TERM=$(TERM) /bin/bash + +dev.shell.lms: + docker compose exec lms env TERM=$(TERM) bash -c '/bin/bash' + +dev.shell.lms_watcher: + docker compose exec lms_watcher env TERM=$(TERM) bash -c '/bin/bash' + +dev.shell.cms: + docker compose exec cms env TERM=$(TERM) bash -c '/bin/bash' + +dev.shell.cms_watcher: + docker compose exec cms_watcher env TERM=$(TERM) bash -c '/bin/bash' + +dev.shell.xqueue_consumer: + docker compose exec xqueue_consumer env TERM=$(TERM) /bin/bash + +dev.shell.analyticsapi: + docker exec -it edx.devstack.analyticsapi env TERM=$(TERM) bash -c '/bin/bash' + +dev.shell.insights: + docker compose exec insights env TERM=$(TERM) bash -c 'eval $$(source /edx/app/insights/insights_env; echo PATH="$$PATH";) && /bin/bash' + +dev.shell.%: ## Run a shell on the specified service's container. + docker compose exec $* /bin/bash + +dev.dbshell: + docker compose exec mysql80 bash -c "mysql" + +DB_NAMES_LIST = credentials discovery ecommerce notes registrar xqueue edxapp edxapp_csmh dashboard analytics-api reports reports_v1 +_db_copy8_targets = $(addprefix dev.dbcopy8.,$(DB_NAMES_LIST)) +dev.dbcopyall8: ## Clean mysql80 container and copy data from old mysql 5.7 containers into new mysql8 dbs + $(MAKE) stop + $(MAKE) dev.remove-containers.mysql80 + docker volume rm devstack_mysql80_data + $(MAKE) dev.up.mysql57+mysql80 + $(MAKE) dev.wait-for.mysql57+mysql80 + docker compose exec -T mysql80 mysql -uroot mysql < provision-mysql80.sql + $(MAKE) $(_db_copy8_targets) + $(MAKE) stop + +dev.dbcopy8.%: ## Copy data from old mysql 5.7 container into a new 8 db + docker compose exec mysql57 mysqldump "$*" > .dev/$*.sql + docker compose exec -T mysql80 mysql "$*" < .dev/$*.sql + rm .dev/$*.sql + +dev.dbshell.%: ## Run a SQL shell on the given database. + docker compose exec mysql80 bash -c "mysql $*" + +# 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))) + +dev.static: | $(_asset_compilation_targets) + +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.cms: + docker compose exec -T cms bash -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform/ && paver update_assets cms' + +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' + + +######################################################################################## +# Developer interface: Commands that do a combination of things. +######################################################################################## + + +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. + +dev.destroy.coursegraph: dev.remove-containers.coursegraph ## Remove all coursegraph data. + docker volume rm ${COMPOSE_PROJECT_NAME}_coursegraph_data + +# See https://github.com/openedx/devstack/issues/1113 for lack of ability to destroy data volumes +dev.destroy: ## Irreversibly remove all devstack-related containers and networks (though not data 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. +######################################################################################## + +# 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 -remove-containers, $(ALL_SERVICES_LIST)): %-remove-containers: dev.remove-containers.% +$(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+cms" + +_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 + +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 + +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 + +hadoop-application-logs-%: ## View hadoop logs by application Id. + docker compose exec nodemanager yarn logs -applicationId $* + +create-test-course: ## Provisions cms, and ecommerce with course(s) in test-course.json. + $(WINPTY) bash ./course-generator/create-courses.sh --cms --ecommerce course-generator/test-course.json + +build-courses: ## Build course and provision cms, 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 --cms --ecommerce course-generator/tmp-config.json + rm course-generator/tmp-config.json 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 c61ab59afb..15c3d45f6c 100644 --- a/README.rst +++ b/README.rst @@ -1,861 +1,113 @@ -Open edX Devstack |Build Status| -================================ +Devstack +################# -Get up and running quickly with Open edX services. +|ci-provisioning-badge| |ci-cli-badge| |doc-badge| |license-badge| +|status-badge| -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. -Support -------- +DEPRECATION NOTICE +****************** -Tickets or issues should be filed in Jira under the platform project: -https://openedx.atlassian.net/projects/PLAT/issues +Going forward, devstack will be primarily used for development by 2U. To do development +on Open edX, it is recommended that `Tutor`_ be used instead. -FYI ---- +For more information on this deprecation, please visit the `associated deprecation ticket`_. -You should run any ``make`` targets described below on your local machine, *not* -from within a VM. +.. _Tutor: https://docs.tutor.edly.io/ +.. _associated deprecation ticket: https://github.com/openedx/devstack/issues/907 -Prerequisites -------------- - -This project requires **Docker 17.06+ CE**. We recommend Docker Stable, but -Docker Edge should work as well. - -**NOTE:** Switching between Docker Stable and Docker Edge will remove all images and -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. - -`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: - -.. 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 ------------------------ - -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. - -.. code:: sh - - make down - make pull - make dev.up - -This will stop any running devstack containers, pull the latest images, and then start all of the devstack containers. Getting Started ---------------- - -All of the services 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. Our testing found that `configuring Docker for Mac`_ with -a minimum of 2 CPUs and 4GB of memory works well. - -1. Install the requirements (optional for MacOS). - - This is not required for Docker for Mac, since it comes with - ``docker-compose`` out of the box. - - .. code:: sh - - make requirements - -2. 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``, - ``~/workspace/ecommerce``, etc. These repos can be cloned with the command - below. - - .. code:: sh - - make dev.clone - - You may customize where the local repositories are found by setting the - DEVSTACK\_WORKSPACE environment variable. - -3. 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). - - **NOTE:** When running the provision command, databases for ecommerce and edxapp - will be dropped and recreated. - - The username and password for the superusers are both ``edx``. You can access - the services directly via Django admin at the ``/admin/`` path, or login via - single sign-on at ``/login/``. - - Default: - - .. code:: sh - - make dev.provision - - Provision using `docker-sync`_: - - .. code:: sh - - make dev.sync.provision - - -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``. - - Default: - - .. code:: sh - - make dev.up - - Start using `docker-sync`_: - - .. code:: sh - - make dev.sync.up - - -After the services have started, if you need shell access to one of the -services, run ``make -shell``. For example to access the -Catalog/Course Discovery Service, you can run: - -.. code:: sh - - make discovery-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: - -.. code:: sh - - make logs - -To view the logs of a specific service container run ``make -logs``. -For example, to access the logs for Ecommerce, you can run: - -.. code:: sh - - make ecommerce-logs - -To reset your environment and start provisioning from scratch, you can run: - -.. code:: sh - - make destroy - -For information on all the available ``make`` commands, you can run: - -.. code:: sh - - make help - -Usernames and Passwords ------------------------ - -The provisioning script creates a Django superuser for every service. - -:: - - Email: edx@example.com - Username: edx - Password: edx - -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 | -+------------+------------------------+ - -Service URLs ------------- - -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/ | -+---------------------+-------------------------------------+ -| 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 -- 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. We are experimenting with hosting a ``Dockerfile`` in the ``edx/credentials`` repository, hence the ``devstack-slim`` - tag. See that repo for more information on building its image. -2. edxapp and IDAs use the ``latest`` tag since their configuration changes have been merged to master branch of - ``edx/configuration``. -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``. - -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`_. - -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 ------------------------------- - -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 - -You can clean up data by running ``docker system prune``, but you will first want -to run ``make dev.up`` so it doesn't delete stopped containers. - -Or, you can run the following commands to clean up dangling images and volumes: - -.. code:: sh - - docker image prune -f - docker volume prune -f # (Be careful, this will remove your persistent data!) +*************** -No such file or directory -~~~~~~~~~~~~~~~~~~~~~~~~~ +The `Getting Started guide`_ lives with the rest of the documentation in Read the Docs. -While provisioning, some have seen the following error: +.. _Getting Started guide: https://edx.readthedocs.io/projects/open-edx-devstack/en/latest/getting_started.html -.. code:: sh +Getting Help +************ - ... - cwd = os.getcwdu() - OSError: [Errno 2] No such file or directory - make: *** [dev.provision.run] Error 1 +Documentation +============= -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: +Start by going through `the documentation`_ on Read the Docs. If you need more help see below. -.. code:: sh +.. _the documentation: https://edx.readthedocs.io/projects/open-edx-devstack/en/latest - # repeat the following until you get past the error. - make stop - make dev.provision +More Help +========= -Once you get past the issue, you should be able to continue to use sync versions -of the make targets. +If you're having trouble, we have discussion forums at +https://discuss.openedx.org where you can connect with others in the +community. -Memory Limit -~~~~~~~~~~~~ +Our real-time conversations are on Slack. You can request a `Slack +invitation`_, then join our `community Slack workspace`_. -While provisioning, some have seen the following error: +For anything non-trivial, the best path is to open an issue in this +repository with as many details about the issue you are facing as you +can provide. -.. code:: sh +https://github.com/openedx/devstack/issues - ... - Build failed running pavelib.assets.update_assets: Subprocess return code: 137 +For more information about these options, see the `Getting Help`_ page. -This error is an indication that your docker process died during execution. Most likely, -this error is due to running out of memory. If your Docker configuration is set to 2GB (docker for mac default), -increase it to 4GB (the current recommendation). If your Docker configuration is set to 4GB, then try 6GB. +.. _Slack invitation: https://openedx.org/slack +.. _community Slack workspace: https://openedx.slack.com/ +.. _Getting Help: https://openedx.org/getting-help -Performance ------------ +License +******* -Improve Mac OSX Performance with docker-sync -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The code in this repository is licensed under the AGPL 3.0 unless +otherwise noted. -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. +Please see `LICENSE `_ for details. -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. +Contributing +************ -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. +Contributions are very welcome. +Please read `How To Contribute `_ for details. -If you are using macOS, please follow the `Docker Sync installation -instructions`_ before provisioning. +This project is currently accepting all types of contributions, bug fixes, +security fixes, maintenance work, or new features. However, please make sure +to have a discussion about your new feature idea with the maintainers prior to +beginning development to maximize the chances of your change being accepted. +You can start a conversation by creating a new issue on this repo summarizing +your idea. -Docker Sync Troubleshooting tips -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Check your version and make sure you are running 0.4.6 or above: +The Open edX Code of Conduct +**************************** -.. code:: sh +All community members are expected to follow the `Open edX Code of Conduct`_. - docker-sync --version +.. _Open edX Code of Conduct: https://openedx.org/code-of-conduct/ -If not, upgrade to the latest version: +People +****** -.. code:: sh +**TODO:** Create ``catalog-info.yaml`` for Backstage, and update this section. - gem update docker-sync +Reporting Security Issues +************************* -If you are having issues with docker sync, try the following: +Please do not report security issues in public. Please email security@openedx.org. -.. code:: sh +.. |ci-provisioning-badge| 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: CI Provisioning - make stop - docker-sync stop - docker-sync clean +.. |ci-cli-badge| 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: CI CLI -Cached Consistency Mode -~~~~~~~~~~~~~~~~~~~~~~~ +.. |doc-badge| image:: https://readthedocs.org/projects/open-edx-devstack/badge/?version=latest + :target: https://open-edx-devstack.readthedocs.io/en/latest/ + :alt: Documentation -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`_. +.. |license-badge| image:: https://img.shields.io/github/license/openedx/devstack.svg + :target: https://github.com/openedx/devstack/blob/master/LICENSE + :alt: License -.. _Docker Compose: https://docs.docker.com/compose/ -.. _Docker for Mac: https://docs.docker.com/docker-for-mac/ -.. _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 -.. _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 -.. _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 +.. |status-badge| image:: https://img.shields.io/badge/Status-Maintained-brightgreen 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..3c0781f025 --- /dev/null +++ b/check.sh @@ -0,0 +1,170 @@ +#!/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 bash -c "$cmd"; then # Run the command itself and check if it succeeded. + succeeded="$succeeded $check_name" + else + docker compose logs --tail 500 "$service" # Just show recent logs, not all history + failed="$failed $check_name" + fi + set -e # Re-enable exit-on-error + echo # Newline +} + +mysql_run_check() { + container_name="$1" + mysql_probe="SELECT EXISTS(SELECT 1 FROM mysql.user WHERE user = 'root')" + # The use of `--protocol tcp` forces MySQL to connect over TCP rather than + # via a UNIX socket. This is needed because when MySQL starts for the first + # time in a new container, it starts a "temporary server" that runs for a + # few seconds and then shuts down before the "real" server starts up. The + # temporary server does not listen on the TCP port, but if the mysql + # command is not told which server to use, it will first try the UNIX + # socket and only after that will it try the default TCP port. + # + # By specifying that mysql should use TCP, we won't get an early false + # positive "ready" response while the temporary server is running. + run_check "${container_name}_query" "$container_name" \ + "docker compose exec -T $(printf %q "$container_name") mysql --protocol tcp -uroot -se $(printf %q "$mysql_probe")" +} + +if should_check mysql57; then + echo "Checking MySQL 5.7 query endpoint:" + mysql_run_check mysql57 +fi + +if should_check mysql80; then + echo "Checking MySQL 8.0 query endpoint:" + mysql_run_check mysql80 +fi + +if should_check mongo; then + echo "Checking MongoDB status:" + run_check mongo_status mongo \ + "docker compose exec -T mongo mongo --eval \"db.serverStatus()\"" +fi + +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 "Validating LMS volume:" + run_check lms_volume lms \ + "make validate-lms-volume" +fi + +if should_check cms; then + echo "Checking CMS heartbeat:" + run_check cms_heartbeat cms \ + "curl --fail -L http://localhost:18010/heartbeat" +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..1de8df832b --- /dev/null +++ b/compatibility.mk @@ -0,0 +1,96 @@ +# 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 \ + healthchecks lms-restart \ + lms-watcher-shell logs provision pull \ + pull.xqueue restore static stats stop stop.all \ + stop.watchers stop.xqueue cms-restart \ + cms-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+cms_watcher + +down: dev.down + +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+cms_watcher + +stop.xqueue: dev.stop.xqueue+xqueue_consumer + +cms-restart: dev.restart-devserver.cms + +cms-watcher-shell: dev.shell.cms_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..77e4572820 --- /dev/null +++ b/configuration_files/analytics_api.yml @@ -0,0 +1,79 @@ +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.PyMemcacheCache + KEY_PREFIX: analytics_api + LOCATION: + - memcache + OPTIONS: + no_delay: true + ignore_exc: true + use_pooling: true +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_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..2aa4d573dc --- /dev/null +++ b/configuration_files/discovery.yml @@ -0,0 +1,97 @@ +--- + + +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.PyMemcacheCache + KEY_PREFIX: discovery + LOCATION: + - edx.devstack.memcached:11211 + OPTIONS: + no_delay: true + ignore_exc: true + use_pooling: true +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_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/ecommerce.yml b/configuration_files/ecommerce.yml new file mode 100644 index 0000000000..e36bac008c --- /dev/null +++ b/configuration_files/ecommerce.yml @@ -0,0 +1,131 @@ +--- + +AFFILIATE_COOKIE_KEY: dev_affiliate_id +API_ROOT: null +BACKEND_SERVICE_EDX_OAUTH2_KEY: ecommerce-backend-service-key +BACKEND_SERVICE_EDX_OAUTH2_PROVIDER_URL: http://localhost:18000/oauth2 +BACKEND_SERVICE_EDX_OAUTH2_SECRET: ecommerce-backend-service-secret +ECOMMERCE_WORKER_BROKER_HOST: 172.17.0.2 +BROKER_URL: amqp://celery:celery@172.17.0.2:5672 +CACHES: + default: + BACKEND: django.core.cache.backends.memcached.MemcachedCache + KEY_PREFIX: ecommerce + LOCATION: + - edx.devstack.memcached:11211 +COMPREHENSIVE_THEME_DIRS: +- /edx/var/edx-themes/edx-themes/ecommerce +- /edx/app/ecommerce/ecommerce/ecommerce/themes +CORS_ALLOW_CREDENTIALS: false +CORS_ORIGIN_WHITELIST: [] +CORS_URLS_REGEX: '' +CSRF_COOKIE_SECURE: false +DATABASES: + default: + ATOMIC_REQUESTS: true + CONN_MAX_AGE: 60 + ENGINE: django.db.backends.mysql + HOST: edx.devstack.mysql80 + NAME: ecommerce + OPTIONS: + connect_timeout: 10 + init_command: SET sql_mode='STRICT_TRANS_TABLES' + PASSWORD: password + PORT: '3306' + USER: ecomm001 +DEFAULT_SITE_THEME: null +ECOMMERCE_URL_ROOT: http://localhost:18130 +EDX_API_KEY: PUT_YOUR_API_KEY_HERE +EDX_DRF_EXTENSIONS: + JWT_PAYLOAD_MERGEABLE_USER_ATTRIBUTES: + - tracking_context + JWT_PAYLOAD_USER_ATTRIBUTE_MAPPING: + administrator: is_staff + email: email + full_name: full_name + tracking_context: tracking_context + user_id: lms_user_id + OAUTH2_USER_INFO_URL: http://edx.devstack.lms:18000/oauth2/user_info +ENABLE_COMPREHENSIVE_THEMING: false +ENROLLMENT_FULFILLMENT_TIMEOUT: 7 +ENTERPRISE_SERVICE_URL: http://edx.devstack.lms:18000/enterprise/ +ENTERPRISE_LEARNER_PORTAL_HOSTNAME: localhost:8734 +EXTRA_APPS: [] +JWT_AUTH: + JWT_ALGORITHM: HS256 + JWT_AUTH_COOKIE_HEADER_PAYLOAD: edx-jwt-cookie-header-payload + JWT_AUTH_COOKIE_SIGNATURE: edx-jwt-cookie-signature + JWT_DECODE_HANDLER: ecommerce.extensions.api.handlers.jwt_decode_handler + JWT_ISSUERS: + - AUDIENCE: lms-key + ISSUER: http://localhost:18000/oauth2 + SECRET_KEY: lms-secret + - AUDIENCE: lms-key + ISSUER: ecommerce_worker + SECRET_KEY: lms-secret + JWT_LEEWAY: 1 + JWT_PUBLIC_SIGNING_JWK_SET: '' + JWT_SECRET_KEY: lms-secret + JWT_VERIFY_EXPIRATION: true +LANGUAGE_CODE: en +LANGUAGE_COOKIE_NAME: openedx-language-preference +LOGGING_ROOT_OVERRIDES: {} +LOGGING_SUBSECTION_OVERRIDES: {} +MEDIA_STORAGE_BACKEND: + DEFAULT_FILE_STORAGE: django.core.files.storage.FileSystemStorage + MEDIA_ROOT: /edx/var/ecommerce/media + MEDIA_URL: /media/ +OSCAR_FROM_EMAIL: oscar@example.com +PAYMENT_MICROFRONTEND_URL: null +PAYMENT_PROCESSOR_CONFIG: + edx: + cybersource: + access_key: SET-ME-PLEASE + apple_pay_country_code: US + apple_pay_merchant_id_certificate_path: /edx/etc/ssl/apple_pay_merchant.pem + apple_pay_merchant_id_domain_association: 'This value should also be in + private configuration. It, too, + + will span multiple lines. + + ' + apple_pay_merchant_identifier: merchant.com.example + cancel_page_url: /checkout/cancel-checkout/ + merchant_id: SET-ME-PLEASE + payment_page_url: https://testsecureacceptance.cybersource.com/pay + profile_id: SET-ME-PLEASE + receipt_page_url: /checkout/receipt/ + secret_key: SET-ME-PLEASE + send_level_2_3_details: true + soap_api_url: https://ics2wstest.ic3.com/commerce/1.x/transactionProcessor/CyberSourceTransaction_1.140.wsdl + sop_access_key: SET-ME-PLEASE + sop_payment_page_url: https://testsecureacceptance.cybersource.com/silent/pay + sop_profile_id: SET-ME-PLEASE + sop_secret_key: SET-ME-PLEASE + transaction_key: SET-ME-PLEASE + paypal: + cancel_url: /checkout/cancel-checkout/ + client_id: SET-ME-PLEASE + client_secret: SET-ME-PLEASE + error_url: /checkout/error/ + mode: sandbox + receipt_url: /checkout/receipt/ +PLATFORM_NAME: Your Platform Name Here +SAILTHRU_KEY: sailthru key here +SAILTHRU_SECRET: sailthru secret here +SECRET_KEY: Your secret key here +SESSION_COOKIE_SECURE: true +SESSION_EXPIRE_AT_BROWSER_CLOSE: false +SOCIAL_AUTH_EDX_OAUTH2_ISSUER: http://127.0.0.1:8000 +SOCIAL_AUTH_EDX_OAUTH2_KEY: ecommerce-sso-key +SOCIAL_AUTH_EDX_OAUTH2_LOGOUT_URL: http://localhost:18000/logout +SOCIAL_AUTH_EDX_OAUTH2_SECRET: ecommerce-sso-secret +SOCIAL_AUTH_EDX_OAUTH2_URL_ROOT: http://127.0.0.1:8000 +SOCIAL_AUTH_REDIRECT_IS_HTTPS: false +STATICFILES_STORAGE: ecommerce.theming.storage.ThemeStorage +STATIC_ROOT: /edx/var/ecommerce/staticfiles +THEME_SCSS: sass/themes/default.scss +TIME_ZONE: UTC +USERNAME_REPLACEMENT_WORKER: OVERRIDE THIS WITH A VALID USERNAME +SDN_CHECK_API_URL: https://data.trade.gov/consolidated_screening_list/v1/search +SDN_CHECK_API_KEY: sdn search key here diff --git a/configuration_files/insights.yml b/configuration_files/insights.yml new file mode 100644 index 0000000000..8f903ca8ad --- /dev/null +++ b/configuration_files/insights.yml @@ -0,0 +1,62 @@ +--- + +APPLICATION_NAME: Insights +BACKEND_SERVICE_EDX_OAUTH2_PROVIDER_URL: http://edx.devstack.lms:18000/oauth2 +CACHES: + default: + BACKEND: django.core.cache.backends.memcached.PyMemcacheCache + KEY_PREFIX: default_env-default_deployment-insights + LOCATION: + - edx.devstack.memcached:11211 + OPTIONS: + no_delay: true + ignore_exc: true + use_pooling: true +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..5fba81b083 --- /dev/null +++ b/configuration_files/registrar.yml @@ -0,0 +1,74 @@ +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.PyMemcacheCache + KEY_PREFIX: registrar + LOCATION: + - edx.devstack.memcached:11211 + OPTIONS: + no_delay: true + ignore_exc: true + use_pooling: true +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/configuration_files/xqueue.yml b/configuration_files/xqueue.yml new file mode 100644 index 0000000000..0a648a8b11 --- /dev/null +++ b/configuration_files/xqueue.yml @@ -0,0 +1,34 @@ +CONSUMER_DELAY: 10 +CSRF_COOKIE_SECURE: false +DATABASES: + default: + ATOMIC_REQUESTS: true + CONN_MAX_AGE: 0 + ENGINE: django.db.backends.mysql + HOST: edx.devstack.mysql80 + NAME: xqueue + OPTIONS: {} + PASSWORD: password + PORT: '3306' + USER: xqueue001 +LOCAL_LOGLEVEL: INFO +LOGGING_ENV: sandbox +LOG_DIR: /edx/var/logs/xqueue +NEWRELIC_APPNAME: default_env-default_deployment-xqueue +NEWRELIC_LICENSE_KEY: '' +REQUESTS_BASIC_AUTH: +- edx +- edx +SESSION_COOKIE_SECURE: false +SUBMISSION_PROCESSING_DELAY: 1 +SYSLOG_SERVER: localhost +UPLOAD_BUCKET: sandbox-bucket +UPLOAD_PATH_PREFIX: sandbox-xqueue +USERS: + lms: password +XQUEUES: + certificates: null + edX-Open_DemoX: http://localhost:18050 + open-ended: null + open-ended-message: null + test-pull: null diff --git a/course-generator/build-course-json.sh b/course-generator/build-course-json.sh index 32f908bc0e..0b852fe209 100755 --- a/course-generator/build-course-json.sh +++ b/course-generator/build-course-json.sh @@ -1,4 +1,4 @@ -# Script to build course configurations in proper json format that can be passed into provision-courses.sh +# Script to build course configurations in proper json format that can be passed into create-courses.sh # See test-course.json for a master list of course configurations # TODO: Link documentation for course-generator-tool # USAGE: ./build-course-json.sh [course-config-file] diff --git a/course-generator/create-courses.sh b/course-generator/create-courses.sh index d71ff762c5..c4c714a5ec 100755 --- a/course-generator/create-courses.sh +++ b/course-generator/create-courses.sh @@ -1,35 +1,29 @@ -# Script that provisions studio, ecommerce, marketing with courses -# USAGE: ./create-courses [--studio] [--ecommerce] [--marketing] course-config.json -studio=false +#!/usr/bin/env bash +# Script that provisions cms, and ecommerce with courses +# USAGE: ./create-courses [--cms] [--ecommerce] course-config.json +cms=false ecommerce=false -marketing=false echo "Parsing options" container_error=false for arg in "$@"; do - if [ $arg == "--studio" ]; then - if [ ! "$(docker-compose exec lms bash -c 'echo "Course will be created for studio"; exit $?')" ]; then - echo "Issue with studio container" + if [ $arg == "--cms" ]; then + if [ ! "$(docker compose exec lms bash -c 'echo "Course will be created for cms"; exit $?')" ]; then + echo "Issue with cms container" container_error=true else - studio=true + cms=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 @@ -38,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="" @@ -46,17 +40,12 @@ while IFS='' read -r line || [[ -n "$line" ]]; do course_json=$course_json${line/"\"number\": null"/"\"number\": \""$RANDOM"\""} done < "${@: -1}" -if $studio ; then - echo "Creating courses on studio." - docker-compose exec lms bash -c "source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py cms --settings=devstack_docker generate_courses '$course_json'" +if $cms ; then + echo "Creating courses on cms." + docker compose exec lms bash -c "source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py cms --settings=devstack_docker generate_courses '$course_json'" 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..0f1b0dda51 --- /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 e7afaca651..235367f7bd 100755 --- a/destroy.sh +++ b/destroy.sh @@ -1,16 +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 - echo - if [[ "$OSTYPE" == "darwin"* ]]; then - set +e - docker-sync stop - docker-sync clean - set -e - fi - docker-compose down -v + docker compose down -v fi diff --git a/docker-compose-host.yml b/docker-compose-host.yml index fae233f678..2f532d505d 100644 --- a/docker-compose-host.yml +++ b/docker-compose-host.yml @@ -1,34 +1,156 @@ + 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 + - 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 + - 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 + - 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 - studio: + - 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/notes/ + - ${DEVSTACK_WORKSPACE}/src:/edx/src + registrar: volumes: - - ${DEVSTACK_WORKSPACE}/edx-platform:/edx/app/edxapp/edx-platform:cached + - ${DEVSTACK_WORKSPACE}/registrar:/edx/app/registrar + registrar-worker: + volumes: + - ${DEVSTACK_WORKSPACE}/registrar:/edx/app/registrar + cms: + volumes: + - ${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}/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-learner-dashboard: + volumes: + - ${DEVSTACK_WORKSPACE}/frontend-app-learner-dashboard:/edx/app/frontend-app-learner-dashboard + - frontend_app_learner_dashboard_node_modules:/edx/app/frontend-app-learner-dashboard/node_modules + - ${DEVSTACK_WORKSPACE}/src:/edx/app/src + frontend-app-learner-record: volumes: - - ${DEVSTACK_WORKSPACE}/cs_comments_service:/edx/app/forum/cs_comments_service:cached - + - ${DEVSTACK_WORKSPACE}/frontend-app-learner-record:/edx/app/frontend-app-learner-record + - frontend_app_learner_record_node_modules:/edx/app/frontend-app-learner-record/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_learner_dashboard_node_modules: + frontend_app_learner_record_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 61db3f204c..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:/root/.ssh/id_rsa - - ../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 new file mode 100644 index 0000000000..b377f45c40 --- /dev/null +++ b/docker-compose-themes.yml @@ -0,0 +1,15 @@ +version: "2.1" + +services: + discovery: + volumes: + - ${DEVSTACK_WORKSPACE}/edx-themes:/edx/app/edx-themes + ecommerce: + volumes: + - ${DEVSTACK_WORKSPACE}/edx-themes:/edx/app/edx-themes + lms: + volumes: + - ${DEVSTACK_WORKSPACE}/edx-themes:/edx/app/edx-themes + cms: + volumes: + - ${DEVSTACK_WORKSPACE}/edx-themes:/edx/app/edx-themes diff --git a/docker-compose-watchers.yml b/docker-compose-watchers.yml index 34c9074a0b..2b8954afb7 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 + FRONTEND_TEST_SERVER_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: + cms_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}.cms_watcher" environment: - BOK_CHOY_HOSTNAME: edx.devstack.studio_watcher + FRONTEND_TEST_SERVER_HOSTNAME: edx.devstack.cms_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 + - edxapp_cms_assets:/edx/var/edxapp/staticfiles/ + - ${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.cms_watcher volumes: edxapp_lms_assets: - edxapp_studio_assets: + edxapp_cms_assets: + edxapp_node_modules: diff --git a/docker-compose.yml b/docker-compose.yml index 87ffb11c4b..694dbaf641 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,41 +11,162 @@ 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 - elasticsearch: - container_name: edx.devstack.elasticsearch - image: edxops/elasticsearch:devstack - # TODO: What to do about these forwarded ports? They'll conflict with ports forwarded by the Vagrant VM. - # ports: - # - "9200:9200" - # - "9300:9300" + 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:5.15.0 + 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/edxedxedx" # Initial username/password for Neo4j Web interface. + + 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: - - elasticsearch_data:/usr/share/elasticsearch/data - - elasticsearch_data:/usr/share/elasticsearch/logs + - 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" + - "plugins.security.disabled=true" 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,96 +174,272 @@ 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:-5.0.24} + networks: + default: + aliases: + - edx.devstack.mongo + ports: + - "27017:27017" volumes: - mongo_data:/data/db + - mongo_config_data:/data/configdb - 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: + - mysql57_data:/var/lib/mysql + + mysql80: + command: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.mysql80" + hostname: mysql80.devstack.edx + environment: + MYSQL_ROOT_PASSWORD: "" + MYSQL_ALLOW_EMPTY_PASSWORD: "yes" + # Oracle-packaged version includes a `linux/arm64/v8` version, needed for + # machines with Apple Silicon CPUs (Mac M1, M2) + image: mysql:8.0.33-oracle + networks: + default: + aliases: + - edx.devstack.mysql80 + ports: + - "3406:3306" + volumes: + - mysql80_data:/var/lib/mysql + + redis: + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.redis" + hostname: redis.devstack.edx + image: redis:7.2 + command: redis-server --requirepass password + networks: + default: + aliases: + - edx.devstack.redis volumes: - - mysql_data:/var/lib/mysql + - redis_data:/data + + # 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 'while true; do python /edx/app/credentials/credentials/manage.py runserver 0.0.0.0:18150; sleep 2; done' - container_name: edx.devstack.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.${COMPOSE_PROJECT_NAME:-devstack}.credentials" + hostname: credentials.devstack.edx depends_on: - - mysql + - lms - memcached + - mysql80 + - 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.mysql80 SOCIAL_AUTH_EDX_OIDC_URL_ROOT: http://edx.devstack.lms:18000/oauth2 ENABLE_DJANGO_TOOLBAR: 1 - image: edxops/credentials:devstack-slim + 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 + - mysql80 + - 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.mysql80 + 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 + - mysql80 + - mysql57 # Allows attachment to the ecommerce service using 'docker attach '. stdin_open: true tty: true environment: + DJANGO_WATCHMAN_TIMEOUT: 30 ENABLE_DJANGO_TOOLBAR: 1 - image: edxops/ecommerce:latest + image: edxops/ecommerce-dev:${OPENEDX_RELEASE:-latest} + networks: + default: + aliases: + - edx.devstack.ecommerce ports: - "18130:18130" + volumes: + - ${PWD}/configuration_files/ecommerce.yml:/edx/etc/ecommerce.yml + + + edx_notes_api: + # Sleep as a part of start up to give elasticsearch enough time to start up. + command: bash -c 'while true; do python /edx/app/notes/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: + - elasticsearch710 + - lms + - mysql80 + - mysql57 + image: openedx/edx-notes-api-dev:${OPENEDX_RELEASE:-latest} + networks: + default: + aliases: + - edx.devstack.edxnotesapi + ports: + - "18120:18120" + environment: + DB_ENGINE: "django.db.backends.mysql" + DB_HOST: "edx.devstack.mysql80" + 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 ./bin/unicorn -c config/unicorn_tcp.rb -I .; 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: - - mysql + - discovery + - elasticsearch710 + - forum - memcached - mongo + - mysql80 + - mysql57 # Allows attachment to the LMS service using 'docker attach '. stdin_open: true tty: true environment: - BOK_CHOY_HOSTNAME: edx.devstack.lms - BOK_CHOY_LMS_PORT: 18003 - BOK_CHOY_CMS_PORT: 18031 + FRONTEND_TEST_SERVER_HOSTNAME: edx.devstack.lms + FRONTEND_TEST_SERVER_LMS_PORT: 18003 + FRONTEND_TEST_SERVER_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 @@ -151,47 +448,433 @@ services: volumes: - edxapp_lms_assets:/edx/var/edxapp/staticfiles/ - studio: + 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: + - analyticsapi + - mysql80 + - mysql57 + - lms + - memcached + # Allows attachment to the insights service using 'docker attach '. + stdin_open: true + tty: true + environment: + DB_HOST: edx.devstack.mysql80 + 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: + - "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: + - mysql80 + - 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_HOST: edx.devstack.mysql80 + 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 + - mysql80 + - mysql57 + - memcached + - redis + - registrar-worker + # Allows attachment to the registrar service using 'docker attach '. + stdin_open: true + tty: true + environment: + DB_HOST: edx.devstack.mysql80 + 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 + - mysql80 + - mysql57 + - redis + stdin_open: true + tty: true + environment: + DB_HOST: edx.devstack.mysql80 + 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/ + + cms: 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}.cms" + hostname: cms.devstack.edx depends_on: - - mysql + - elasticsearch710 + - lms - memcached - mongo - # Allows attachment to the Studio service using 'docker attach '. + - mysql80 + - mysql57 + # Allows attachment to the CMS service using 'docker attach '. stdin_open: true tty: true environment: - BOK_CHOY_HOSTNAME: edx.devstack.studio - BOK_CHOY_LMS_PORT: 18103 - BOK_CHOY_CMS_PORT: 18131 + FRONTEND_TEST_SERVER_HOSTNAME: edx.devstack.cms + FRONTEND_TEST_SERVER_LMS_PORT: 18103 + FRONTEND_TEST_SERVER_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.cms + - cms.devstack.edx ports: - "18010:18010" - "19877:19877" # JS test debugging # - "18103:18103" # - "18131:18131" volumes: - - edxapp_studio_assets:/edx/var/edxapp/staticfiles/ + - edxapp_cms_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-dev:${OPENEDX_RELEASE:-latest} + working_dir: /edx/app/xqueue/xqueue + 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 + - ${PWD}/configuration_files/xqueue.yml:/edx/etc/xqueue.yml depends_on: - - mongo - - memcached - - elasticsearch - image: edxops/forum:latest + - mysql80 + - mysql57 + environment: + XQUEUE_CFG: "/edx/etc/xqueue.yml" + networks: + default: + aliases: + - edx.devstack.xqueue ports: - - "44567:4567" + - 18040:18040 + + xqueue_consumer: + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.xqueue_consumer" + image: edxops/xqueue-dev:${OPENEDX_RELEASE:-latest} + working_dir: /edx/app/xqueue/xqueue + 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 + - ${PWD}/configuration_files/xqueue.yml:/edx/etc/xqueue.yml + depends_on: + - mysql80 + - 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: + - cms + + 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-learner-dashboard: + extends: + file: microfrontend.yml + service: microfrontend + working_dir: '/edx/app/frontend-app-learner-dashboard' + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-learner-dashboard" + networks: + default: + aliases: + - edx.devstack.frontend-app-learner-dashboard + ports: + - "1996:1996" + depends_on: + - lms + + frontend-app-learner-record: + extends: + file: microfrontend.yml + service: microfrontend + working_dir: '/edx/app/frontend-app-learner-record' + container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.frontend-app-learner-record" + networks: + default: + aliases: + - edx.devstack.frontend-app-learner-record + ports: + - "1990:1990" + 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 + - cms + + 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: edxapp_lms_assets: - edxapp_studio_assets: - elasticsearch_data: + edxapp_cms_assets: + elasticsearch710_data: mongo_data: - mysql_data: + mongo_config_data: + opensearch12_data: + mysql57_data: + mysql80_data: + redis_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/advanced_configuration.rst b/docs/advanced_configuration.rst new file mode 100644 index 0000000000..35b2b83ada --- /dev/null +++ b/docs/advanced_configuration.rst @@ -0,0 +1,27 @@ +Advanced Configuration Options +------------------------------ + +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. + +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. + +Changing the Docker Compose Project Name +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +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:: + + # Example: COMPOSE_PROJECT_NAME=secondarydevstack + COMPOSE_PROJECT_NAME= + +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``. + 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..5504a5b54f --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,501 @@ +# 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 datetime import datetime +from subprocess import check_call + + + + +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 = [ + '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 = f'{datetime.now().year}, edX Inc.' # pylint: disable=redefined-builtin +author = 'edX Inc.' +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 = 'sphinx_book_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 = { + "announcement": "Devstack is no longer supported by the Open edX community. See Tutor for the community-supported developer and installation environment.

For any fork of devstack, you should look elsewhere for up-to-date docs for your fork.", + "repository_url": "https://github.com/openedx/devstack", + "repository_branch": "master", + "path_to_docs": "docs/", + "home_page_in_toc": True, + "use_repository_button": True, + "use_issues_button": True, + "use_edit_page_button": True, + # Please don't change unless you know what you're doing. + "extra_footer": """ + + Creative Commons License + +
+ These works by + The Axim Collaborative + are licensed under a + Creative Commons Attribution-ShareAlike 4.0 International License. + """ +} + +# Add any paths that contain custom themes here, relative to this directory. +# 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 = "https://logos.openedx.org/open-edx-logo-color.png" + +# 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 = "https://logos.openedx.org/open-edx-favicon.ico" + +# 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..6b8721785f --- /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.cms+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..9e8a7b613d --- /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.cms`` 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..4dbd5950c1 --- /dev/null +++ b/docs/developing_on_named_release_branches.rst @@ -0,0 +1,198 @@ +Developing on Open edX named release branches +============================================= + +.. contents:: Table of Contents + +By default, the startup steps in :doc:`getting_started` will install the devstack using the master branch of all repos. If you want to install a named release instead, follow these steps before the step that pulls the docker images: + +#. 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 :doc:`getting_started` 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. +Note that older versions of devstack may have different prerequisites. In particular, +releases before Quince will need support for the ``docker-compose`` syntax as +well as the newer ``docker compose``. The easiest way to do this is to add +is to add a shell script with the following and put it on the PATH under the name docker-compose: + + .. code:: sh + + #!/bin/bash + docker compose "$@" + +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 :doc:`getting_started`, 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 :doc:`getting_started` 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/devstack_faq.rst b/docs/devstack_faq.rst new file mode 100644 index 0000000000..5776ac0968 --- /dev/null +++ b/docs/devstack_faq.rst @@ -0,0 +1,296 @@ +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 cms 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 ``mysql80`` section + +.. code:: yaml + + ports: + - "3506:3306" + +Then bring your mysql container down and back up by running: + +.. code:: sh + + docker compose stop mysql80 + docker compose up -d mysql80 + +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.mysql80 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.cms + make dev.migrate.cms + +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.mysql80 + 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 CMS, it is similar: + +.. code:: sh + + make dev.shell.cms + ./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/CMS settings +---------------------------- + +LMS and CMS read many configuration settings from the container filesystem +in the following locations: + +- ``/edx/etc/lms.yml`` +- ``/edx/etc/cms.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 CMS pick up the changes. + +After changing settings, you can restart the LMS/CMS 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.cms # For CMS + + +.. _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 diff --git a/docs/devstack_interface.rst b/docs/devstack_interface.rst new file mode 100644 index 0000000000..6a24046aef --- /dev/null +++ b/docs/devstack_interface.rst @@ -0,0 +1,223 @@ +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 a lot faster. + +See the ``make help`` section below for a complete list of commands. + +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.remove-containers`` 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.remove-containers``: 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.remove-containers``. + + Variation: + + + ``make dev.remove-containers.`` 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.restart-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. + +Make Help +~~~~~~~~~ + +The following ``make help`` output was generated in 09-2023 to make these commands searchable in documentation. + +If you want to ensure you are getting the latest listing, simply use ``make help``. + +.. code:: sh + + % make help + Please use `make ' where is one of + build-courses Build course and provision cms, and ecommerce with it. + create-test-course Provisions cms, and ecommerce with course(s) in test-course.json. + dev.attach.% Attach to the specified service container process for debugging & seeing logs. + dev.backup Write all data volumes to the host. + dev.cache-programs Copy programs from Discovery to Memcached for use in LMS. + dev.check Run checks for the default service set. + dev.check-memory Check if enough memory has been allocated to Docker. + dev.checkout Check out "openedx-release/$OPENEDX_RELEASE" in each repo if set, use default branch otherwise. + dev.clone Clone service repos to the parent directory. + dev.clone.https Clone service repos using HTTPS method to the parent directory. + dev.clone.ssh Clone service repos using SSH method to the parent directory. + dev.dbcopy8.% Copy data from old mysql 5.7 container into a new 8 db + dev.dbshell.% Run a SQL shell on the given database. + dev.destroy Irreversibly remove all devstack-related containers and networks (though not data volumes) + dev.destroy.coursegraph Remove all coursegraph data. + dev.down Documentation for a change to naming + dev.drop-db.% Irreversably drop the contents of a MySQL database in each mysql container. + dev.forum.build-indices Build indices for forum service + dev.kill Kill all running services. + dev.kill.% Kill specific services. + dev.logs View logs from running containers. + dev.logs.% View the logs of the specified service container. + dev.migrate Run migrations for applicable default services. + dev.migrate.% Run migrations on a service. + dev.print-container.% Get the ID of the running container for a given service. + dev.provision Provision dev environment with default services, and then stop them. + dev.provision.% Provision specified services. + dev.prune Prune dangling docker images, containers, and networks. Useful when you get the 'no space left on device' error + dev.ps View list of created services and their statuses. + dev.pull.% Pull latest Docker images for services and their dependencies. + dev.pull.large-and-slow Pull latest Docker images required by default services. + dev.pull.without-deps.% Pull latest Docker images for specific services. + dev.remove-containers Stop and remove containers and networks for all services. + dev.remove-containers.% Stop and remove containers for specific services. + dev.reset Attempt to reset the local devstack to the default branch working state without destroying data. + dev.reset-repos Attempt to reset the local repo checkouts to the default branch working state. + dev.restart-container Restart all service containers. + dev.restart-container.% Restart specific services' containers. + dev.restart-devserver.% Kill an edX service's development server. Watcher should restart it. + dev.restore Restore all data volumes from the host. WILL OVERWRITE ALL EXISTING DATA! + dev.rm-stopped Remove stopped containers. Does not affect running containers. + dev.shell.% Run a shell on the specified service's container. + dev.static.% Rebuild static assets for the specified service's container. + dev.stats Get per-container CPU and memory utilization data. + dev.status Prints the status of all git repositories. + dev.stop Stop all running services. + dev.stop.% Stop specific services. + dev.up.attach.% Bring up a service and its dependencies + and attach to it. + dev.up.large-and-slow Bring up default services. + dev.up.shell.% Bring up a service and its dependencies + shell into it. + dev.up.with-programs Bring up default services + cache programs in LMS. + dev.up.with-programs.% Bring up services and their dependencies + cache programs in LMS. + dev.up.with-watchers Bring up default services + asset watcher containers. + dev.up.with-watchers.% Bring up services and their dependencies + asset watcher containers. + dev.up.without-deps.% Bring up services by themselves. + dev.up.without-deps.shell.% Bring up a service by itself + shell into it. + dev.validate Print effective Docker Compose config, validating files in COMPOSE_FILE. + dev.wait-for.% Wait for these services to become ready + devpi-password Get the root devpi password for the devpi container. + docs generate Sphinx HTML documentation, including API docs + hadoop-application-logs-% View hadoop logs by application Id. + help Display this help message. + impl-dev.clone.https Clone service repos using HTTPS method to the parent directory. + impl-dev.clone.ssh Clone service repos using SSH method to the parent directory. + impl-dev.provision Provision dev environment with default services, and then stop them. + impl-dev.provision.% Provision specified services. + impl-dev.pull.% Pull latest Docker images for services and their dependencies. + impl-dev.pull.without-deps.% Pull latest Docker images for specific services. + impl-dev.up.% Bring up services and their dependencies. + impl-dev.up.attach.% Bring up a service and its dependencies + and attach to it. + impl-dev.up.without-deps.% Bring up services by themselves. + metrics-opt-in To opt into basic data collection to help improve devstack + metrics-opt-out To opt out of metrics data collection + requirements install development environment requirements + selfcheck Check that the Makefile is free of Make syntax errors. + upgrade Upgrade requirements with pip-tools. + validate-lms-volume Validate that changes to the local workspace are reflected in the LMS container. + vnc-passwords Get the VNC passwords for the Chrome and Firefox Selenium containers. diff --git a/docs/getting_started.rst b/docs/getting_started.rst new file mode 100644 index 0000000000..c8697ac930 --- /dev/null +++ b/docs/getting_started.rst @@ -0,0 +1,167 @@ +Getting Started +--------------- + +Prerequisites +~~~~~~~~~~~~~ + +You will need to have the following installed: + +- make +- Python 3.8 +- Docker, including ``docker compose`` + +This project requires **Docker 19.03+ CE**. We recommend Docker Stable, but +Docker Edge should work as well. Ensure that your Docker installation includes +``docker compose``; on some operating systems (e.g. Ubuntu Linux) this may require +a separate package. + +**NOTE:** Switching between Docker Stable and Docker Edge will remove all images and +settings. Don't forget to restore your memory setting and be prepared to +provision. + +For macOS users, please use `Docker for Mac`_, which comes with ``docker +compose``. Previous Mac-based tools (e.g. 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. + +If you are using Linux, developers on Ubuntu (and Debian) should ensure +they've uninstalled docker.io and docker-compose from the main Ubuntu +repositories and instead install docker-ce and docker-compose-plugin from the +official Docker package repository: +https://docs.docker.com/engine/install/ubuntu/. Also they should 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' + +.. _Docker for Mac: https://docs.docker.com/desktop/install/mac-install/ +.. _licensing terms: https://www.docker.com/pricing/faq +.. _configuring Docker for Mac: https://docs.docker.com/desktop/settings/mac/#advanced +.. _Docker for Windows: https://docs.docker.com/desktop/install/windows-install/ + +Please note +~~~~~~~~~~~ + +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. + +Directions to setup devstack +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The default devstack services can be run by following the steps below. + +**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 :doc:`service_list` and the :doc:`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. + +#. 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``, + ``~/workspace/ecommerce``, etc. These repos can be cloned with the command + below. + + .. code:: sh + + 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. + + (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. + + .. _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). + + **NOTE:** When running the provision command, databases for ecommerce and edxapp + will be dropped and recreated. + + The username for the superuser is ``edx@example.com`` and the password is ``edx``. You can access + the services directly via Django admin at the ``/admin/`` path, or login via + single sign-on at ``/login/``. + + Default: + + .. code:: sh + + make dev.provision + + This is expected to take a while, produce a lot of output from a bunch of steps, and finally end with ``Provisioning complete!`` + + +#. Start the desired 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 ``dev.up.*`` command outputs ``done``. + + Default: + + .. code:: sh + + 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.remove-containers.``. + +After the services have started, if you need shell access to one of the +services, run ``make dev.shell.``. For example to access the +Catalog/Course Discovery Service, you can run: + +.. code:: sh + + 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 +following: + +.. code:: sh + + make dev.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 dev.logs.ecommerce + +For information on the supported ``make`` commands, you can run: + +.. code:: sh + + 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>`_. + +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 metrics-opt-in + +Now that you're up and running, read about the :doc:`most common development workflow `. diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000000..a822ef5f61 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,29 @@ +Open edX Devstack +################# + +Devstack is a local Docker-based environment for developing in the Open edX platform. + +The Devstack runs as multiple containers with `Docker Compose`_ at its core. + +.. _Docker Compose: https://docs.docker.com/compose/ + +Contents +******** + +.. toctree:: + :maxdepth: 1 + + getting_started + logging_in + workflow + service_list + devstack_interface + devstack_faq + building-images + database-dumps + developing_on_named_release_branches + pycharm_integration + testing_and_debugging + troubleshoot_general_tips + manual_upgrades + advanced_configuration diff --git a/docs/logging_in.rst b/docs/logging_in.rst new file mode 100644 index 0000000000..c694c7ab39 --- /dev/null +++ b/docs/logging_in.rst @@ -0,0 +1,34 @@ +Usernames and Passwords +----------------------- + +The provisioning script creates a Django superuser for every service. + +:: + + Email: edx@example.com + Username: edx + Password: edx + +The LMS also includes demo accounts. The passwords for each of these accounts +is ``edx``. + + .. 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. 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/manual_upgrades.rst b/docs/manual_upgrades.rst new file mode 100644 index 0000000000..8a107c02cb --- /dev/null +++ b/docs/manual_upgrades.rst @@ -0,0 +1,77 @@ +Manual upgrade instructions +########################### + +Occasionally there is a change to devstack that requires existing devstack installations to be manually upgraded. When this happens, instructions should be added here. + +Please add new instructions to the top, include a date, and make a post in the `Devstack forum `_. + +(If you just need to update your devstack to the latest version of everything, see :doc:`updating_devstack`.) + + +2024-02-25 - Mongo upgrade from version 4.4 to 5.0 +************************************************** + +As mongo 4.4 is reaching EOL, we have upgraded mongo version 4.4 to mongo version 5.0. Developers will need to follow the following instructions. + +1. Take latest ``git pull`` of ``devstack`` + +2. Take the latest pull of images :: + + make dev.pull + +3. Run mongo5 upgrade script, already added to devstack repo :: + + ./upgrade_mongo_5_0.sh + +2023-10-05 - MySQL upgrade from version 5.7 to 8.0 +************************************************** + +The MySQL service has been upgraded from version 5.7 to 8.0. Developers will need to follow the following instructions. + +1. Take latest ``git pull`` of ``devstack`` and ``edx-platform``. + +2. Take the latest pull of images :: + + make dev.pull + +3. Run provisioning command :: + + make dev.provision + +4. [Optional] Additionally, there is a database copy command to help you transfer data from MySQL 5.7 to 8.0. After provisioning use the ``dev.dbcopyall8`` command. This command will stop all of your services, clean your ``mysql80`` container, and copy all of your databases from ``mysql57`` to ``mysql80``. :: + + make dev.dbcopyall8 + +This command copies the following databases: + +- credentials +- discovery +- ecommerce +- registrar +- notes +- edxapp +- xqueue +- edxapp_csmh +- dashboard +- analytics-api +- reports +- reports_v1 + +If you prefer not to copy all databases, update ``DB_NAMES_LIST`` in the ``Makefile`` of devstack before running the dbcopy command. + +5. Now start your desired services again using ``dev.up`` command. For example running following command will start ``lms``, ``cms`` :: + + make dev.up.lms+cms + +6. You might need to apply latest migrations to your ``mysql80`` container for some services. To do that, you can use ``dev.migrate`` command. For example for ``lms`` you can run :: + + make dev.migrate.lms + + +2023-08-02 - Forum upgrade from Ruby 2 to 3 +******************************************* + +The forum service has been upgraded from Ruby 2 to Ruby 3. Developers who use forum will need to pull the new image and reprovision the service:: + + make dev.pull.forum # pull in new forum image + make dev.provision.forum # provision forum service diff --git a/docs/pycharm_integration.rst b/docs/pycharm_integration.rst index a9dc45e673..ffabbef0f0 100644 --- a/docs/pycharm_integration.rst +++ b/docs/pycharm_integration.rst @@ -10,7 +10,7 @@ Prerequisites ------------- 1. You must complete all steps for provisioning your Docker Devstack environment - in the `README`_ before proceeding with the PyCharm setup. + in :doc:`getting_started` before proceeding with the PyCharm setup. 2. If you are on a Mac, make sure you are on a newer version than macOS Yosemite. A this time, this should work with either El Capitan or Sierra. @@ -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-host.yml`` + - ``/LOCAL/PATH/TO/devstack/docker-compose-themes.yml`` - - ``/LOCAL/PATH/TO/devstack/docker-compose.yml`` (e.g.~/edx/devstack/docker-compose.yml) - - ``/LOCAL/PATH/TO/devstack/docker-compose-sync.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,17 +58,18 @@ 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: + - For either lms or cms, you need to use edxapp: - ``/edx/app/edxapp/venvs/edxapp/bin/python`` - PyCharm helpers path: Keep the default. -**Note**: For lms and studio (edx-platform), it will take a long time to +**Note**: For lms and cms (edx-platform), it will take a long time to update skeletons (10 or more minutes). If you want to try a different set of configuration (compose) files, we recommend you create a new one so you can easily switch back to old without this delay. @@ -83,26 +77,43 @@ 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 -------------------- Before setting up a Server/Debug configuration you will need to setup Django -Support for the specific Project (e.g. LMS and Studio, or ecommerce) +Support for the specific Project (e.g. LMS and CMS, or ecommerce) PyCharm -> Preferences -> Languages & Frameworks -> Django -Here are some example settings you might use: +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 +settings each time you wanted to debug a different project. + Setup a Server Run/Debug Configuration -------------------------------------- The setup for Server Run/Debug Configurations depends on the service. -Server Run/Debug Configuration for an IDA (not LMS or Studio) +Server Run/Debug Configuration for an IDA (not LMS or CMS) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ After configuring the interpreter, add a new `Django Server Run/Debug @@ -113,7 +124,7 @@ requests from external clients (e.g. your Docker host). The port should be set to the service-specific port from the table above. *Note*: See next section for additional changes needed for LMS and -Studio. +CMS. Setup a Server Run/Debug Configuration for ecommerce ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -128,10 +139,10 @@ defined on the ecommerce server in /edx/app/ecommerce/ecommerce_env export DJANGO_SETTINGS_MODULE="ecommerce.settings.devstack" -Setup a Server Run/Debug Configuration for LMS or Studio +Setup a Server Run/Debug Configuration for LMS or CMS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -For LMS and Studio, the setup is a hack because we (unfortunately) +For LMS and CMS, the setup is a hack because we (unfortunately) modified ``manage.py``. After configuring the interpreter, add a new `Django Server Run/Debug @@ -144,11 +155,13 @@ Configuration`_, with the following specific values. 3. Custom run command: lms (or cms) -4. Environment variables, add the following for lms/studio: +4. Environment variables, add the following for lms/cms: - ``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. @@ -162,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 ------------------------------------------------ @@ -171,30 +209,30 @@ service. **Tip**: You can adjust the default configuration with settings you are most likely to replicate. -Setup a Run/Debug Configuration for python tests for an IDA (not LMS or Studio) +Setup a Run/Debug Configuration for python tests for an IDA (not LMS or CMS) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To run and debug unit tests, create a **"Django tests"** type Run/Dubug configuration with the following options: -1. Target: lms.djangoapps.grades.tests.test_grades:TestGradeIteration +1. Target: ecommerce.extensions.api.v2.tests.views.test_baskets:BasketCalculateViewTests 2. Environment Variables: - - DJANGO_SETTINGS_MODULE=lms.envs.test - DISABLE_MIGRATIONS=1 + - DJANGO_SETTINGS_MODULE=ecommerce.settings.test - PYTHONUNBUFFERED=1 -3. Working directory: /edx/app/edxapp/edx-platform +3. Working directory: /edx/app/ecommerce/ecommerce 4. Path mappings (add mapping): - - Local path: LOCAL/PATH/TO/edx-platform (e.g. ~/edx/edx-platform) - - Remote path: /edx/app/edxapp/edx-platform + - Local path: LOCAL/PATH/TO/ecommerce (e.g. ~/docker_devstack/ecommerce) + - Remote path: /edx/app/ecommerce/ecommerce 5. Deselect "Add content..." and "Add source..." -Setup a Run/Debug Configuration for python tests for LMS or Studio +Setup a Run/Debug Configuration for python tests for LMS or CMS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To run and debug unit tests, edit the **"Defaults -> Python tests -> py.test"** type Run/Dubug @@ -258,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 cms 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 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -277,6 +342,5 @@ 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 -.. _README: ../README.rst +.. _PyCharm IDE setup: https://openedx.atlassian.net/wiki/spaces/AC/pages/92209229/PyCharm .. _vendor documentation: https://www.jetbrains.com/help/pycharm/2017.1/configuring-remote-interpreters-via-docker-compose.html diff --git a/docs/service_list.rst b/docs/service_list.rst new file mode 100644 index 0000000000..ec01b391d5 --- /dev/null +++ b/docs/service_list.rst @@ -0,0 +1,97 @@ +Service List +------------ + +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.cms`` 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.cms+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 :doc:`advanced_configuration`. + ++------------------------------------+-------------------------------------+----------------+--------------+ +| Service | URL | Type | Role | ++====================================+=====================================+================+==============+ +| `lms`_ | http://localhost:18000/ | Python/Django | Default | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `cms`_ | 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-learner-dashboard`_ | http://localhost:1996/ | MFE (React.js) | Default | ++------------------------------------+-------------------------------------+----------------+--------------+ +| `frontend-app-learner-record`_ | http://localhost:1990/ | MFE (React.js) | 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) +* ``cms+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 +.. _cms: https://github.com/openedx/edx-platform +.. _frontend-app-learner-dashboard: https://github.com/openedx/frontend-app-learner-dashboard +.. _frontend-app-learner-record: https://github.com/openedx/frontend-app-learner-record +.. _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 diff --git a/docs/testing_and_debugging.rst b/docs/testing_and_debugging.rst new file mode 100644 index 0000000000..4103777e7f --- /dev/null +++ b/docs/testing_and_debugging.rst @@ -0,0 +1,78 @@ +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 CMS Tests +---------------------------- + +After entering a shell for the appropriate service via ``make lms-shell`` or +``make cms-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 + + +.. _edx-platform testing documentation: https://docs.openedx.org/projects/edx-platform/en/latest/concepts/testing/testing.html#running-python-unit-tests diff --git a/docs/troubleshoot_general_tips.rst b/docs/troubleshoot_general_tips.rst new file mode 100644 index 0000000000..84de18a559 --- /dev/null +++ b/docs/troubleshoot_general_tips.rst @@ -0,0 +1,335 @@ +Troubleshooting: Common Issues +############################## + +.. contents:: Table of Contents + +Known Issues +============ + +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 + + make dev.prune # (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 cms, 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/ + +Demo course is empty in studio +------------------------------ +After provisioning and opening Studio, you may see an empty outline for the demo course. This usually means there is a disconnect between the block ids in mySQL and the corresponding data in Mongo. + +To fix this locally, simply add a new subsection and publish. The act of publishing should reload the whole course correctly. + +See https://github.com/openedx/devstack/issues/1073 for the GitHub issue tracking this bug. + +CORS error from login_refresh in MFE +------------------------------------ +If you see "Access to XMLHttpRequest at 'http://localhost:18000/login_refresh' from origin 'http://localhost:2000' has been blocked by CORS policy: Request header field x-xsrf-token is not allowed by Access-Control-Allow-Headers in preflight response" it usually means you don't have a valid session. + +The fix is to get a new auth session. You can do any of the following: + +1. Before navigating to your MFE, go to http://localhost:18000 to restart your logged in http session. +2. Clear your cookies +3. Refresh http://localhost:18000 +4. Log in +5. Navigate back to the MFE + +Missing vendor file node_modules/backbone.paginator/lib/backbone.paginator.js +----------------------------------------------------------------------------- +This message sometimes appears when provisioning. The root cause of this is as yet unknown but the most effective workaround seems to be +to shell into the LMS (``make lms-shell`` in devstack) and run ``npm ci``, followed by ``paver update_assets``. +See `the github issue`_ to follow the work being done on the resolution. + +.. _the github issue: https://github.com/openedx/devstack/issues/1072 + +Past problems (fixed) +===================== + +If you see any of the following issues, you'll need to `update your repos and pull the latest images`_. + +Permission denied for copying studio-frontend JS & CSS during provisioning +-------------------------------------------------------------------------- + +During ``make dev.provision``, the edx-platform script ``copy-node-modules.sh`` would fail with the following output, or similar:: + + Copying studio-frontend JS & CSS from node_modules into vendor directories... + + read -r -d '' src_file + ++ find node_modules/@edx/studio-frontend/dist -type f -print0 + + [[ node_modules/@edx/studio-frontend/dist/accessibilityPolicy.min.css = *.css ]] + + cp --force node_modules/@edx/studio-frontend/dist/accessibilityPolicy.min.css common/static/common/css/vendor + cp: cannot remove 'common/static/common/css/vendor/accessibilityPolicy.min.css': Permission denied + +This issue was introduced on edx-platform master in July 2023 and was resolved in August 2023 (without becoming part of a named release). See https://github.com/openedx/devstack/issues/1138 for more details, including a workaround for those unable to upgrade their repos or images for some reason. + +Cannot find valid pkg-config name +--------------------------------- + +During ``make requirements`` there would be an error:: + + Exception: Cannot find valid pkg-config name. + Specify MYSQLCLIENT_CFLAGS and MYSQLCLIENT_LDFLAGS env vars manually + +This was resolved in July 2023 with https://github.com/openedx/edx-platform/pull/32732. + +Cannot run ``make upgrade`` in lms shell due to missing wget +------------------------------------------------------------ + +``make upgrade`` or ``make compile-requirements`` in lms-shell would produce an error about wget:: + + wget -O "requirements/common_constraints.txt" https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + /bin/sh: 1: wget: not found + make[1]: *** [Makefile:115: requirements/common_constraints.txt] Error 127 + +This error was `introduced `_ and `resolved `_ in September 2023. While this can be solved by updating your devstack, you can also run ``apt update; apt install wget`` from lms-shell to resolve this temporarily. + +CSRF errors with MFEs after Django 4.2 upgrade +---------------------------------------------- + +When using an MFE in devstack, a call to a service fails with 403 Forbidden and these log messages:: + + CSRF verification failed. Request aborted. + + Origin checking failed - http://localhost/:{your MFE / service port} does not match any trusted origins. + +This may be caused by an upgrade to Django 4.2, which has changes to CSRF checking. The upgrade occurred in early February 2024 in edx-platform, but may occur at other times in IDAs. In edx-platform, this was fixed by `setting CSRF trusted origins in devstack.py `_. + +.. _update your repos and pull the latest images: + +Updating Devstack +================= +It may be that the bug you have encountered has already been resolved and you just need to update your devstack. You can do this without losing any of your existing data or having to reprovision, although you will lose your container command history once you pull new images. + +To update devstack to the latest images and code: + +1. ``make dev.stop`` This will stop all running containers. +2. ``make dev.reset-repos`` This will pull all the latest code into all your devstack service and MFE repos. +3. ``git fetch && git pull`` on the master branch in devstack. This will pull all the latest code into the devstack repo itself. +4. ``make dev.pull.lms`` This will pull the latest lms image and all its dependencies. If you need other services/MFEs, you can replace this with ``make dev.pull.lms+cms+other_service+other_MFE...`` or ``make dev.pull.large-and-slow`` if you really need everything. + +Depending on your needs, you may also want to run ``make dev.migrate.lms`` to apply all the latest migrations and/or ``make dev.static.lms`` to recompile static assets. +Like with pulling images, you can also narrow these commands to specific services/MFEs with ``make dev.migrate.lms+cms+...,`` or run ``make dev.migrate`` and ``make dev.static`` (no suffixes) to include everything. + +Running ``make dev.reset`` will do all the above for all services, which can be useful but takes much more time. It will also run a full ``docker system prune -f`` to get rid of unused images and networks. + +Manual Upgrades +=============== + +Sometimes there is a change to devstack that requires existing devstack installations to be manually upgraded. See :doc:`manual_upgrades` for recent cases of this. + +Starting From Scratch +===================== + +If you think your devstack is broken beyond repair, you can start from scratch using ``make dev.destroy``, followed by the :doc:`getting_started` instructions. + +If you want to make absolutely sure that there are no lingering data volumes after the ``dev.destroy`` step, run ``docker volume ls --quiet | grep devstack`` -- if you see surviving devstack volumes that are currently mentioned in docker-compose.yml, there may be a bug. If you can reproduce the issue reliably, consider `reporting an issue `_. + + +Reporting New Issues +==================== + +Please check the `existing list of known bugs`_ or file `a bug report`_ with any information that could help us debug it. + +.. _existing list of known bugs: https://github.com/openedx/devstack/labels/bug +.. _a bug report: https://github.com/openedx/devstack/issues/new?assignees=&labels=bug&projects=&template=Bug-Report.yml&title=%5BBug%5D%3A+ diff --git a/docs/workflow.rst b/docs/workflow.rst new file mode 100644 index 0000000000..9873aa7a15 --- /dev/null +++ b/docs/workflow.rst @@ -0,0 +1,80 @@ +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 ``cms``, ``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. + +#. 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``, ``cms``, and ``credentials``, you can run ``make dev.pull.lms+cms+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 cms-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 restore all your databases. You might have to cycle the database containers off and on using ``make dev.remove-containers.`` and ``make dev.up.``. + +Comprehensive backup +~~~~~~~~~~~~~~~~~~~~ + +You can also back up and restore *all* devstack-related volumes -- not just databases, but also node_modules and static assets volumes. (These commands currently only work on Linux.) + +- Back up: ``make stop && sudo rsync -savx --numeric-ids --include='/devstack_***' --exclude='*' --delete /var/lib/docker/volumes/ .dev/backups/2023-07-18/`` +- Restore: ``make stop && sudo rsync -savx --numeric-ids --include='/devstack_***' --exclude='*' --delete .dev/backups/2023-07-18/ /var/lib/docker/volumes/`` + +The above example creates and restores from a backup directory named ``2023-07-18`` and assumes that you're working from the master branch; if you're working from a named release or have explicitly specified an alternative ``COMPOSE_PROJECT_NAME``, you'll need to adjust the ``--include`` parameter. + +Containers should be stopped before the backup or restore is performed, or databases are very likely to become corrupted. + +Running micro-frontends outside of devstack +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Although several micro-frontends (MFEs) are built into devstack (the full list is in :doc:`service_list`), 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 ci && 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. 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,' Codestin Search App

\'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 Codestin Search App

\'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,' Codestin Search App

\'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 Codestin Search App

\'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..dcc5c08b96 --- /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..3863639ef1 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.mysql80) +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..6981d91d6e --- /dev/null +++ b/microfrontend.yml @@ -0,0 +1,24 @@ +# This file contains configuration common to all microfrontends + +version: "2.1" + +services: + microfrontend: + # Use `npm ci` rather than `npm install` for a few reasons: + # + # - Repeatability: Respect the currently checked out package + # versions rather than upgrading when package.json and + # package-lock.json don't match. (Two people using this at + # different times on the same commit should get the same + # results.) + # - Immutability: Don't change the repo's working directory + # unexpectedly when there's a lock mismatch. + # + # Fail fast if package install fails to avoid mysterious + # errors later. + command: bash -c 'npm ci || exit 1; 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 new file mode 100644 index 0000000000..37e1ca8843 --- /dev/null +++ b/openedx.yaml @@ -0,0 +1,13 @@ +# This file describes this Open edX repo, as described in OEP-2: +# http://open-edx-proposals.readthedocs.io/en/latest/oep-0002-bp-repo-metadata.html#specification + +nick: dev +oeps: + oep-2: true + oep-7: true # Python 3 + oep-5: true + oep-10: true +openedx-release: {ref: master} +owner: jmbowman +supporting-teams: + - platform-core diff --git a/options.mk b/options.mk new file mode 100644 index 0000000000..304cbbd59a --- /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`. Any periods will be replaced with hyphens to comply with docker project naming rules (eg `devstack-quince.master` will become `devstack-quince-master`). +# Be sure to bring down services before changing the value of `COMPOSE_PROJECT_NAME`. +ifdef OPENEDX_RELEASE + COMPOSE_PROJECT_NAME ?= devstack-$(echo ${OPENEDX_RELEASE} | tr . -) +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+cms + +# 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-learner-dashboard+frontend-app-learner-record+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+cms+cms_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+cms + +# 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+cms + +# All third-party services. +# Separated by plus signs. Listed in alphabetical order for clarity. +THIRD_PARTY_SERVICES ?= \ +chrome+coursegraph+elasticsearch710+firefox+memcached+mongo+mysql57+mysql80+opensearch12+redis+namenode+datanode+resourcemanager+nodemanager+sparkmaster+sparkworker+vertica diff --git a/programs/README.md b/programs/README.md new file mode 100644 index 0000000000..730dce36dd --- /dev/null +++ b/programs/README.md @@ -0,0 +1,29 @@ +# Support for Provisioning Programs + +This directory holds a few scripts that set up a demo program. + +Currently, the demo program is very simple, just one demo course and no purchase-bundling support enabled. + +Normally you don't need to manually run these scripts to provision the demo course, as it is automatically added when provisioning fresh devstacks. + +## Reprovisioning + +If you have an existing older devstack installation and want to add the demo program to it, simply run: + + ./programs/provision.sh + +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: + + 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 new file mode 100644 index 0000000000..fe8a8c763b --- /dev/null +++ b/programs/discovery.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python3 +# Run like so: +# ./manage.py shell -c "`cat discovery.py`" + +import urllib.request as request +from course_discovery.apps.core.models import Partner +from course_discovery.apps.course_metadata.models import ( + Course, CourseRun, Organization, Program, ProgramType, SeatType +) + +DEMO_IMAGE_URL = 'http://edx.devstack.lms:18000/asset-v1:edX+DemoX+Demo_Course+type@asset+block@images_course_image.jpg' + + +# Make sure micromasters type exists +micromasters, _ = ProgramType.objects.get_or_create(slug='micromasters', defaults={'name': 'MicroMasters'}) +micromasters.applicable_seat_types.add( + SeatType.objects.get_or_create(slug='verified', defaults={'name': 'Verified'})[0], + SeatType.objects.get_or_create(slug='professional', defaults={'name': 'Professional'})[0], + SeatType.objects.get_or_create(slug='credit', defaults={'name': 'Credit'})[0], +) + +# Add a demo program +edx_partner = Partner.objects.get(short_code='edx') # created during normal provision +program, _ = Program.objects.update_or_create( + marketing_slug='demo-program', + defaults={ + 'title': 'edX Demonstration Program', + 'type': micromasters, + 'status': 'active', + 'partner': edx_partner, + 'overview': 'A demo program for testing.', + 'total_hours_of_effort': 4, + 'min_hours_effort_per_week': 1, + 'max_hours_effort_per_week': 4, + 'one_click_purchase_enabled': True, + 'card_image_url': DEMO_IMAGE_URL, + }, +) + +# Now, after an ID has been created, connect the program to other models + +course = Course.objects.get(key='edX+DemoX') +program.courses.set([course]) + +try: + # This run causes run-time exceptions, because it uses old style key. + deprecated_run = CourseRun.objects.get(key='edX/DemoX/Demo_Course') + program.excluded_course_runs = [deprecated_run] +except CourseRun.DoesNotExist: + # This key only seems to be in some existing devstacks, don't worry if it doesn't exist + pass + +edx_org = Organization.objects.get(key='edX') +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: + program.banner_image.save('banner.jpg', request.urlopen(DEMO_IMAGE_URL)) + +program.save() diff --git a/programs/lms.py b/programs/lms.py new file mode 100644 index 0000000000..d3a3f96877 --- /dev/null +++ b/programs/lms.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python +# Run like so: +# ./manage.py lms shell -c "`cat lms.py`" + +from django.contrib.sites.models import Site +from openedx.core.djangoapps.catalog.models import CatalogIntegration +from openedx.core.djangoapps.programs.models import ProgramsApiConfig +from openedx.core.djangoapps.site_configuration.models import SiteConfiguration + +DISCOVERY_API_URL = 'http://edx.devstack.discovery:18381/api/v1/' + + +def set_current_config(cls, args): + if not cls.equal_to_current(args): + config = cls(**args) + config.save() + + +# Enable the program dashboard +set_current_config(ProgramsApiConfig, {'enabled': True}) + +# Enable the discovery worker +set_current_config(CatalogIntegration, { + 'enabled': True, + 'internal_api_url': 'https://example.com/api', # required but unused + 'service_username': 'discovery_worker', +}) + +# Tell LMS about discovery +SiteConfiguration.objects.update_or_create( + site=Site.objects.get(domain='example.com'), + defaults={ + 'enabled': True, + 'site_values': {'COURSE_CATALOG_API_URL': DISCOVERY_API_URL}, + }, +) diff --git a/programs/provision.sh b/programs/provision.sh new file mode 100755 index 0000000000..ca7cd50d19 --- /dev/null +++ b/programs/provision.sh @@ -0,0 +1,84 @@ +#!/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 +# side-effect code and validation in our models. +# +# We *could* create several tiny management commands. But this use case is very special cased. Instead, we just +# have the scripts here and pass them into Django's management shell. +# +# But to get the commands through Docker and Django intact, we have to do some creative quoting. + +# Run this command with no arguments to completely provision an existing devstack. +# This can be run multiple times in a row with no ill effect (it's idempotent). + +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}1;90m" + GREEN="${SWITCH}0;32m" + echo -e "${GREEN}${@}${GREY}" +} + +# We reset color once we're done with the script. +# If we wanted to be really fancy, we'd trap signals and reset there too. +reset_color() { + SWITCH="\033[" + NORMAL="${SWITCH}0m" + echo -e -n "${NORMAL}" +} + +docker_exec() { + service=${1} + cmd=${2} + app=${3:-$service} + repo=${4:-$app} + + CMDS=" + source /edx/app/$app/${app}_env && + /edx/app/$app/$repo/manage.py $cmd + " + + docker compose exec -T "$service" bash -e -c "$CMDS" +} + +provision_ida() { + 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" "$@" +} + +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 +fi + +if [ "$1" = "discovery" -o -z "$1" ]; then + notice Adding demo program to 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 + notice Caching programs inside the LMS... + docker_exec lms "lms cache_programs" edxapp edx-platform +fi + +reset_color diff --git a/provision-analyticsapi.sh b/provision-analyticsapi.sh new file mode 100755 index 0000000000..3d564ad629 --- /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..0652c60cd7 --- /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 cms +sleep 10 # Give Neo4j some time to boot up. + +echo -e "${GREEN} Updating CMS courses in Coursegraph...${NC}" +docker compose exec cms 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 edxedxedx' + +echo -e "${GREEN} Coursegraph is now up-to-date with CMS!${NC}" diff --git a/provision-credentials.sh b/provision-credentials.sh index f12070644a..f73da9a6eb 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 'make 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 '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 '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 './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 --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} ${port} +./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 ' make static' -- "$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 0f1082d984..8b947a47c9 100755 --- a/provision-discovery.sh +++ b/provision-discovery.sh @@ -1,7 +1,26 @@ +#!/usr/bin/env bash # Provisioning script for the discovery service -./provision-ida.sh discovery 18381 +set -eu -o pipefail +set -x -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 up -d lms +docker compose up -d cms +docker compose up -d ecommerce +sleep 5 # Give above services some time to boot up + +./provision-ida.sh discovery discovery 18381 + +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.cms: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' +docker compose exec -T discovery bash -e -c 'source /edx/app/discovery/discovery_env && python /edx/app/discovery/discovery/manage.py add_provisioning_data' +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..e69de29bb2 100755 --- a/provision-e2e.sh +++ b/provision-e2e.sh @@ -1,23 +0,0 @@ -set -e -set -o pipefail -set -x - -if [ -z "$DEVSTACK_WORKSPACE" ]; then - DEVSTACK_WORKSPACE=.. -elif [ ! -d "$DEVSTACK_WORKSPACE" ]; then - echo "Workspace directory $DEVSTACK_WORKSPACE doesn't exist" - exit 1 -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/ - -# Extract the test course tarball -docker-compose exec studio bash -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' - -# 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' diff --git a/provision-ecommerce.sh b/provision-ecommerce.sh index 286a610732..13a6e094dc 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 18130 +./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..98a8104eed 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 && source /edx/app/forum/devstack_forum_env && cd /edx/app/forum/cs_comments_service && bundle install --deployment --path /edx/app/forum/.gem/ && bin/rake search:initialize' diff --git a/provision-ida-user.sh b/provision-ida-user.sh index 0f10f33700..df68df6fce 100755 --- a/provision-ida-user.sh +++ b/provision-ida-user.sh @@ -1,8 +1,20 @@ +#!/usr/bin/env bash +set -eu -o pipefail +set -x + #This script depends on the LMS being up! -name=$1 -port=$2 +. scripts/colors.sh + +app_name=$1 +client_name=$2 +client_port=$3 + +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" -echo -e "${GREEN}Creating service user and OAuth client for ${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' -- "$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:$2" "http://localhost:$2/complete/edx-oidc/" confidential --client_name $1 --client_id "$1-key" --client_secret "$1-secret" --trusted --logout_uri "http://localhost:$2/logout/" --username $1_worker' -- "$name" "$port" +# 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 66a468625e..2236c65d75 100755 --- a/provision-ida.sh +++ b/provision-ida.sh @@ -1,20 +1,28 @@ -name=$1 -port=$2 +#!/usr/bin/env bash +set -eu -o pipefail -docker-compose $DOCKER_COMPOSE_FILES up -d $name +. scripts/colors.sh +set -x -echo -e "${GREEN}Installing requirements for ${name}...${NC}" -docker exec -t edx.devstack.${name} bash -c 'source /edx/app/$1/$1_env && cd /edx/app/$1/$1/ && make requirements' -- "$name" +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. -echo -e "${GREEN}Running migrations for ${name}...${NC}" -docker exec -t edx.devstack.${name} bash -c 'source /edx/app/$1/$1_env && cd /edx/app/$1/$1/ && make migrate' -- "$name" +make dev.up.$app_name -echo -e "${GREEN}Creating super-user for ${name}...${NC}" -docker exec -t edx.devstack.${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' -- "$name" +echo -e "${GREEN}Installing requirements for ${app_name}...${NC}" +docker compose exec -T ${container_name} bash -e -c 'source /edx/app/$1/$1_env && cd /edx/app/$1/$1/ && make requirements' -- "$app_name" -./provision-ida-user.sh $name $port +echo -e "${GREEN}Running migrations for ${app_name}...${NC}" +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 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 ${name}...${NC}" -docker exec -t edx.devstack.${name} bash -c 'source /edx/app/$1/$1_env && cd /edx/app/$1/$1/ && make static' -- "$name" +echo -e "${GREEN}Compiling static assets for ${app_name}...${NC}" +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..17959eae1c --- /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 ci && ./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 e20e21c10a..23d4016619 100755 --- a/provision-lms.sh +++ b/provision-lms.sh @@ -1,8 +1,10 @@ -set -e -set -o pipefail +#!/usr/bin/env bash +set -eu -o pipefail set -x -apps=( lms studio ) +apps=( lms cms ) + +cms_port=18010 # Load database dumps for the largest databases to save time ./load-db.sh edxapp @@ -10,31 +12,81 @@ apps=( lms studio ) # 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 CMS +for app in "${apps[@]}"; do + docker compose exec -T $app bash -e -c 'apt-get update && apt-get -y install --no-install-recommends git' + + 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 lms + #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' +# Make migrate runs migrations for both lms and cms. +docker compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && make migrate' + +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 cms 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 cms 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/edx-east/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 + # FIXME: Using old version of demo course (open-release/quince.1) until we can + # update devstack and other repos to match: https://github.com/openedx/devstack/issues/1273 + docker compose exec -T lms bash -e -c 'git clone https://github.com/openedx/edx-demo-course.git --branch open-release/quince.1 /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' +fi -# Create static assets for both LMS and Studio +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 -T lms bash -e -c 'rm /edx/app/edxapp/edx-platform/.prereqs_cache/Node_prereqs.sha1' + +# Create static assets for both LMS and CMS 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 CMS +./provision-ida-user.sh cms cms "$cms_port" + +# Provision a retirement service account user +./provision-retirement-user.sh retirement retirement_service_worker + +# Add demo program +./programs/provision.sh lms diff --git a/provision-mysql80.sql b/provision-mysql80.sql new file mode 100644 index 0000000000..19b32e0ebd --- /dev/null +++ b/provision-mysql80.sql @@ -0,0 +1,48 @@ +-- The use of `CREATE USER IF NOT EXISTS` is necessary since the +-- mysql80_data volume may already contain these users due to previous +-- provisioning https://github.com/openedx/devstack/issues/1113 + +CREATE DATABASE IF NOT EXISTS credentials; +CREATE USER IF NOT EXISTS 'credentials001'@'%' IDENTIFIED BY 'password'; +GRANT ALL ON credentials.* TO 'credentials001'@'%'; + +CREATE DATABASE IF NOT EXISTS discovery; +CREATE USER IF NOT EXISTS 'discov001'@'%' IDENTIFIED BY 'password'; +GRANT ALL ON discovery.* TO 'discov001'@'%'; + +CREATE DATABASE IF NOT EXISTS ecommerce; +CREATE USER IF NOT EXISTS 'ecomm001'@'%' IDENTIFIED BY 'password'; +GRANT ALL ON ecommerce.* TO 'ecomm001'@'%'; + +CREATE DATABASE IF NOT EXISTS notes; +CREATE USER IF NOT EXISTS 'notes001'@'%' IDENTIFIED BY 'password'; +GRANT ALL ON notes.* TO 'notes001'@'%'; + +CREATE DATABASE IF NOT EXISTS registrar; +CREATE USER IF NOT EXISTS 'registrar001'@'%' IDENTIFIED BY 'password'; +GRANT ALL ON registrar.* TO 'registrar001'@'%'; + +CREATE DATABASE IF NOT EXISTS xqueue; +CREATE USER IF NOT EXISTS 'xqueue001'@'%' IDENTIFIED BY 'password'; +GRANT ALL ON xqueue.* TO 'xqueue001'@'%'; + +CREATE DATABASE IF NOT EXISTS `dashboard`; +CREATE USER IF NOT EXISTS 'analytics001'@'%' IDENTIFIED BY 'password'; +GRANT ALL ON `dashboard`.* TO 'analytics001'@'%'; + +CREATE DATABASE IF NOT EXISTS `analytics-api`; +GRANT ALL ON `analytics-api`.* TO 'analytics001'@'%'; + +CREATE DATABASE IF NOT EXISTS `reports`; +GRANT ALL ON `reports`.* TO 'analytics001'@'%'; + +CREATE DATABASE IF NOT EXISTS `reports_v1`; +GRANT ALL ON `reports_v1`.* TO 'analytics001'@'%'; + +CREATE DATABASE IF NOT EXISTS edxapp; +CREATE DATABASE IF NOT EXISTS edxapp_csmh; +CREATE USER IF NOT EXISTS 'edxapp001'@'%' IDENTIFIED BY 'password'; +GRANT ALL ON edxapp.* TO 'edxapp001'@'%'; +GRANT ALL ON edxapp_csmh.* TO 'edxapp001'@'%'; + +FLUSH PRIVILEGES; diff --git a/provision-notes.sh b/provision-notes.sh new file mode 100755 index 0000000000..8c824858db --- /dev/null +++ b/provision-notes.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash +# Provisioning script for the notes service +set -eu -o pipefail + +. scripts/colors.sh +set -x + +name=edx_notes_api +port=18734 +client_name=edx-notes # The name of the Oauth client stored in the edxapp DB. + +docker compose up -d $name + +echo -e "${GREEN}Installing requirements for ${name}...${NC}" +docker compose exec -T ${name} bash -e -c 'cd /edx/app/notes && make requirements' -- "$name" + +echo -e "${GREEN}Running migrations for ${name}...${NC}" +docker compose exec -T ${name} bash -e -c 'cd /edx/app/notes && make migrate' -- "$name" + +echo -e "${GREEN}Creating super-user for ${name}...${NC}" +docker compose exec -T ${name} bash -e -c 'cho "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/notes/manage.py shell' -- "$name" + +./provision-ida-user.sh $name $client_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 'cd /edx/app/notes && make static' -- "$name" + +# This will build the elasticsearch index for notes. +echo -e "${GREEN}Creating indexes for ${name}...${NC}" +docker compose exec -T ${name} bash -e -c 'cd /edx/app/notes/ && python manage.py search_index --rebuild -f' diff --git a/provision-registrar.sh b/provision-registrar.sh new file mode 100755 index 0000000000..1e527eff3f --- /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 new file mode 100755 index 0000000000..812d92b1c5 --- /dev/null +++ b/provision-retirement-user.sh @@ -0,0 +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 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 new file mode 100755 index 0000000000..d983cc57c2 --- /dev/null +++ b/provision-xqueue.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +set -eu -o pipefail +set -x + +# Bring up XQueue, we don't need the consumer for provisioning +docker compose up -d xqueue + +# 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 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 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.sh b/provision.sh index fa435fc059..cde27b6fcd 100755 --- a/provision.sh +++ b/provision.sh @@ -1,52 +1,164 @@ #!/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 -# Bring the databases online. -docker-compose up -d mysql mongo +# 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 \ +forum \ +notes \ +registrar \ +xqueue \ +coursegraph \ +insights \ +analyticsapi \ + " -# 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 +# 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 + cms) + echo -e "${YELLOW}CMS is provisioned alongside LMS.\nPass 'lms' as an argument to ensure that CMS 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 -# 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 +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}" -echo -e "MySQL ready" +# Bring the databases online. +docker compose up -d mysql57 +docker compose up -d mysql80 +if needs_mongo "$to_provision_ordered"; then + docker compose up -d mongo +fi + +# Ensure the MySQL server is online and usable +echo -e "${GREEN}Waiting for MySQL.${NC}" +make dev.wait-for.mysql57+mysql80 +echo -e "${GREEN}MySQL is 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 +# 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 +echo -e "${GREEN}Ensuring MySQL 8.0 databases and users exist...${NC}" +docker compose exec -T mysql80 bash -e -c "mysql -uroot mysql" < provision-mysql80.sql -./provision-lms.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 + make dev.wait-for.mongo + 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 -# 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 +# 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 93760e68e0..0b672c9986 100644 --- a/provision.sql +++ b/provision.sql @@ -7,12 +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 72f97b0e06..aab69bdccd 100755 --- a/repo.sh +++ b/repo.sh @@ -11,60 +11,210 @@ 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/edx/edx-e2e-tests.git" - "https://github.com/edx/edx-platform.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/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-learner-dashboard" + "https://github.com/openedx/frontend-app-learner-record" + "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" ) -name_pattern=".*edx/(.*).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/openedx/frontend-app-ora-grading.git" +) -clone () +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: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-learner-dashboard.git" + "git@github.com:openedx/frontend-app-learner-record.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:openedx/frontend-app-ora-grading.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 () { - for repo in ${repos[*]} + 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 [ -d "$name" ]; 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 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 () +{ + + repos_to_clone=("$@") + for repo in "${repos_to_clone[@]}" + 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 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[@]}" +} + 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 () @@ -76,22 +226,23 @@ 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" == "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.txt b/requirements.txt deleted file mode 100644 index 6064c51433..0000000000 --- a/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -docker-compose>=1.9.0,<2.0.0 diff --git a/requirements/base.in b/requirements/base.in new file mode 100644 index 0000000000..1b9e6a1a3c --- /dev/null +++ b/requirements/base.in @@ -0,0 +1,4 @@ +-c constraints.txt + +# Support for Apple Silicon begins with 6.0.0 +PyYAML>=6.0.0 # For parsing configuration files while generating offline installers diff --git a/requirements/base.txt b/requirements/base.txt new file mode 100644 index 0000000000..a0fda06220 --- /dev/null +++ b/requirements/base.txt @@ -0,0 +1,8 @@ +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# make upgrade +# +pyyaml==6.0.1 + # via -r requirements/base.in 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..47af9a5c68 --- /dev/null +++ b/requirements/dev.in @@ -0,0 +1,8 @@ +# 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 diff --git a/requirements/dev.txt b/requirements/dev.txt new file mode 100644 index 0000000000..0e4348426f --- /dev/null +++ b/requirements/dev.txt @@ -0,0 +1,102 @@ +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# make upgrade +# +build==1.0.3 + # via + # -r requirements/pip-tools.txt + # pip-tools +cachetools==5.3.3 + # via tox +chardet==5.2.0 + # via tox +click==8.1.7 + # via + # -r requirements/pip-tools.txt + # pip-tools +colorama==0.4.6 + # via tox +distlib==0.3.8 + # via virtualenv +exceptiongroup==1.2.0 + # via + # -r requirements/test.txt + # pytest +filelock==3.13.1 + # via + # tox + # virtualenv +importlib-metadata==7.0.1 + # via + # -r requirements/pip-tools.txt + # build +iniconfig==2.0.0 + # via + # -r requirements/test.txt + # pytest +packaging==23.2 + # via + # -r requirements/pip-tools.txt + # -r requirements/test.txt + # build + # pyproject-api + # pytest + # tox +pexpect==4.9.0 + # via -r requirements/test.txt +pip-tools==7.4.0 + # via -r requirements/pip-tools.txt +platformdirs==4.2.0 + # via + # tox + # virtualenv +pluggy==1.4.0 + # via + # -r requirements/test.txt + # pytest + # tox +ptyprocess==0.7.0 + # via + # -r requirements/test.txt + # pexpect +pyproject-api==1.6.1 + # via tox +pyproject-hooks==1.0.0 + # via + # -r requirements/pip-tools.txt + # build + # pip-tools +pytest==8.0.2 + # via -r requirements/test.txt +pyyaml==6.0.1 + # via + # -r requirements/base.txt + # -r requirements/test.txt +tomli==2.0.1 + # via + # -r requirements/pip-tools.txt + # -r requirements/test.txt + # build + # pip-tools + # pyproject-api + # pyproject-hooks + # pytest + # tox +tox==4.13.0 + # via -r requirements/dev.in +virtualenv==20.25.1 + # via tox +wheel==0.42.0 + # via + # -r requirements/pip-tools.txt + # pip-tools +zipp==3.17.0 + # via + # -r requirements/pip-tools.txt + # importlib-metadata + +# 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..60207061c2 --- /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 +sphinx-book-theme # Common theme for all Open edX projects +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..68e4b077f9 --- /dev/null +++ b/requirements/doc.txt @@ -0,0 +1,99 @@ +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# make upgrade +# +accessible-pygments==0.0.4 + # via pydata-sphinx-theme +alabaster==0.7.13 + # via sphinx +babel==2.14.0 + # via + # pydata-sphinx-theme + # sphinx +beautifulsoup4==4.12.3 + # via pydata-sphinx-theme +certifi==2024.2.2 + # via requests +charset-normalizer==3.3.2 + # via requests +doc8==1.1.1 + # via -r requirements/doc.in +docutils==0.19 + # via + # doc8 + # pydata-sphinx-theme + # readme-renderer + # restructuredtext-lint + # sphinx +idna==3.6 + # via requests +imagesize==1.4.1 + # via sphinx +importlib-metadata==7.0.1 + # via sphinx +jinja2==3.1.3 + # via sphinx +markupsafe==2.1.5 + # via jinja2 +nh3==0.2.15 + # via readme-renderer +packaging==23.2 + # via + # pydata-sphinx-theme + # sphinx +pbr==6.0.0 + # via stevedore +pydata-sphinx-theme==0.14.4 + # via sphinx-book-theme +pygments==2.17.2 + # via + # accessible-pygments + # doc8 + # pydata-sphinx-theme + # readme-renderer + # sphinx +pytz==2024.1 + # via babel +pyyaml==6.0.1 + # via -r requirements/base.txt +readme-renderer==43.0 + # via -r requirements/doc.in +requests==2.31.0 + # via sphinx +restructuredtext-lint==1.4.0 + # via doc8 +snowballstemmer==2.2.0 + # via sphinx +soupsieve==2.5 + # via beautifulsoup4 +sphinx==6.2.1 + # via + # -r requirements/doc.in + # pydata-sphinx-theme + # sphinx-book-theme +sphinx-book-theme==1.0.1 + # via -r requirements/doc.in +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.2.0 + # via doc8 +tomli==2.0.1 + # via doc8 +typing-extensions==4.10.0 + # via pydata-sphinx-theme +urllib3==2.2.1 + # via requests +zipp==3.17.0 + # via importlib-metadata diff --git a/requirements/pip-tools.in b/requirements/pip-tools.in new file mode 100644 index 0000000000..f99de0eece --- /dev/null +++ b/requirements/pip-tools.in @@ -0,0 +1,3 @@ +-c constraints.txt + +pip-tools diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt new file mode 100644 index 0000000000..44c48d9966 --- /dev/null +++ b/requirements/pip-tools.txt @@ -0,0 +1,33 @@ +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# make upgrade +# +build==1.0.3 + # via pip-tools +click==8.1.7 + # via pip-tools +importlib-metadata==7.0.1 + # via build +packaging==23.2 + # via build +pip-tools==7.4.0 + # via -r requirements/pip-tools.in +pyproject-hooks==1.0.0 + # via + # build + # pip-tools +tomli==2.0.1 + # via + # build + # pip-tools + # pyproject-hooks +wheel==0.42.0 + # via pip-tools +zipp==3.17.0 + # via importlib-metadata + +# 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..66656035bd --- /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.42.0 + # via -r requirements/pip.in + +# The following packages are considered to be unsafe in a requirements file: +pip==24.0 + # via -r requirements/pip.in +setuptools==69.1.1 + # 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..012c402fb7 --- /dev/null +++ b/requirements/test.txt @@ -0,0 +1,24 @@ +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# make upgrade +# +exceptiongroup==1.2.0 + # via pytest +iniconfig==2.0.0 + # via pytest +packaging==23.2 + # via pytest +pexpect==4.9.0 + # via -r requirements/test.in +pluggy==1.4.0 + # via pytest +ptyprocess==0.7.0 + # via pexpect +pytest==8.0.2 + # via -r requirements/test.in +pyyaml==6.0.1 + # via -r requirements/base.txt +tomli==2.0.1 + # via pytest 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..7446880206 --- /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 CMS. 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 new file mode 100755 index 0000000000..3d8d91e9be --- /dev/null +++ b/scripts/extract_snapshot_linux.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +# Installs Open edX devstack on Linux from a local snapshot of repository, +# image, and volume tarballs. + +set -e + +# Extract all of the Open edX source code repositories needed to run devstack +for tarball in repositories/*.tar.gz +do + echo "Extracting $tarball" + tar xzf $tarball +done + +# Load Docker containers and their associated volumes +# Calls to "docker" usually require sudo privileges on Linux +# 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 +make down + +# Start all the containers again with correctly populated volumes. +make dev.up.large-and-slow diff --git a/scripts/extract_snapshot_mac.sh b/scripts/extract_snapshot_mac.sh new file mode 100755 index 0000000000..141583aaf1 --- /dev/null +++ b/scripts/extract_snapshot_mac.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +# Installs Open edX devstack on macOS from a local snapshot of repository, +# image, and volume tarballs. + +set -e + +# Extract all of the Open edX source code repositories needed to run devstack +for tarball in repositories/*.tar.gz +do + echo "Extracting $tarball" + tar xzf $tarball +done + +# Load Docker containers and populate their associated volumes +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 +make down + +# Start all the containers again with correctly populated volumes. +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..d6d7115fca --- /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://edx.readthedocs.io/projects/open-edx-devstack/en/latest/devstack_interface.html + +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 new file mode 100755 index 0000000000..363c255b8f --- /dev/null +++ b/scripts/restore.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python +""" +Restore Docker images and volumes from the tarballs found in "images" and +"volumes" subdirectories of the current directory. +""" +from __future__ import absolute_import, print_function, unicode_literals + +import json +import os +from subprocess import check_call + +SOURCE_DIR = os.getcwd() +IMAGES_DIR = os.path.join(SOURCE_DIR, 'images') +VOLUMES_DIR = os.path.join(SOURCE_DIR, 'volumes') +VOLUMES_JSON = os.path.join(VOLUMES_DIR, 'volumes.json') +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:latest' + + +def load_images(): + """ + Load all of the Docker images from the associated tarballs. + """ + for filename in os.listdir(IMAGES_DIR): + if not filename.endswith('.tar.gz'): + continue + tarball = os.path.join(IMAGES_DIR, filename) + print('Loading Docker image from {}'.format(filename)) + check_call(['docker', 'load', '--input', tarball]) + + +def start_devstack(): + """ + Start the devstack containers so their volumes can be populated. + """ + cwd = os.getcwd() + os.chdir(DEVSTACK_REPO_DIR) + check_call(['make', 'dev.up.large-and-slow']) + os.chdir(cwd) + + +def load_volumes(): + """ + Restore the image volume content from the associated tarballs. + """ + with open(VOLUMES_JSON, 'r') as f: + volumes = json.loads(f.read()) + for volume in volumes: + container_name = volume['container'] + path = volume['path'] + if path.endswith('/'): + path = path[:-1] + tarball = volume['tarball'] + components = str(path.count('/')) + print('Loading volume from {}'.format(tarball)) + check_call(['docker', 'run', '--rm', '--volumes-from', container_name, + '-v', '{}:/backup'.format(VOLUMES_DIR), BACKUP_IMAGE, + 'tar', 'xzf', '/backup/{}'.format(tarball), '-C', path, + '--strip-components', components]) + + +if __name__ == "__main__": + load_images() + start_devstack() + load_volumes() 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 new file mode 100755 index 0000000000..0cd098b52c --- /dev/null +++ b/scripts/snapshot.py @@ -0,0 +1,133 @@ +#!/usr/bin/env python +""" +Script to capture a snapshot of the current devstack images, repositories, +and volume content to tarballs for no-network installation. To be run while +devstack is running (otherwise volume content can't be accessed). +""" +from __future__ import absolute_import, print_function, unicode_literals + +import argparse +import json +import os +import re +from shutil import copyfile +from subprocess import STDOUT, CalledProcessError, check_output + +import yaml + +REPO_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +DEVSTACK_WORKSPACE = os.path.dirname(REPO_ROOT) +REPO_SCRIPT = os.path.join(REPO_ROOT, 'repo.sh') + +# Use this minimal container image to fetch volume content +BACKUP_IMAGE = 'alpine:latest' + + +def make_directories(output_dir): + """ + Create any of the output directories that don't already exist. + """ + if not os.path.exists(output_dir): + os.mkdir(output_dir) + for dir_name in ('images', 'repositories', 'volumes'): + path = os.path.join(output_dir, dir_name) + if not os.path.exists(path): + os.mkdir(path) + + +def archive_repos(output_dir): + """ + Create tarballs for each of the relevant repositories in DEVSTACK_WORKSPACE + """ + with open('repo.sh', 'r') as f: + script = f.read() + prefix = r'https://github\.com/edx/' + suffix = r'\.git' + repos = re.findall(r'{}[^\.]+{}'.format(prefix, suffix), script) + dirs = [repo[len(prefix) - 1:1 - len(suffix)] for repo in repos if 'edx-themes' not in repo] + dirs.append('devstack') + repositories_dir = os.path.join(output_dir, 'repositories') + cwd = os.getcwd() + os.chdir(DEVSTACK_WORKSPACE) + for directory in dirs: + print('Archiving {}'.format(directory)) + output = os.path.join(repositories_dir, '{}.tar.gz'.format(directory)) + check_output(['tar', 'czf', output, directory], stderr=STDOUT) + os.chdir(cwd) + + +def process_compose_file(filename, output_dir): + """ + Go through the given docker-compose YAML file and save any of the + referenced Docker images and data volumes to tarballs. + """ + images_dir = os.path.join(output_dir, 'images') + volumes_dir = os.path.join(output_dir, 'volumes') + compose_path = os.path.join(REPO_ROOT, filename) + with open(compose_path, 'r') as f: + devstack = yaml.safe_load(f.read()) + + volume_list = [] + services = devstack['services'] + saved_images = set() + 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 cms + if image not in saved_images: + output = os.path.join(images_dir, '{}.tar'.format(service_name)) + print('Saving image {}'.format(service_name)) + check_output(['docker', 'save', '--output', output, image], + stderr=STDOUT) + check_output(['gzip', output], stderr=STDOUT) + saved_images.add(image) + + if 'volumes' in service: + volumes = service['volumes'] + for volume in volumes: + if volume[0] == '.': + # Mount of a host directory, skip it + continue + 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_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_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)) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('output_dir', help='The directory in which to create the devstack snapshot') + args = parser.parse_args() + output_dir = os.path.abspath(args.output_dir) + make_directories(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..7645cd22f5 --- /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'docker compose pull --include-deps') + + # 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..18640075b6 --- /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} +allowlist_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..6591ba24bd --- /dev/null +++ b/update-dbs-init-sql-scripts.sh @@ -0,0 +1,37 @@ +#!/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.pull.lms+ecommerce +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.mysql80)" +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 diff --git a/upgrade_mongo_4_4.sh b/upgrade_mongo_4_4.sh new file mode 100755 index 0000000000..173c31d3ae --- /dev/null +++ b/upgrade_mongo_4_4.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.4 +export MONGO_VERSION=4.4.18 + +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\.2" ; then + echo -e "${GREEN}Upgrading FeatureCompatibilityVersion to 4.4${NC}" + docker exec -it "$mongo_container" mongo --eval "db.adminCommand( { setFeatureCompatibilityVersion: \"4.4\" } )" +else + echo -e "${GREEN}FeatureCompatibilityVersion already set to 4.4${NC}" +fi diff --git a/upgrade_mongo_5_0.sh b/upgrade_mongo_5_0.sh new file mode 100755 index 0000000000..5fa01cb741 --- /dev/null +++ b/upgrade_mongo_5_0.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.4 to MongoDB 5.0.24 + +. scripts/colors.sh + +# Upgrade to mongo 5.0.24 +export MONGO_VERSION=5.0.24 + +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 "5\.0" ; then + echo -e "${GREEN}Upgrading FeatureCompatibilityVersion to 5.0${NC}" + docker exec -it "$mongo_container" mongo --eval "db.adminCommand( { setFeatureCompatibilityVersion: \"5.0\" } )" +else + echo -e "${GREEN}FeatureCompatibilityVersion already set to 5.0${NC}" +fi diff --git a/wait-ready.sh b/wait-ready.sh new file mode 100755 index 0000000000..7fb1736685 --- /dev/null +++ b/wait-ready.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# Wait for the listed services to become ready. +# +# This does not start the containers; that should be performed separately +# via `make dev.up` in order to allow for parallel startup. + +set -eu -o pipefail + +function print_usage { + echo "Usage: $0 service1 service2 ..." +} + +if [[ $# == 0 ]]; then + print_usage + exit 0 +fi + +for service_name in "$@"; do + until ./check.sh "$service_name" >/dev/null 2>&1; do + printf "." >&2 + sleep 1 + done + echo >&2 "$service_name is ready" +done