Quick fix for development machines, when running Budibase development stack on systems that are not oracle compatiable it would fail to start due to the lack of dependency.

This commit is contained in:
mike12345567 2022-09-30 15:19:34 +01:00
parent 0f66af7556
commit 476bb79c29
2 changed files with 19 additions and 6 deletions

View File

@ -57,7 +57,11 @@ const INTEGRATIONS: { [key: string]: any } = {
} }
// optionally add oracle integration if the oracle binary can be installed // optionally add oracle integration if the oracle binary can be installed
if (process.arch && !process.arch.startsWith("arm")) { if (
process.arch &&
!process.arch.startsWith("arm") &&
oracle.integration.isInstalled()
) {
DEFINITIONS[SourceName.ORACLE] = oracle.schema DEFINITIONS[SourceName.ORACLE] = oracle.schema
INTEGRATIONS[SourceName.ORACLE] = oracle.integration INTEGRATIONS[SourceName.ORACLE] = oracle.integration
} }

View File

@ -15,17 +15,22 @@ import {
getSqlQuery, getSqlQuery,
SqlClient, SqlClient,
} from "./utils" } from "./utils"
import oracledb, { import Sql from "./base/sql"
import { FieldTypes } from "../constants"
import {
BindParameters, BindParameters,
Connection, Connection,
ConnectionAttributes, ConnectionAttributes,
ExecuteOptions, ExecuteOptions,
Result, Result,
} from "oracledb" } from "oracledb"
import Sql from "./base/sql" let oracledb: any
import { FieldTypes } from "../constants" try {
oracledb = require("oracledb")
oracledb.outFormat = oracledb.OUT_FORMAT_OBJECT oracledb.outFormat = oracledb.OUT_FORMAT_OBJECT
} catch (err) {
console.log("ORACLEDB is not installed")
}
interface OracleConfig { interface OracleConfig {
host: string host: string
@ -183,6 +188,10 @@ class OracleIntegration extends Sql implements DatasourcePlus {
return parts.join(" || ") return parts.join(" || ")
} }
static isInstalled() {
return oracledb != null
}
/** /**
* Map the flat tabular columns and constraints data into a nested object * Map the flat tabular columns and constraints data into a nested object
*/ */