Adding legacy postgres option.
This commit is contained in:
parent
4b75e3d1dc
commit
322dc2e5a6
|
@ -1,5 +1,4 @@
|
|||
import { Datasource, FieldType, Table } from "@budibase/types"
|
||||
import _ from "lodash"
|
||||
import { generator } from "@budibase/backend-core/tests"
|
||||
import {
|
||||
DatabaseName,
|
||||
|
@ -8,7 +7,9 @@ import {
|
|||
} from "../integrations/tests/utils"
|
||||
import { Knex } from "knex"
|
||||
|
||||
const mainDescriptions = datasourceDescribe({ only: [DatabaseName.POSTGRES] })
|
||||
const mainDescriptions = datasourceDescribe({
|
||||
only: [DatabaseName.POSTGRES, DatabaseName.POSTGRES_LEGACY],
|
||||
})
|
||||
|
||||
if (mainDescriptions.length) {
|
||||
describe.each(mainDescriptions)(
|
||||
|
|
|
@ -9,5 +9,6 @@ dotenv.config({
|
|||
export const MSSQL_IMAGE = `mcr.microsoft.com/mssql/server@${process.env.MSSQL_SHA}`
|
||||
export const MYSQL_IMAGE = `mysql@${process.env.MYSQL_SHA}`
|
||||
export const POSTGRES_IMAGE = `postgres@${process.env.POSTGRES_SHA}`
|
||||
export const POSTGRES_LEGACY_IMAGE = `postgres:9.5.25`
|
||||
export const MONGODB_IMAGE = `mongo@${process.env.MONGODB_SHA}`
|
||||
export const MARIADB_IMAGE = `mariadb@${process.env.MARIADB_SHA}`
|
||||
|
|
|
@ -9,6 +9,7 @@ import * as oracle from "./oracle"
|
|||
import { testContainerUtils } from "@budibase/backend-core/tests"
|
||||
import { Knex } from "knex"
|
||||
import TestConfiguration from "../../../tests/utilities/TestConfiguration"
|
||||
import { getLegacyDatasource } from "./postgres"
|
||||
|
||||
export type DatasourceProvider = () => Promise<Datasource | undefined>
|
||||
|
||||
|
@ -16,6 +17,7 @@ export const { startContainer } = testContainerUtils
|
|||
|
||||
export enum DatabaseName {
|
||||
POSTGRES = "postgres",
|
||||
POSTGRES_LEGACY = "postgres_legacy",
|
||||
MONGODB = "mongodb",
|
||||
MYSQL = "mysql",
|
||||
SQL_SERVER = "mssql",
|
||||
|
@ -26,6 +28,7 @@ export enum DatabaseName {
|
|||
|
||||
const providers: Record<DatabaseName, DatasourceProvider> = {
|
||||
[DatabaseName.POSTGRES]: postgres.getDatasource,
|
||||
[DatabaseName.POSTGRES_LEGACY]: postgres.getLegacyDatasource,
|
||||
[DatabaseName.MONGODB]: mongodb.getDatasource,
|
||||
[DatabaseName.MYSQL]: mysql.getDatasource,
|
||||
[DatabaseName.SQL_SERVER]: mssql.getDatasource,
|
||||
|
|
|
@ -3,14 +3,14 @@ import { GenericContainer, Wait } from "testcontainers"
|
|||
import { generator, testContainerUtils } from "@budibase/backend-core/tests"
|
||||
import { startContainer } from "."
|
||||
import knex, { Knex } from "knex"
|
||||
import { POSTGRES_IMAGE } from "./images"
|
||||
import { POSTGRES_IMAGE, POSTGRES_LEGACY_IMAGE } from "./images"
|
||||
|
||||
let ports: Promise<testContainerUtils.Port[]>
|
||||
|
||||
export async function getDatasource(): Promise<Datasource> {
|
||||
async function datasourceWithImage(image: string): Promise<Datasource> {
|
||||
if (!ports) {
|
||||
ports = startContainer(
|
||||
new GenericContainer(POSTGRES_IMAGE)
|
||||
new GenericContainer(image)
|
||||
.withExposedPorts(5432)
|
||||
.withEnvironment({ POSTGRES_PASSWORD: "password" })
|
||||
.withWaitStrategy(
|
||||
|
@ -51,6 +51,14 @@ export async function getDatasource(): Promise<Datasource> {
|
|||
return datasource
|
||||
}
|
||||
|
||||
export async function getDatasource(): Promise<Datasource> {
|
||||
return datasourceWithImage(POSTGRES_IMAGE)
|
||||
}
|
||||
|
||||
export async function getLegacyDatasource(): Promise<Datasource> {
|
||||
return datasourceWithImage(POSTGRES_LEGACY_IMAGE)
|
||||
}
|
||||
|
||||
export async function knexClient(
|
||||
ds: Datasource,
|
||||
opts?: Knex.Config
|
||||
|
|
Loading…
Reference in New Issue