Get a daily random issue suggestion from any GitHub repository
Introduce a new Oracle Database node in n8n that provides core SQL operations, including:
Special thanks to the earlier contribution, which this work builds upon.
<!-- Describe what the PR does and how to test. Photos and videos are recommended. --> <img width="1495" height="849" alt="ExecuteOp" src="https://github.com/user-attachments/assets/7209171f-2526-4b77-8be9-3a2f210d2717" /> <img width="1493" height="796" alt="InsertOp" src="https://github.com/user-attachments/assets/b788464e-bd7b-409a-bf00-d5eec60de503" /> <img width="416" height="772" alt="DeleteOp" src="https://github.com/user-attachments/assets/d82c2b11-44a8-4416-bc3f-75a61a991e71" /> <img width="398" height="760" alt="upsertOp" src="https://github.com/user-attachments/assets/7faabe1e-7149-4dec-95b2-3c3bb085e4e4" /> <img width="399" height="753" alt="selectOp" src="https://github.com/user-attachments/assets/97db12c8-e779-4f22-a46a-1a8cbea15881" /> <img width="396" height="754" alt="updateOp" src="https://github.com/user-attachments/assets/acd3affe-404c-4d34-9916-c59ede4c84b7" />Doc PR
<!-- Include links to **Linear ticket** or Github issue or Community forum post. Important in order to close *automatically* and provide context to reviewers. https://linear.app/n8n/issue/ --> <!-- Use "closes #<issue-number>", "fixes #<issue-number>", or "resolves #<issue-number>" to automatically close issues when the PR is merged. -->n8n/packages/nodes-base/nodes/Oracle/Sql/test/operations.test.ts
and n8n/packages/nodes-base/nodes/Oracle/Sql/test/utils.test.ts.
These tests use mocked connections by default.An optional environment variable, ORACLE_INTEG_TESTS
, is supported to run the same tests against a real database. When set to ORACLE_INTEG_TESTS=1
, the tests will connect to the database specified in the environment.
For integration tests, database credentials are read from environment variables (for testing purposes only). In production, sensitive credentials should be retrieved from a secure storage mechanism instead of environment variables.
process.env.ORACLE_USER -> userName
process.env.ORACLE_PASSWORD -> password
process.env.ORACLE_CONNECTSTRING -> connection string
Following is the command I used to test only oracledb. (pnpm run test
will test entire suite)
- cd /Users/sudarshansoma/n8n/fork/n8n/packages/nodes-base/nodes/Oracle/Sql/test/
- npx jest /Users/sudarshansoma/n8n/fork/n8n/packages/nodes-base/nodes/Oracle/Sql/test/*
For running against the DB, I use these steps:
Install latest 23ai DB:
- docker run -d -p 1521:1521 -e ORACLE_PASSWORD=system -e APP_USER=vector -e APP_USER_PASSWORD=vector gvenzl/oracle-free
set Env:
export ORACLE_INTEG_TESTS=1
export ORACLE_USER=vector
export ORACLE_PASSWORD=vector
ORACLE_CONNECTSTRING= localhost:1521/freepdb1
- cd /Users/sudarshansoma/n8n/fork/n8n/packages/nodes-base/nodes/Oracle/Sql/test/
- npx jest /Users/sudarshansoma/n8n/fork/n8n/packages/nodes-base/nodes/Oracle/Sql/test/*
release/backport
(if the PR is an urgent fix that needs to be backported)