Skip to content
This repository was archived by the owner on Aug 1, 2024. It is now read-only.

Commit c7f05b2

Browse files
zubairshakoorarbisoftmumarkhan999
authored andcommitted
feat: upgrade mysql to 8.0
1 parent 0052e0d commit c7f05b2

File tree

7 files changed

+37
-21
lines changed

7 files changed

+37
-21
lines changed

Makefile

+9-5
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
# make dev.attach.credentials
99
# make dev.pull.registrar+cms
1010
# make dev.up.lms
11-
# make dev.up.without-deps.lms+forum+discovery+mysql57+elasticsearch710+memcached
12-
# make dev.restart-container.mysql57+lms
11+
# make dev.up.without-deps.lms+forum+discovery+mysql80+elasticsearch710+memcached
12+
# make dev.restart-container.mysql80+lms
1313

1414
# There are also "prefix-form" targets, which are simply an alternate way to spell
1515
# the 'dev.' targets.
@@ -264,7 +264,7 @@ dev.migrate.%: ## Run migrations on a service.
264264
dev.drop-db: _expects-database.dev.drop-db
265265

266266
dev.drop-db.%: ## Irreversably drop the contents of a MySQL database in each mysql container.
267-
docker compose exec -T mysql57 bash -c "mysql --execute=\"DROP DATABASE $*;\""
267+
docker compose exec -T mysql80 bash -c "mysql --execute=\"DROP DATABASE $*;\""
268268

269269

270270
########################################################################################
@@ -457,15 +457,19 @@ dev.shell.%: ## Run a shell on the specified service's container.
457457
docker compose exec $* /bin/bash
458458

459459
dev.dbshell:
460-
docker compose exec mysql57 bash -c "mysql"
460+
docker compose exec mysql80 bash -c "mysql"
461+
462+
DB_NAMES_LIST = credentials discovery ecommerce notes registrar xqueue edxapp edxapp_csmh dashboard analytics-api reports reports_v1
463+
_db_copy8_targets = $(addprefix dev.dbcopy8.,$(DB_NAMES_LIST))
464+
dev.dbcopyall8: | $(_db_copy8_targets) ## Copy data from old mysql 5.7 containers into new mysql8 dbs
461465

462466
dev.dbcopy8.%: ## Copy data from old mysql 5.7 container into a new 8 db
463467
docker compose exec mysql57 bash -c "mysqldump $*" > .dev/$*.sql
464468
docker compose exec -T mysql80 bash -c "mysql $*" < .dev/$*.sql
465469
rm .dev/$*.sql
466470

467471
dev.dbshell.%: ## Run a SQL shell on the given database.
468-
docker compose exec mysql57 bash -c "mysql $*"
472+
docker compose exec mysql80 bash -c "mysql $*"
469473

470474
# List of Makefile targets to run static asset generation, in the form dev.static.$(service)
471475
# Services will only have their asset generation added here

configuration_files/ecommerce.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ DATABASES:
2525
ATOMIC_REQUESTS: true
2626
CONN_MAX_AGE: 60
2727
ENGINE: django.db.backends.mysql
28-
HOST: edx.devstack.mysql57
28+
HOST: edx.devstack.mysql80
2929
NAME: ecommerce
3030
OPTIONS:
3131
connect_timeout: 10

configuration_files/xqueue.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ DATABASES:
55
ATOMIC_REQUESTS: true
66
CONN_MAX_AGE: 0
77
ENGINE: django.db.backends.mysql
8-
HOST: edx.devstack.mysql57
8+
HOST: edx.devstack.mysql80
99
NAME: xqueue
1010
OPTIONS: {}
1111
PASSWORD: password

docker-compose.yml

