【问题标题】:How to start a Symfony server with environment variables from .env.test?如何使用 .env.test 中的环境变量启动 Symfony 服务器?
【发布时间】:2020-03-25 17:38:29
【问题描述】:

有没有什么方法可以从.env.test 等其他环境而不是.env 等其他环境中使用DATABASE_URL 等环境变量启动内置服务器?

我想使用不同的数据库进行开发和测试,但 Symfony 服务器总是开始使用开发。

我已经尝试过类似的东西:

APP_ENV=test bin/console server:start

我正在使用 symfony4

【问题讨论】:

  • bin/console --env=test server:start

标签: php symfony symfony4


【解决方案1】:

当您运行/bin/console 时,您将看到很少有此命令的帮助,您应该会看到以下标志:

-e, --env=ENV         The Environment name. [default: "dev"]

这意味着你可以简单地运行bin/console --env=test server:start

【讨论】:

  • 这行得通!现在应用程序正在使用 .env.test 文件中提供的变量,但由于某种原因,当我在测试环境中启动应用程序时,某些功能停止工作。例如登录失败,没有任何错误消息。
  • 您必须知道通常有三个环境(test/dev/prod)并且每个环境加载不同的 yaml 文件 - 所以可能有些服务没有注册?看看 var/test.log,应该有一些有趣的东西。
  • 谢谢你一定会这样做
【解决方案2】:

您需要更改 .env 文件以将环境从 dev 更改为 prod,所以我认为最好的方法是制作两个文件:

第一个用于本地的具有 dev 配置的,另一个用于 prod 服务器中的具有另一种配置的。

你也可以像这样在 config/packages/doctrine.yaml 中配置你的数据库:

doctrine:
    dbal:
        # configure these for your database server
        dbname:               ****
        host:                 127.0.0.1
        port:                 8889
        user:                 ****
        password:             ****

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-19
    • 1970-01-01
    • 2015-10-04
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 2018-01-04
    相关资源
    最近更新 更多