diff --git a/.github/workflows/NetCoreTests.yml b/.github/workflows/NetCoreTests.yml index 8c91affc4cc..6537008b100 100644 --- a/.github/workflows/NetCoreTests.yml +++ b/.github/workflows/NetCoreTests.yml @@ -50,7 +50,7 @@ jobs: - name: Set up Oracle if: matrix.DB == 'Oracle' run: | - docker run -d -p 1521:1521 -e APP_USER=nhibernate -e APP_USER_PASSWORD=nhibernate -e ORACLE_PASSWORD=nhibernate gvenzl/oracle-xe:18-slim + docker run -d -p 1521:1521 -e APP_USER=nhibernate -e APP_USER_PASSWORD=nhibernate -e ORACLE_PASSWORD=nhibernate gvenzl/oracle-xe:21-slim - uses: actions/checkout@v3 - name: Setup .NET diff --git a/lib/teamcity/oracle/oracle_installation.txt b/lib/teamcity/oracle/oracle_installation.txt index a2f2aa8dda5..1f4244a76b5 100644 --- a/lib/teamcity/oracle/oracle_installation.txt +++ b/lib/teamcity/oracle/oracle_installation.txt @@ -1,8 +1,6 @@ Installation steps for Oracle for NH TeamCity: -1. Download Oracle Database 12c from https://oracle.com/. Please make sure you comply with it's license. - 12.2 will fail some tests (mainly NH-1171) due to a bug with comments in queries, see - https://stackoverflow.com/q/7493028/1178314. So take care of installing 12.1 instead. +1. Download Oracle Database 21c Express Edition from https://oracle.com/. Please make sure you comply with it's license. (Note: you'll need to sign-up for a (free) Oracle account to download) 2. Run the installer ... @@ -37,6 +35,7 @@ Resolve conflict between Oracle client and with the managed driver NuGet package 1. Within an elevated command line, navigate to {Oracle home}\product\{version}\{dbhome}\ODP.NET\managed\x64 2. Run OraProvCfg /action:ungac /providerPath:Oracle.ManagedDataAccess + This is needed because NHibernate test uses the managed driver NuGet package, but Oracle client installation (excepted 12.2 and higher) put in the GAC a conflicting version of the assembly. This conflicting version needs to be removed from the GAC. Read more on https://stackoverflow.com/a/35176586/1178314. @@ -46,6 +45,7 @@ Adjust the connection string for the tests: The tests involve creating and dropping many tables, sometimes with the same names but different data types. This does not play well with Oracle meta data pooling, which needs to be disabled. Add into your ODP.NET connection string: + Metadata Pooling=false;Self Tuning=false; Please note that some tests are dependent on the machine locales, and may fail if they are not English.