+19-7
Original file line numberDiff line numberDiff line change
@@ -293,13 +293,14 @@ services:
293293
depends_on:
294294
- lms
295295
- memcached
296+
- mysql80
296297
- mysql57
297298
# Allows attachment to the credentials service using 'docker attach <containerID>'.
298299
stdin_open: true
299300
tty: true
300301
environment:
301302
CACHE_LOCATION: edx.devstack.memcached:11211
302-
DB_HOST: edx.devstack.mysql57
303+
DB_HOST: edx.devstack.mysql80
303304
SOCIAL_AUTH_EDX_OIDC_URL_ROOT: http://edx.devstack.lms:18000/oauth2
304305
ENABLE_DJANGO_TOOLBAR: 1
305306
DJANGO_WATCHMAN_TIMEOUT: 30
@@ -318,6 +319,7 @@ services:
318319
depends_on:
319320
- elasticsearch710
320321
- memcached
322+
- mysql80
321323
- mysql57
322324
- opensearch12
323325
- redis
@@ -327,7 +329,7 @@ services:
327329
environment:
328330
# This next DB_MIGRATION_HOST line can be removed once edx/configuration has been updated with this value for
329331
# a while and most people have had a chance to do a "make pull" to get the latest images.
330-
DB_MIGRATION_HOST: edx.devstack.mysql57
332+
DB_MIGRATION_HOST: edx.devstack.mysql80
331333
TEST_ELASTICSEARCH_URL: "edx.devstack.elasticsearch710"
332334
ENABLE_DJANGO_TOOLBAR: 1
333335
DJANGO_WATCHMAN_TIMEOUT: 30
@@ -350,6 +352,7 @@ services:
350352
- discovery
351353
- lms
352354
- memcached
355+
- mysql80
353356
- mysql57
354357
# Allows attachment to the ecommerce service using 'docker attach <containerID>'.
355358
stdin_open: true
@@ -377,6 +380,7 @@ services:
377380
- devpi
378381
- elasticsearch710
379382
- lms
383+
- mysql80
380384
- mysql57
381385
image: openedx/edx-notes-api-dev:${OPENEDX_RELEASE:-latest}
382386
networks:
@@ -387,7 +391,7 @@ services:
387391
- "18120:18120"
388392
environment:
389393
DB_ENGINE: "django.db.backends.mysql"
390-
DB_HOST: "edx.devstack.mysql57"
394+
DB_HOST: "edx.devstack.mysql80"
391395
DB_NAME: "notes"
392396
DB_PASSWORD: "password"
393397
DB_PORT: "3306"
@@ -427,6 +431,7 @@ services:
427431
- forum
428432
- memcached
429433
- mongo
434+
- mysql80
430435
- mysql57
431436
# Allows attachment to the LMS service using 'docker attach <containerID>'.
432437
stdin_open: true
@@ -463,14 +468,15 @@ services:
463468
hostname: insights.devstack.edx
464469
depends_on:
465470
- analyticsapi
471+
- mysql80
466472
- mysql57
467473
- lms
468474
- memcached
469475
# Allows attachment to the insights service using 'docker attach <containerID>'.
470476
stdin_open: true
471477
tty: true
472478
environment:
473-
DB_HOST: edx.devstack.mysql57
479+
DB_HOST: edx.devstack.mysql80
474480
DB_NAME: dashboard
475481
DB_PORT: 3306
476482
DB_USER: analytics001
@@ -495,13 +501,14 @@ services:
495501
container_name: edx.devstack.analyticsapi
496502
hostname: analyticsapi
497503
depends_on:
504+
- mysql80
498505
- mysql57
499506
- elasticsearch710
500507
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'
501508
stdin_open: true
502509
tty: true
503510
environment:
504-
DB_HOST: edx.devstack.mysql57
511+
DB_HOST: edx.devstack.mysql80
505512
DB_PORT: 3306
506513
DB_USER: analytics001
507514
DB_PASSWORD: password
@@ -520,6 +527,7 @@ services:
520527
depends_on:
521528
- discovery
522529
- lms
530+
- mysql80
523531
- mysql57
524532
- memcached
525533
- redis
@@ -528,7 +536,7 @@ services:
528536
stdin_open: true
529537
tty: true
530538
environment:
531-
DB_HOST: edx.devstack.mysql57
539+
DB_HOST: edx.devstack.mysql80
532540
DB_NAME: registrar
533541
DB_PORT: 3306
534542
DB_USER: registrar001
@@ -562,12 +570,13 @@ services:
562570
hostname: registrar-worker.devstack.edx
563571
depends_on:
564572
- lms
573+
- mysql80
565574
- mysql57
566575
- redis
567576
stdin_open: true
568577
tty: true
569578
environment:
570-
DB_HOST: edx.devstack.mysql57
579+
DB_HOST: edx.devstack.mysql80
571580
DB_NAME: registrar
572581
DB_PORT: 3306
573582
DB_USER: registrar001
@@ -600,6 +609,7 @@ services:
600609
- lms
601610
- memcached
602611
- mongo
612+
- mysql80
603613
- mysql57
604614
# Allows attachment to the CMS service using 'docker attach <containerID>'.
605615
stdin_open: true
@@ -639,6 +649,7 @@ services:
639649
- ${DEVSTACK_WORKSPACE}/xqueue:/edx/app/xqueue/xqueue
640650
- ${PWD}/configuration_files/xqueue.yml:/edx/etc/xqueue.yml
641651
depends_on:
652+
- mysql80
642653
- mysql57
643654
environment:
644655
XQUEUE_CFG: "/edx/etc/xqueue.yml"
@@ -658,6 +669,7 @@ services:
658669
- ${DEVSTACK_WORKSPACE}/xqueue:/edx/app/xqueue/xqueue
659670
- ${PWD}/configuration_files/xqueue.yml:/edx/etc/xqueue.yml
660671
depends_on:
672+
- mysql80
661673
- mysql57
662674
networks:
663675
default:

