From 366ae0d4489bdf93f1e866e505cda09dbb80c295 Mon Sep 17 00:00:00 2001 From: martmull Date: Wed, 13 Dec 2023 14:56:52 +0100 Subject: [PATCH] 2893 add data wrapper for mysql (#2970) * Add mysql_fdw to postgres dockerfile * Name and run detached docker containers * Fix naming --- packages/twenty-docker/Makefile | 8 ++++---- packages/twenty-docker/prod/twenty-postgres/Dockerfile | 9 ++++++++- packages/twenty-server/scripts/setup-db.ts | 5 +++++ 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/packages/twenty-docker/Makefile b/packages/twenty-docker/Makefile index 7898044d7..27992edbe 100644 --- a/packages/twenty-docker/Makefile +++ b/packages/twenty-docker/Makefile @@ -29,25 +29,25 @@ prod-docs-build: @cd ../.. && docker build -f ./packages/twenty-docker/prod/twenty-docs/Dockerfile --tag twenty-docs . && cd - prod-docs-run: - @docker run -p 3000:3000 twenty-docs + @docker run -d -p 3000:3000 --name twenty-docs twenty-docs prod-front-build: @cd ../.. && docker build -f ./packages/twenty-docker/prod/twenty-front/Dockerfile --tag twenty-front . && cd - prod-front-run: - @docker run -p 3000:3000 twenty-front + @docker run -d -p 3000:3000 --name twenty-front twenty-front prod-server-build: @cd ../.. && docker build -f ./packages/twenty-docker/prod/twenty-server/Dockerfile --tag twenty-server . && cd - prod-server-run: - @docker run -p 3000:3000 twenty-server + @docker run -d -p 3000:3000 --name twenty-server twenty-server prod-postgres-build: @cd ../.. && docker build -f ./packages/twenty-docker/prod/twenty-postgres/Dockerfile --tag twenty-postgres . && cd - prod-postgres-run: - @docker run -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres twenty-postgres + @docker run -d -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres --name twenty-postgres twenty-postgres release-front: @cd ../.. && docker buildx build \ diff --git a/packages/twenty-docker/prod/twenty-postgres/Dockerfile b/packages/twenty-docker/prod/twenty-postgres/Dockerfile index 3198d9676..6fae4d10a 100644 --- a/packages/twenty-docker/prod/twenty-postgres/Dockerfile +++ b/packages/twenty-docker/prod/twenty-postgres/Dockerfile @@ -24,7 +24,7 @@ RUN set -eux; \ ;; \ esac; -RUN apt update && apt install curl -y +RUN apt update && apt install build-essential git curl default-libmysqlclient-dev -y # Install precompiled pg_graphql extensions RUN curl -L "https://github.com/supabase/pg_graphql/releases/download/v${PG_GRAPHQL_VERSION}/pg_graphql-v${PG_GRAPHQL_VERSION}-pg${PG_MAIN_VERSION}-${TARGETARCH}-linux-gnu.deb" -o pg_graphql.deb @@ -38,6 +38,13 @@ RUN dpkg --install wrappers.deb RUN cp /usr/share/postgresql/${PG_MAIN_VERSION}/extension/wrappers* /opt/bitnami/postgresql/share/extension/ RUN cp /usr/lib/postgresql/${PG_MAIN_VERSION}/lib/wrappers* /opt/bitnami/postgresql/lib/ +RUN export PATH=/usr/local/pgsql/bin/:$PATH +RUN export PATH=/usr/local/mysql/bin/:$PATH +RUN git clone https://github.com/EnterpriseDB/mysql_fdw.git +WORKDIR mysql_fdw +RUN make USE_PGXS=1 +RUN make USE_PGXS=1 install + COPY ./packages/twenty-docker/prod/twenty-postgres/init.sql /docker-entrypoint-initdb.d/ USER 1001 diff --git a/packages/twenty-server/scripts/setup-db.ts b/packages/twenty-server/scripts/setup-db.ts index 45cbd9af7..bfdf51133 100644 --- a/packages/twenty-server/scripts/setup-db.ts +++ b/packages/twenty-server/scripts/setup-db.ts @@ -37,6 +37,11 @@ connectionSource 'create extension "wrappers"', ); + await performQuery( + 'CREATE EXTENSION IF NOT EXISTS "mysql_fdw"', + 'create extension "mysql_fdw"', + ); + const supabaseWrappers = [ 'airtable', 'bigQuery',