symfony/recipes

`symfony/webapp-pack` defines a `MESSENGER_TRANSPORT_DSN`

lyrixx opened this issue · 6 comments

"MESSENGER_TRANSPORT_DSN": "doctrine://default?auto_setup=0"

First, this is a bit weird, but moreover this conflicts with symfony/messenger.

symfony new --webapp generates the following files

# In all environments, the following files are loaded if they exist,
# the latter taking precedence over the former:
#
#  * .env                contains default values for the environment variables needed by the app
#  * .env.local          uncommitted file with local overrides
#  * .env.$APP_ENV       committed environment-specific defaults
#  * .env.$APP_ENV.local uncommitted environment-specific overrides
#
# Real environment variables win over .env files.
#
# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES.
# https://symfony.com/doc/current/configuration/secrets.html
#
# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2).
# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration

###> symfony/framework-bundle ###
APP_ENV=dev
APP_SECRET=adea3499ae133cf82f1599794754e256
###< symfony/framework-bundle ###

###> symfony/webapp-pack ###
MESSENGER_TRANSPORT_DSN=doctrine://default?auto_setup=0
###< symfony/webapp-pack ###

###> doctrine/doctrine-bundle ###
# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
#
# DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db"
# DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8&charset=utf8mb4"
DATABASE_URL="postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=14&charset=utf8"
###< doctrine/doctrine-bundle ###

###> symfony/messenger ###
# Choose one of the transports below
# MESSENGER_TRANSPORT_DSN=doctrine://default
# MESSENGER_TRANSPORT_DSN=amqp://guest:guest@localhost:5672/%2f/messages
# MESSENGER_TRANSPORT_DSN=redis://localhost:6379/messages
###< symfony/messenger ###

###> symfony/mailer ###
# MAILER_DSN=null://null
###< symfony/mailer ###

As you can see, there is two sections where MESSENGER_TRANSPORT_DSN is defined.

Finally, the version uncommented is in symfony/webapp-pack.

Brother do you have any solution ?

Drop the line in webpack, and un-comment the one in messenger section

friendly ping @weaverryan

Dropping the line in the recipe for webapp-pack would break the out-of-the-box experience of the webapp pack (it should provide a working setup using PostgreSQL)

And Uncommenting in messenger section would break first-installs that don't use messenger.

I don't see the solution for now. Maybe the issue is small enough that this is not worth solving?

I'm not sure to understand. We could remove the section in the webapp pack and move this line to the messenger component:

>/tmp/test(main *) git di
diff --git a/.env b/.env
index 29ca80f..10993dc 100644
--- a/.env
+++ b/.env
@@ -19,10 +19,6 @@ APP_ENV=dev
 APP_SECRET=9858cfdb8300bcb8913b80391c7d566f
 ###< symfony/framework-bundle ###
 
-###> symfony/webapp-pack ###
-MESSENGER_TRANSPORT_DSN=doctrine://default?auto_setup=0
-###< symfony/webapp-pack ###
-
 ###> doctrine/doctrine-bundle ###
 # Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/confi>
 # IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
@@ -37,6 +33,7 @@ DATABASE_URL="postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=15&ch
 # MESSENGER_TRANSPORT_DSN=doctrine://default
 # MESSENGER_TRANSPORT_DSN=amqp://guest:guest@localhost:5672/%2f/messages
 # MESSENGER_TRANSPORT_DSN=redis://localhost:6379/messages
+MESSENGER_TRANSPORT_DSN=doctrine://default?auto_setup=0
 ###< symfony/messenger ###
 

And Uncommenting in messenger section would break first-installs that don't use messenger.

The line in web-app pack il already uncommented, and it breaks nothing

🤔 can you send a PR?