docs/devstack_faq.rst

+5-5
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ How do I connect to the databases from an outside editor?
134134
---------------------------------------------------------
135135

136136
To connect to the databases from an outside editor (such as MySQLWorkbench),
137-
first uncomment these lines from ``docker-compose.yml``'s ``mysql57`` section
137+
first uncomment these lines from ``docker-compose.yml``'s ``mysql80`` section
138138

139139
.. code:: yaml
140140
@@ -145,8 +145,8 @@ Then bring your mysql container down and back up by running:
145145

146146
.. code:: sh
147147
148-
docker compose stop mysql57
149-
docker compose up -d mysql57
148+
docker compose stop mysql80
149+
docker compose up -d mysql80
150150
151151
Then connect using the values below. Note that the username and password will
152152
vary depending on the database. For all of the options, see ``provision.sql``.
@@ -158,7 +158,7 @@ vary depending on the database. For all of the options, see ``provision.sql``.
158158

159159
If you have trouble connecting, ensure the port was mapped successfully by
160160
running ``make dev.ps`` and looking for a line like this:
161-
``edx.devstack.mysql57 docker-entrypoint.sh mysql ... Up 0.0.0.0:3506→3306/tcp``.
161+
``edx.devstack.mysql80 docker-entrypoint.sh mysql ... Up 0.0.0.0:3506→3306/tcp``.
162162

163163
How do I build the service images myself?
164164
-----------------------------------------
@@ -209,7 +209,7 @@ To access the MySQL shell for a particular database, run:
209209

210210
.. code:: sh
211211
212-
make dev.shell.mysql57
212+
make dev.shell.mysql80
213213
mysql
214214
use <database>;
215215

load-db.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ then
1616
fi
1717

1818
echo "Loading the $1 database..."
19-
mysql_container=$(make --silent --no-print-directory dev.print-container.mysql57)
19+
mysql_container=$(make --silent --no-print-directory dev.print-container.mysql80)
2020
docker exec -i "$mysql_container" mysql -uroot $1 < $1.sql
2121
echo "Finished loading the $1 database!"

update-dbs-init-sql-scripts.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ make dev.pull.lms+ecommerce
2424
make dev.provision.services.lms+ecommerce
2525

2626
# dump schema and data from mysql databases in the mysql docker container and copy them to current directory in docker host
27-
MYSQL_DOCKER_CONTAINER="$(make --silent --no-print-directory dev.print-container.mysql57)"
27+
MYSQL_DOCKER_CONTAINER="$(make --silent --no-print-directory dev.print-container.mysql80)"
2828
for DB_NAME in "${DBS[@]}"; do
2929
DB_CREATION_SQL_SCRIPT="${DB_NAME}.sql"
3030
if [[ " ${EDXAPP_DBS[@]} " =~ " ${DB_NAME} " ]]; then

0 commit comments

Comments
 (0)