|
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