The application generates a dynamic and secure MYSQL user with rights only on its own database which is created at the same time.
The application does not have a front template. There are only entities, listener, and a tenant build service.
See .env
file, there are environment variables for the tenants build service (TENANT_DATABASE_HOST, etc...)
docker-compose up -d
docker exec -i sf5multitenancy_phpfpm bash -c "composer install"
docker exec -i sf5multitenancy_phpfpm bash -c "php bin/console doctrine:schema:update --force"
docker exec -i sf5multitenancy_phpfpm bash -c "php bin/console app:create-tenant TENANT_NAME_HERE"
docker exec -i sf5multitenancy_phpfpm bash -c "php bin/console messenger:consume async_priority_high -vv"
FYI : Tenant Name is Unique
FYI2 : If you don't wan't Symfony Messenger for async creation, in config/packages/messenger.yaml
, comment on line 13
exemple:
docker exec -i sf5multitenancy_phpfpm bash -c "php bin/console doctrine:schema:update --force tenant=TENANT_ID_HERE"
You can look databases here : http://localhost:9002/?server=mariadb&username=root