diff --git a/.github/workflows/dialect-mariadb.yml b/.github/workflows/dialect-mariadb.yml index b75a7e7..d68c350 100644 --- a/.github/workflows/dialect-mariadb.yml +++ b/.github/workflows/dialect-mariadb.yml @@ -30,7 +30,7 @@ jobs: env: UV_PYTHON: ${{ matrix.python_version }} - DATABASE_URL: ${{ matrix.drivername }}://root:password@localhost:3306/example + DATABASE_URL: ${{ matrix.drivername }}://root:password@127.0.0.1:3306/example steps: - name: Checkout code @@ -47,6 +47,9 @@ jobs: enable-cache: true cache-suffix: mariadb-${{ matrix.python_version }} + - name: Install pre-requisite packages + run: sudo apt-get update && sudo apt-get install -y libmariadb-dev + - name: Run example project tests working-directory: example_project run: uv run --extra mariadb pytest diff --git a/.github/workflows/dialect-mysql.yml b/.github/workflows/dialect-mysql.yml index f73eb7e..9cf3efa 100644 --- a/.github/workflows/dialect-mysql.yml +++ b/.github/workflows/dialect-mysql.yml @@ -10,7 +10,7 @@ jobs: strategy: matrix: python_version: ["3.10", "3.11", "3.12", "3.13", "3.14"] - mysql_version: ["8.0", "8.4", "9.0"] + mysql_version: ["8.0", "8.4", "9.7"] drivername: ["mysql+mysqldb", "mysql+pymysql", "mysql+mysqlconnector", "mysql+cymysql"] services: @@ -21,16 +21,10 @@ jobs: MYSQL_ROOT_PASSWORD: password ports: - 3306:3306 - options: >- - --health-cmd "healthcheck.sh --connect --innodb_initialized" - --health-start-period 10s - --health-interval 10s - --health-timeout 5s - --health-retries 3 env: UV_PYTHON: ${{ matrix.python_version }} - DATABASE_URL: ${{ matrix.drivername }}://root:password@localhost:3306/example + DATABASE_URL: ${{ matrix.drivername }}://root:password@127.0.0.1:3306/example steps: - name: Checkout code @@ -45,8 +39,11 @@ jobs: uses: astral-sh/setup-uv@v8.2.0 with: enable-cache: true - cache-suffix: mariadb-${{ matrix.python_version }} + cache-suffix: mysql-${{ matrix.python_version }} + + - name: Install pre-requisite packages + run: sudo apt-get update && sudo apt-get install -y libmysqlclient-dev - name: Run example project tests working-directory: example_project - run: uv run --extra mariadb pytest + run: uv run --extra mysql pytest diff --git a/.github/workflows/test-dialects.yml b/.github/workflows/test-dialects.yml index 6b0fa92..9d06b9b 100644 --- a/.github/workflows/test-dialects.yml +++ b/.github/workflows/test-dialects.yml @@ -22,21 +22,21 @@ on: jobs: dialect-sqlite: - if: ${{ inputs.sqlite == 'true' }} + if: ${{ inputs.sqlite }} uses: ./.github/workflows/dialect-sqlite.yml secrets: inherit dialect-postgresql: - if: ${{ inputs.postgresql == 'true' }} + if: ${{ inputs.postgresql }} uses: ./.github/workflows/dialect-postgresql.yml secrets: inherit dialect-mariadb: - if: ${{ inputs.mariadb == 'true' }} + if: ${{ inputs.mariadb }} uses: ./.github/workflows/dialect-mariadb.yml secrets: inherit dialect-mysql: - if: ${{ inputs.mysql == 'true' }} + if: ${{ inputs.mysql }} uses: ./.github/workflows/dialect-mysql.yml secrets: inherit diff --git a/example_project/pyproject.toml b/example_project/pyproject.toml index 35287a0..be899a0 100644 --- a/example_project/pyproject.toml +++ b/example_project/pyproject.toml @@ -25,6 +25,11 @@ sqlite = [ mariadb = [ "cymysql>=1.1.1", "mariadb>=1.1.14", + "mysqlclient>=2.2.8", + "pymysql>=1.2.0", +] +mysql = [ + "cymysql>=1.1.1", "mysql-connector-python>=9.7.0", "mysqlclient>=2.2.8", "pymysql>=1.2.0", diff --git a/example_project/uv.lock b/example_project/uv.lock index 53ab1c7..db260a5 100644 --- a/example_project/uv.lock +++ b/example_project/uv.lock @@ -216,6 +216,12 @@ mariadb = [ { name = "mysqlclient" }, { name = "pymysql" }, ] +mysql = [ + { name = "cymysql" }, + { name = "mysql-connector-python" }, + { name = "mysqlclient" }, + { name = "pymysql" }, +] postgres = [ { name = "pg8000" }, { name = "psycopg" }, @@ -239,19 +245,23 @@ dev = [ requires-dist = [ { name = "alembic", specifier = ">=1.18.4" }, { name = "cymysql", marker = "extra == 'mariadb'", specifier = ">=1.1.1" }, + { name = "cymysql", marker = "extra == 'mysql'", specifier = ">=1.1.1" }, { name = "mariadb", marker = "extra == 'mariadb'", specifier = ">=1.1.14" }, { name = "mysql-connector-python", marker = "extra == 'mariadb'", specifier = ">=9.7.0" }, + { name = "mysql-connector-python", marker = "extra == 'mysql'", specifier = ">=9.7.0" }, { name = "mysqlclient", marker = "extra == 'mariadb'", specifier = ">=2.2.8" }, + { name = "mysqlclient", marker = "extra == 'mysql'", specifier = ">=2.2.8" }, { name = "pg8000", marker = "extra == 'postgres'", specifier = ">=1.31.5" }, { name = "psycopg", marker = "extra == 'postgres'", specifier = ">=3.3.4" }, { name = "psycopg2", marker = "extra == 'postgres'", specifier = ">=2.9.12" }, { name = "psycopg2cffi", marker = "extra == 'postgres'", specifier = ">=2.9.0" }, { name = "pydantic-settings", specifier = ">=2.14.1" }, { name = "pymysql", marker = "extra == 'mariadb'", specifier = ">=1.2.0" }, + { name = "pymysql", marker = "extra == 'mysql'", specifier = ">=1.2.0" }, { name = "sqlalchemy", specifier = ">=2.0.41" }, { name = "sqlcipher3", marker = "extra == 'sqlite'", specifier = ">=0.6.2" }, ] -provides-extras = ["postgres", "sqlite", "mariadb"] +provides-extras = ["postgres", "sqlite", "mariadb", "mysql"] [package.metadata.requires-dev] dev = [