|
5 | 5 | export version="$1" |
6 | 6 | db=${2:-install} |
7 | 7 |
|
| 8 | +# If this script is called from unit-tests.sh, we use the test environment |
| 9 | +export APP_ENV="${3:-prod}" |
| 10 | + |
| 11 | +# In the test environment, we need to use a different database |
| 12 | +[ "$APP_ENV" = "prod" ] && DATABASE_NAME=domjudge || DATABASE_NAME=domjudge_test |
| 13 | + |
8 | 14 | set -eux |
9 | 15 |
|
10 | 16 | PHPVERSION=$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION."\n";') |
@@ -50,21 +56,21 @@ cat > ~/.my.cnf <<EOF |
50 | 56 | [client] |
51 | 57 | host=sqlserver |
52 | 58 | user=root |
53 | | -password=root |
| 59 | +password=${MYSQL_ROOT_PASSWORD} |
54 | 60 | EOF |
55 | 61 | cat ~/.my.cnf |
56 | 62 |
|
57 | | -mysql_root "CREATE DATABASE IF NOT EXISTS \`domjudge\` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" |
58 | | -mysql_root "CREATE USER IF NOT EXISTS \`domjudge\`@'%' IDENTIFIED BY 'domjudge';" |
59 | | -mysql_root "GRANT SELECT, INSERT, UPDATE, DELETE ON \`domjudge\`.* TO 'domjudge'@'%';" |
| 63 | +mysql_root "CREATE DATABASE IF NOT EXISTS \`$DATABASE_NAME\` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" |
| 64 | +mysql_root "CREATE USER IF NOT EXISTS \`$DATABASE_NAME\`@'%' IDENTIFIED BY 'domjudge';" |
| 65 | +mysql_root "GRANT SELECT, INSERT, UPDATE, DELETE ON \`$DATABASE_NAME\`.* TO 'domjudge'@'%';" |
60 | 66 | mysql_root "FLUSH PRIVILEGES;" |
61 | 67 |
|
62 | 68 | # Show some MySQL debugging |
63 | 69 | mysql_root "show databases" |
64 | 70 | mysql_root "SELECT CURRENT_USER();" |
65 | 71 | mysql_root "SELECT USER();" |
66 | 72 | mysql_root "SELECT user,host FROM mysql.user" |
67 | | -echo "unused:sqlserver:domjudge:domjudge:domjudge:3306" > /opt/domjudge/domserver/etc/dbpasswords.secret |
| 73 | +echo "unused:sqlserver:domjudge:domjudge:$DATABASE_NAME:3306" > /opt/domjudge/domserver/etc/dbpasswords.secret |
68 | 74 | mysql_user "SELECT CURRENT_USER();" |
69 | 75 | mysql_user "SELECT USER();" |
70 | 76 | section_end |
@@ -113,6 +119,10 @@ section_end |
113 | 119 |
|
114 | 120 | if [ "${db}" = "install" ]; then |
115 | 121 | section_start "Install the example data" |
| 122 | + if [ "$version" = "unit" ]; then |
| 123 | + # Make sure admin has no team associated so we will not insert submissions during unit tests. |
| 124 | + mysql_root "UPDATE user SET teamid=null WHERE userid=1;" $DATABASE_NAME |
| 125 | + fi |
116 | 126 | /opt/domjudge/domserver/bin/dj_setup_database -uroot -proot install-examples | tee -a "$ARTIFACTS/mysql.txt" |
117 | 127 | section_end |
118 | 128 | fi |
|
0 commit comments