diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 21344a6540..f00bbc2904 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -137,6 +137,41 @@ jobs: with: dbOptions: '--dbclient=mysql --dbhost=localhost --dbport=3306 --dbname=strapi_test --dbusername=strapi --dbpassword=strapi' + e2e_ce_mysql_5: + runs-on: ubuntu-latest + needs: [lint, unit_back, unit_front] + name: '[CE] E2E (mysql, node: ${{ matrix.node }})' + strategy: + matrix: + node: [12, 14, 16] + max-parallel: 2 + services: + mysql: + image: mysql:5 + options: >- + --health-cmd="mysqladmin ping" + --health-interval=10s + --health-timeout=5s + --health-retries=3 + -e MYSQL_ROOT_PASSWORD=strapi + -e MYSQL_ROOT_HOST="%" + -e MYSQL_USER=strapi + -e MYSQL_PASSWORD=strapi + -e MYSQL_DATABASE=strapi_test + --entrypoint sh mysql -c "exec docker-entrypoint.sh mysqld --default-authentication-plugin=mysql_native_password" + ports: + # Maps tcp port 5432 on service container to the host + - 3306:3306 + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2-beta + with: + node-version: ${{ matrix.node }} + - uses: ./.github/actions/install-modules + - uses: ./.github/actions/run-e2e-tests + with: + dbOptions: '--dbclient=mysql --dbhost=localhost --dbport=3306 --dbname=strapi_test --dbusername=strapi --dbpassword=strapi' + e2e_ce_sqlite: runs-on: ubuntu-latest needs: [lint, unit_back, unit_front] diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 5dd0eb1fcb..927ceafebf 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -14,7 +14,7 @@ services: - '5432:5432' mysql: - image: mysql + image: mysql:5 restart: always command: --default-authentication-plugin=mysql_native_password environment: diff --git a/packages/core/database/lib/query/query-builder.js b/packages/core/database/lib/query/query-builder.js index d97dccea48..5d4f5a75f9 100644 --- a/packages/core/database/lib/query/query-builder.js +++ b/packages/core/database/lib/query/query-builder.js @@ -194,7 +194,10 @@ const createQueryBuilder = (uid, db) => { this.select('*'); } - if (['delete', 'update'].includes(state.type) && state.joins.length > 0) { + if ( + ['delete', 'update'].includes(state.type) && + (db.dialect.client === 'mysql' || state.joins.length > 0) + ) { this.select('id'); const subQB = this.getKnexQuery();