From b533412d44b555b294dcb5f76ae8af3ab8d08aad Mon Sep 17 00:00:00 2001 From: Jan Piotrowski Date: Thu, 11 Mar 2021 18:00:54 +0100 Subject: [PATCH 1/9] Update run --- frameworks/javascript/prisma/run | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frameworks/javascript/prisma/run b/frameworks/javascript/prisma/run index e8d73045..5478939b 100755 --- a/frameworks/javascript/prisma/run +++ b/frameworks/javascript/prisma/run @@ -7,6 +7,6 @@ export TEST_MYSQL_URI="${TEST_MYSQL_BASE_URI}/${VT_DATABASE}?sslmode=false"; export TEST_MARIADB_BASE_URL="${TEST_MYSQL_BASE_URI}"; export TEST_MARIADB_URI="${TEST_MYSQL_URI}"; -timeout 3m pnpm run jest integration/mysql -- --detectOpenHandles --maxConcurrency=1; -timeout 3m pnpm run jest integration/mariadb -- --detectOpenHandles --maxConcurrency=1; +timeout 3m pnpm run jest integration/mysql -- --detectOpenHandles --maxConcurrency=1 || true; +timeout 3m pnpm run jest integration/mariadb -- --detectOpenHandles --maxConcurrency=1 || true; From cac4cc2f5f1d14ffdf380f10dae950afd36bbd61 Mon Sep 17 00:00:00 2001 From: Jan Piotrowski Date: Thu, 11 Mar 2021 18:02:09 +0100 Subject: [PATCH 2/9] Update run --- frameworks/javascript/prisma/run | 1 - 1 file changed, 1 deletion(-) diff --git a/frameworks/javascript/prisma/run b/frameworks/javascript/prisma/run index 5478939b..44bf0bc6 100755 --- a/frameworks/javascript/prisma/run +++ b/frameworks/javascript/prisma/run @@ -9,4 +9,3 @@ export TEST_MARIADB_URI="${TEST_MYSQL_URI}"; timeout 3m pnpm run jest integration/mysql -- --detectOpenHandles --maxConcurrency=1 || true; timeout 3m pnpm run jest integration/mariadb -- --detectOpenHandles --maxConcurrency=1 || true; - From 54eca93f1a7bb27056c12db047c6c77507eeedaf Mon Sep 17 00:00:00 2001 From: Jan Piotrowski Date: Thu, 11 Mar 2021 18:26:00 +0100 Subject: [PATCH 3/9] Update run --- frameworks/javascript/prisma/run | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/frameworks/javascript/prisma/run b/frameworks/javascript/prisma/run index 44bf0bc6..91f007a8 100755 --- a/frameworks/javascript/prisma/run +++ b/frameworks/javascript/prisma/run @@ -9,3 +9,11 @@ export TEST_MARIADB_URI="${TEST_MYSQL_URI}"; timeout 3m pnpm run jest integration/mysql -- --detectOpenHandles --maxConcurrency=1 || true; timeout 3m pnpm run jest integration/mariadb -- --detectOpenHandles --maxConcurrency=1 || true; + +# Client Tests + +cd ../client + +export TEST_MYSQL_ISOLATED_URI="${TEST_MYSQL_URI}"; + +pnpm run test -- --testPathIgnorePatterns src/__tests__/types/types.test.ts || true; From c8efa28556c1dced0acf24426abd2c3111e46bb7 Mon Sep 17 00:00:00 2001 From: Jan Piotrowski Date: Thu, 11 Mar 2021 22:43:12 +0100 Subject: [PATCH 4/9] Update run --- frameworks/javascript/prisma/run | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/javascript/prisma/run b/frameworks/javascript/prisma/run index 91f007a8..60c54d6d 100755 --- a/frameworks/javascript/prisma/run +++ b/frameworks/javascript/prisma/run @@ -16,4 +16,4 @@ cd ../client export TEST_MYSQL_ISOLATED_URI="${TEST_MYSQL_URI}"; -pnpm run test -- --testPathIgnorePatterns src/__tests__/types/types.test.ts || true; +pnpm run test -- --testPathIgnorePatterns src/__tests__/types/types.test.ts -- --detectOpenHandles || true; From 4c2b192bb0fbb6e671270e13d5875475ebe54290 Mon Sep 17 00:00:00 2001 From: Jan Piotrowski Date: Thu, 11 Mar 2021 23:31:23 +0100 Subject: [PATCH 5/9] Update run --- frameworks/javascript/prisma/run | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/javascript/prisma/run b/frameworks/javascript/prisma/run index 60c54d6d..275bd408 100755 --- a/frameworks/javascript/prisma/run +++ b/frameworks/javascript/prisma/run @@ -16,4 +16,4 @@ cd ../client export TEST_MYSQL_ISOLATED_URI="${TEST_MYSQL_URI}"; -pnpm run test -- --testPathIgnorePatterns src/__tests__/types/types.test.ts -- --detectOpenHandles || true; +pnpm run test -- --detectOpenHandles --testPathIgnorePatterns src/__tests__/types/types.test.ts || true; From 9b85a1bc4075c9ef12f2d30c1d96c33dad4c4c01 Mon Sep 17 00:00:00 2001 From: Jan Piotrowski Date: Thu, 11 Mar 2021 23:57:44 +0100 Subject: [PATCH 6/9] Update run --- frameworks/javascript/prisma/run | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/javascript/prisma/run b/frameworks/javascript/prisma/run index 275bd408..8c43d055 100755 --- a/frameworks/javascript/prisma/run +++ b/frameworks/javascript/prisma/run @@ -16,4 +16,4 @@ cd ../client export TEST_MYSQL_ISOLATED_URI="${TEST_MYSQL_URI}"; -pnpm run test -- --detectOpenHandles --testPathIgnorePatterns src/__tests__/types/types.test.ts || true; +timeout 10m pnpm run test -- --detectOpenHandles --testPathIgnorePatterns src/__tests__/types/types.test.ts || true; From eae048cb700d1fdc502bb59d121ac5cb2d8efb02 Mon Sep 17 00:00:00 2001 From: Jan Piotrowski Date: Fri, 12 Mar 2021 02:21:22 +0100 Subject: [PATCH 7/9] Update test.yml --- .github/workflows/test.yml | 34 ++-------------------------------- 1 file changed, 2 insertions(+), 32 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b4d69da7..554be419 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -60,8 +60,8 @@ jobs: - 33807:33807 env: PORT: 33804 - KEYSPACES: test - NUM_SHARDS: "1" + KEYSPACES: test,tests + NUM_SHARDS: "2" MYSQL_BIND_HOST: "0.0.0.0" options: --health-cmd="mysqladmin ping -h127.0.0.1 -P33807" --health-interval=5s --health-timeout=2s --health-retries=5 @@ -79,36 +79,6 @@ jobs: name: Build changed tests run: ./run.sh build_image "${{ matrix.framework }}" - - id: run-mysql57 - name: Run changed tests against upstream MySQL 5.7 - run: ./run.sh run_test "${{ matrix.framework }}" - env: - VT_USERNAME: root - VT_PASSWORD: root - VT_DATABASE: test - VT_HOST: 127.0.0.1 - VT_PORT: 33576 - - - id: run-mysql80 - name: Run changed tests against upstream MySQL 8.0 - run: ./run.sh run_test "${{ matrix.framework }}" - env: - VT_USERNAME: root - VT_PASSWORD: root - VT_DATABASE: test - VT_HOST: 127.0.0.1 - VT_PORT: 33578 - - - id: run-vttestserver57 - name: Run changed tests against vttestserver:mysql57 - run: ./run.sh run_test "${{ matrix.framework }}" - env: - VT_USERNAME: test - VT_PASSWORD: test - VT_DATABASE: test - VT_HOST: 127.0.0.1 - VT_PORT: 33577 - - id: run-vttestserver80 name: Run changed tests against vttestserver:mysql80 run: ./run.sh run_test "${{ matrix.framework }}" From 71a90bcab14889714720ab8f1c1c6a48374ca78d Mon Sep 17 00:00:00 2001 From: Jan Piotrowski Date: Fri, 12 Mar 2021 02:30:29 +0100 Subject: [PATCH 8/9] Update test.yml --- .github/workflows/test.yml | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 554be419..7ddcf513 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -28,32 +28,6 @@ jobs: needs: determine_frameworks services: - mysql57: - image: mysql:5.7 - ports: - - 33576:3306 - env: - MYSQL_DATABASE: test - MYSQL_ROOT_PASSWORD: root - options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=5 - mysql80: - image: mysql:8.0 - ports: - - 33578:3306 - env: - MYSQL_DATABASE: test - MYSQL_ROOT_PASSWORD: root - options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=5 - vttestserver57: - image: vitess/vttestserver:mysql57 - ports: - - 33577:33577 - env: - PORT: 33574 - KEYSPACES: test - NUM_SHARDS: "1" - MYSQL_BIND_HOST: "0.0.0.0" - options: --health-cmd="mysqladmin ping -h127.0.0.1 -P33577" --health-interval=5s --health-timeout=2s --health-retries=5 vttestserver80: image: vitess/vttestserver:mysql80 ports: @@ -61,7 +35,7 @@ jobs: env: PORT: 33804 KEYSPACES: test,tests - NUM_SHARDS: "2" + NUM_SHARDS: "1,1" MYSQL_BIND_HOST: "0.0.0.0" options: --health-cmd="mysqladmin ping -h127.0.0.1 -P33807" --health-interval=5s --health-timeout=2s --health-retries=5 From ff3845018bcc69f2b4e8355ffb960cae72bc0dd6 Mon Sep 17 00:00:00 2001 From: Jan Piotrowski Date: Fri, 12 Mar 2021 02:59:14 +0100 Subject: [PATCH 9/9] add new hack to get rid of DROP DATABASE --- frameworks/javascript/prisma/hacks.patch | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/frameworks/javascript/prisma/hacks.patch b/frameworks/javascript/prisma/hacks.patch index f46d6e92..d6351e15 100644 --- a/frameworks/javascript/prisma/hacks.patch +++ b/frameworks/javascript/prisma/hacks.patch @@ -93,3 +93,26 @@ index 2a1d7a85..a21f66fe 100644 const credentials = uriToCredentials(connectionString) return { +diff --git a/src/packages/client/src/utils/setupMysql.ts b/src/packages/client/src/utils/setupMysql.ts +index 55b99f0ce..d2b0b3da4 100644 +--- a/src/packages/client/src/utils/setupMysql.ts ++++ b/src/packages/client/src/utils/setupMysql.ts +@@ -44,8 +44,15 @@ export async function tearDownMysql(connectionString: string) { + multipleStatements: true, + }) + +- await db.query(` +- DROP DATABASE IF EXISTS \`${credentials.database}\`; +- `) ++ ++ await db.query("USE " + credentials.database); ++ const foreign_keys = await db.query({rowsAsArray: true, sql: "SELECT DISTINCT TABLE_NAME, CONSTRAINT_NAME FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME IS NOT NULL"}); ++ for(let row of foreign_keys) { ++ await db.query("ALTER TABLE `" + row[0] + "` DROP FOREIGN KEY `" + row[1] + "`"); ++ } ++ const tables = await db.query({rowsAsArray: true, sql: "SHOW TABLES"}); ++ for(let row of tables) { ++ await db.query("DROP TABLE `" + row[0] + "`"); ++ } + await db.end() + }