Merge pull request #11204 from edx/zoldak/bok-choy-reset-db
Clear out the bok choy DB with reset_db, not flush
This commit is contained in:
@@ -28,34 +28,54 @@ DB_CACHE_DIR="common/test/db_cache"
|
||||
echo "CREATE DATABASE IF NOT EXISTS edxtest;" | mysql -u root
|
||||
|
||||
# Clear out the test database
|
||||
#
|
||||
# We are using the django-extensions's reset_db command which uses "DROP DATABASE" and
|
||||
# "CREATE DATABASE" in case the tests are being run in an environment (e.g. devstack
|
||||
# or a jenkins worker environment) that already ran tests on another commit that had
|
||||
# different migrations that created, dropped, or altered tables.
|
||||
#
|
||||
# Note that as a side effect, this might render the --serversonly / --testsonly
|
||||
# paver options useless or broken.
|
||||
echo "Issuing a reset_db command to the bok_choy MySQL database."
|
||||
./manage.py lms --settings bok_choy reset_db --traceback --noinput
|
||||
|
||||
# If there are cached database schemas/data, load them
|
||||
if [[ -f $DB_CACHE_DIR/bok_choy_schema.sql && -f $DB_CACHE_DIR/bok_choy_migrations_data.sql && -f $DB_CACHE_DIR/bok_choy_data.json ]]; then
|
||||
|
||||
echo "Found the bok_choy DB cache files. Loading them into the database..."
|
||||
# Load the schema, then the data (including the migration history)
|
||||
echo "Loading the schema from the filesystem into the MySQL DB."
|
||||
mysql -u root edxtest < $DB_CACHE_DIR/bok_choy_schema.sql
|
||||
echo "Loading the migration data from the filesystem into the MySQL DB."
|
||||
mysql -u root edxtest < $DB_CACHE_DIR/bok_choy_migrations_data.sql
|
||||
echo "Loading the fixture data from the filesystem into the MySQL DB."
|
||||
./manage.py lms --settings bok_choy loaddata $DB_CACHE_DIR/bok_choy_data.json
|
||||
|
||||
# Re-run migrations to ensure we are up-to-date
|
||||
echo "Running the lms migrations on the bok_choy DB."
|
||||
./manage.py lms --settings bok_choy migrate --traceback --noinput
|
||||
echo "Running the cms migrations on the bok_choy DB."
|
||||
./manage.py cms --settings bok_choy migrate --traceback --noinput
|
||||
|
||||
# Otherwise, update the test database and update the cache
|
||||
else
|
||||
|
||||
echo "Did not find a bok_choy DB cache. Creating a new one from scratch."
|
||||
# Clean the cache directory
|
||||
rm -rf $DB_CACHE_DIR && mkdir -p $DB_CACHE_DIR
|
||||
|
||||
# Re-run migrations on the test database
|
||||
echo "Issuing a migrate command to the bok_choy MySQL database for the lms django apps."
|
||||
./manage.py lms --settings bok_choy migrate --traceback --noinput
|
||||
echo "Issuing a migrate command to the bok_choy MySQL database for the cms django apps."
|
||||
./manage.py cms --settings bok_choy migrate --traceback --noinput
|
||||
|
||||
# Dump the schema and data to the cache
|
||||
echo "Using the dumpdata command to save the fixture data to the filesystem."
|
||||
./manage.py lms --settings bok_choy dumpdata > $DB_CACHE_DIR/bok_choy_data.json
|
||||
# dump_data does not dump the django_migrations table so we do it separately.
|
||||
echo "Saving the django_migrations table of the bok_choy DB to the filesystem."
|
||||
mysqldump -u root --no-create-info edxtest django_migrations > $DB_CACHE_DIR/bok_choy_migrations_data.sql
|
||||
echo "Saving the schema of the bok_choy DB to the filesystem."
|
||||
mysqldump -u root --no-data --skip-comments --skip-dump-date edxtest > $DB_CACHE_DIR/bok_choy_schema.sql
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user