Skip to content

chore: remove mysql57 #129

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 22, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 2 additions & 21 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -186,16 +186,14 @@ dev.provision.%: dev.check-memory ## Provision specified services.
echo $*
bash ./provision.sh $*

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
dev.backup: dev.up.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.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

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
dev.restore: dev.up.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.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
Expand Down Expand Up @@ -413,23 +411,6 @@ dev.shell.%: ## Run a shell on the specified service's container.
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 $*"

Expand Down
5 changes: 0 additions & 5 deletions check.sh
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,6 @@ mysql_run_check() {
"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
Expand Down
32 changes: 0 additions & 32 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -186,23 +186,6 @@ services:
- mongo_data:/data/db
- mongo_config_data:/data/configdb

mysql57:
command: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci
container_name: "edx.${COMPOSE_PROJECT_NAME:-devstack}.mysql57"
hostname: mysql57.devstack.edx
environment:
MYSQL_ROOT_PASSWORD: ""
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
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"
Expand Down Expand Up @@ -280,7 +263,6 @@ services:
- lms
- memcached
- mysql80
- mysql57
# Allows attachment to the credentials service using 'docker attach <containerID>'.
stdin_open: true
tty: true
Expand All @@ -306,7 +288,6 @@ services:
- elasticsearch710
- memcached
- mysql80
- mysql57
- opensearch12
- redis
# Allows attachment to the discovery service using 'docker attach <containerID>'.
Expand Down Expand Up @@ -339,7 +320,6 @@ services:
- lms
- memcached
- mysql80
- mysql57
# Allows attachment to the ecommerce service using 'docker attach <containerID>'.
stdin_open: true
tty: true
Expand All @@ -366,7 +346,6 @@ services:
- elasticsearch710
- lms
- mysql80
- mysql57
image: edxops/edx-notes-api-dev:latest
networks:
default:
Expand Down Expand Up @@ -480,7 +459,6 @@ services:
- memcached
- mongo
- mysql80
- mysql57
# Allows attachment to the LMS service using 'docker attach <containerID>'.
stdin_open: true
tty: true
Expand Down Expand Up @@ -516,7 +494,6 @@ services:
hostname: lms-worker.devstack.edx
depends_on:
- mysql80
- mysql57
- redis
stdin_open: true
tty: true
Expand All @@ -533,7 +510,6 @@ services:
depends_on:
- analyticsapi
- mysql80
- mysql57
- lms
- memcached
# Allows attachment to the insights service using 'docker attach <containerID>'.
Expand Down Expand Up @@ -566,7 +542,6 @@ services:
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
Expand All @@ -592,7 +567,6 @@ services:
- discovery
- lms
- mysql80
- mysql57
- memcached
- redis
- registrar-worker
Expand Down Expand Up @@ -635,7 +609,6 @@ services:
depends_on:
- lms
- mysql80
- mysql57
- redis
stdin_open: true
tty: true
Expand Down Expand Up @@ -674,7 +647,6 @@ services:
- memcached
- mongo
- mysql80
- mysql57
# Allows attachment to the CMS service using 'docker attach <containerID>'.
stdin_open: true
tty: true
Expand Down Expand Up @@ -710,7 +682,6 @@ services:
hostname: cms-worker.devstack.edx
depends_on:
- mysql80
- mysql57
- redis
stdin_open: true
tty: true
Expand Down Expand Up @@ -745,7 +716,6 @@ services:
- ${PWD}/configuration_files/xqueue.yml:/edx/etc/xqueue.yml
depends_on:
- mysql80
- mysql57
environment:
XQUEUE_CFG: "/edx/etc/xqueue.yml"
networks:
Expand All @@ -765,7 +735,6 @@ services:
- ${PWD}/configuration_files/xqueue.yml:/edx/etc/xqueue.yml
depends_on:
- mysql80
- mysql57
networks:
default:
aliases:
Expand Down Expand Up @@ -1200,6 +1169,5 @@ volumes:
mongo_data:
mongo_config_data:
opensearch12_data:
mysql57_data:
mysql80_data:
redis_data:
2 changes: 1 addition & 1 deletion options.mk
Original file line number Diff line number Diff line change
Expand Up @@ -90,4 +90,4 @@ credentials+cms+discovery+ecommerce+insights+lms+registrar
# 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
chrome+coursegraph+elasticsearch710+firefox+memcached+mongo+mysql80+opensearch12+redis+namenode+datanode+resourcemanager+nodemanager+sparkmaster+sparkworker+vertica
5 changes: 1 addition & 4 deletions provision.sh
Original file line number Diff line number Diff line change
Expand Up @@ -127,21 +127,18 @@ fi
echo -e "${GREEN}Will provision the following:\n ${to_provision_ordered}${NC}"

# 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
make dev.wait-for.mysql80
echo -e "${GREEN}MySQL is ready.${NC}"

# 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

Expand Down
Loading