- Notifications
You must be signed in to change notification settings - Fork277
Description
Is there an existing issue for this?
- I have searched the existing issues
Current Behavior
I am deploying Lowcoder locally using Docker and attempting to connect to a locally running MariaDB database. I've useddocker-compose
to deploy the multi-version of Lowcoder. Concurrently, I've deployed both MariaDB and MySQL database containers usingdocker run
commands.
Upon logging into Lowcoder, I successfully added both MariaDB and MySQL data sources, and connection tests for both were successful. However, when navigating to the design interface, dragging a Form component, and clicking "Generate a Form from one of your Data Sources", the data source dropdownonly displays the MySQL data source, and the MariaDB data source is not present.
This indicates that Lowcoder's form generation feature might not be correctly acquiring or parsing metadata from MariaDB, even though the underlying connection is successful.
Expected Behavior
In Lowcoder's "Generate Form from Data Source" feature, the data source dropdown should display both MariaDB and MySQL data sources. Upon selecting the MariaDB data source, the table/view dropdown should display all available tables and views from the MariaDB database, allowing the user to select and generate a form, similar to how it works with a MySQL database connection.
Actual Behavior:
In Lowcoder's "Generate Form from Data Source" feature, the data source dropdown only displays the MySQL data source, and the MariaDB data source is not present. This means it's not possible to generate forms from the MariaDB database using this feature.
Steps to reproduce
- Deploy Lowcoder:
Deploy Lowcoder's multi-version usingdocker-compose
in an intranet environment. default.env、default-multi.env、override.env
services:#### Start services required for Lowcoder (MongoDB and Redis)##mongodb:image:"mongo:7.0"container_name:mongodbenvironment:MONGO_INITDB_DATABASE:lowcoderMONGO_INITDB_ROOT_USERNAME:lowcoderMONGO_INITDB_ROOT_PASSWORD:secret123volumes: -./lowcoder-stacks/data/mongodb:/data/dbrestart:unless-stoppedhealthcheck:# https://github.com/rodrigobdz/docker-compose-healthchecks?tab=readme-ov-file#mongotest:["CMD","mongosh","--quiet","127.0.0.1/test","--eval","'quit(db.runCommand({ ping: 1 }).ok ? 0 : 2)'",]interval:5stimeout:10sretries:10start_period:40sredis:image:redis:7-alpinecontainer_name:redisrestart:unless-stoppedhealthcheck:# https://stackoverflow.com/a/71504657test:["CMD-SHELL", "redis-cli ping | grep PONG"]interval:1stimeout:3sretries:10#### Start Lowcoder backend services (api-service and node-service)##lowcoder-api-service:image:lowcoderorg/lowcoder-ce-api-service:latestcontainer_name:lowcoder-api-service# Enabled ports to be able to access backend from host# ports:# - "8080:8080"env_file: -path:./default.envrequired:true -path:./default-multi.envrequired:true -path:./override.envrequired:falserestart:unless-stoppeddepends_on:mongodb:condition:service_healthyrestart:trueredis:condition:service_healthyrestart:truevolumes: -./lowcoder-stacks:/lowcoder-stacks -./lowcoder-stacks/assets:/lowcoder/assetshealthcheck:#https://stackoverflow.com/questions/71101967/how-should-i-use-grep-in-docker-compose-healthchecktest:curl -sS http://lowcoder-api-service:8080 | grep -c "Lowcoder API is up and runnig" > /dev/nullinterval:3stimeout:5sretries:10lowcoder-node-service:image:lowcoderorg/lowcoder-ce-node-service:latestcontainer_name:lowcoder-node-service# Enabled ports to be able to access backend from host# ports:# - "6060:6060"env_file: -path:./default.envrequired:true -path:./default-multi.envrequired:true -path:./override.envrequired:falserestart:unless-stoppeddepends_on:lowcoder-api-service:condition:service_healthyrestart:truehealthcheck:#https://stackoverflow.com/questions/71101967/how-should-i-use-grep-in-docker-compose-healthchecktest:curl -sS http://lowcoder-node-service:6060 | grep -c "Lowcoder Node Service is up and running" > /dev/nullinterval:3stimeout:5sretries:10#### Start Lowcoder web frontend##lowcoder-frontend:image:lowcoderorg/lowcoder-ce-frontend:latestcontainer_name:lowcoder-frontendports: -"3000:3000"env_file: -path:./default.envrequired:true -path:./default-multi.envrequired:true -path:./override.envrequired:falserestart:unless-stoppeddepends_on:lowcoder-node-service:condition:service_healthyrestart:truelowcoder-api-service:condition:service_healthyrestart:truevolumes: -./lowcoder-stacks/assets:/lowcoder/assets -./lowcoder-stacks/ssl:/lowcoder-stacks/sslhealthcheck:test:curl --fail http://lowcoder-frontend:3000 || exit 1interval:5sretries:10start_period:10stimeout:10s
Start MariaDB Container:
docker run --name mariadb -p 3306:3306 -e MARIADB_ROOT_PASSWORD=123456 -v mariadb_data:/var/lib/mysql -d mariadb:latest
(Note:
mariadb:latest
was MariaDB 11.x at the time of my testing.)Start MySQL Container (for comparison):
docker run --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -v mysql-data:/var/lib/mysql -d mysql:8.0
Add MariaDB Data Source in Lowcoder:
- Name:
mariadb
- Host:
192.168.20.5
(orhost.docker.internal
if Lowcoder container and MariaDB container are on the same Docker network, and MariaDB container name ismariadb
) - Port:
3306
- Database Name:
mysql
(or your actual database name) - User Name:
root
- Password:
123456
- Click "Test Connection", connection successful.
- Name:
Add MySQL Data Source in Lowcoder (for comparison):
- Name:
192.168.20.5-mysql
- Host:
192.168.20.5
(orhost.docker.internal
if Lowcoder container and MySQL container are on the same Docker network, and MySQL container name ismysql
) - Port:
3307
- Database Name:
mysql
(or your actual database name) - User Name:
root
- Password:
123456
- Click "Test Connection", connection successful.
- Name:
Navigate to Lowcoder's design interface, drag a Form component, and click "Generate a Form from one of your Data Sources":
- Observe the data source dropdown.
Observe the data source dropdown:
- The dropdown only displays the MySQL data source (
192.168.20.5-mysql
). - The MariaDB data source (
mariadb
) is not present in the dropdown.
- The dropdown only displays the MySQL data source (
Switch to the MySQL data source (
192.168.20.5-mysql
):
Environment
- Operating System:
centos 7
- Docker Version:
Docker version 20.10.24, build 297e128
- MariaDB Version:
mariadb:latest
- MySQL Version (for comparison):
mysql:8.0
- Database Connection Method: Lowcoder container connects to MariaDB/MySQL containers running on the host machine, using the host IP
Additional Information
No response
Metadata
Metadata
Assignees
Labels
Type
Projects
Status