【问题标题】:Overriding DDEV's default db settings in TYPO3 to point to an external Database覆盖 TYPO3 中 DDEV 的默认数据库设置以指向外部数据库
【发布时间】:2021-09-15 20:52:04
【问题描述】:

我们希望在团队中为我们的项目使用相同的(暂存)数据库。所以我们可以用DDEV在我们的本地机器上开发,并且可以共享数据库,所以我们不必导出数据库并在其他团队成员的机器上导入它。 DDEV 项目也存储在 GIT 存储库中,因此每个团队成员都可以将 DDEV 容器的最新设置拉取到他们的本地机器上。

如果我修改 AdditionalConfiguration.php,我可以访问外部数据库,但如果 DDEV 容器重新启动,那么它会覆盖 AdditionalConfiguration.php 文件。我还没有找到在 ddev contaienr 配置中设置数据库连接的方法,因此当容器启动时,它会在 AdditionalConfiguration.php 中设置正确的数据库连接(外部数据库)。

有人知道如何在 DDEV 容器中设置自定义数据库连接吗?

感谢您的帮助。

我的环境和 TYPO3 版本:

  • TYPO3 v10.4.20

  • Windows 10 (WSL)

  • Docker 桌面 3.5.2

  • DDEV-本地版v1.17.7

  • 架构 amd64

  • db drud/ddev-dbserver-mariadb-10.3:v1.17.7

  • dba phpmyadmin:5

  • ddev-ssh-agent drud/ddev-ssh-agent:v1.17.0

  • 码头工人 20.10.7

  • docker-compose 1.29.2

  • 操作系统 linux

  • 路由器 drud/ddev-router:v1.17.6

  • web drud/ddev-webserver:v1.17.7

【问题讨论】:

    标签: docker typo3 ddev


    【解决方案1】:

    正如兰迪·费伊所说,有可能。我会避免使用共享数据库或开发实例。

    假设团队成员 A 使用一些 db 表创建了一个新扩展,并花了一些时间输入测试数据。

    然后团队成员 B 运行数据库架构升级 f 以他为例,他可能会破坏很多工作。

    还有很多类似的情况,本地配置和数据库齐头并进。

    我们的团队建立了以下流程: 代码从 dev 运行到 prod。 数据从产品流向开发。

    因此,一个脚本会创建一个夜间数据库和文件管理员备份。然后创建开发者快照(通过清理敏感数据和缓存数据)

    此开发转储放在 SFTP 服务器上。

    然后每晚将最新的转储导入预生产 每周进行一次质量检查(因此如果需要创建新页面等记录,我们有一周的时间让 QA 团队接受更改)

    根据我们的 ddev 的需求。我认为实际上我们开发人员每 1 或 2 个月更新一次数据库。因为大多数内容更改与我们开发人员无关。

    我们提供了一个客户 ddev 脚本,用于下载并导入最新的转储。

    【讨论】:

    • 这是正确的。本地发展的整个理念是,你在工作时只影响你自己的东西。因此,只需按预期使用 ddev,让每个人都拥有自己的数据库。 (在某些情况下,外部数据库可能对主数据库以外的其他数据库有用,例如具有只读数据的大型数据库。)
    • randy fay 解释的解决方案正是我所寻找的。但我完全同意你的看法,这不是开发扩展的最佳方式。我们目前将这种方法用于前端集成,当您只需添加一次演示内容时,它非常有用。我会调查你的解决方案。是否有文档或示例如何通过 ssh/ftp 导入数据库?
    【解决方案2】:

    在 ddev 中有很多方法可以管理你的设置文件,你可以告诉 ddev 不要管理你的设置文件。

    1. 在您的项目 config.yaml 中使用 disable_settings_management: true。然后你和你自己负责设置文件。
    2. 接管设置文件。在这种情况下,这将是 AdditionalConfiguration.php。您只需从中删除 #ddev-generated 并将其签入或其他。那么 ddev 就不会碰它了。

    有关更多详细信息和细微差别,请参阅有关此主题的文档,https://ddev.readthedocs.io/en/latest/users/topics/settings_files/

    我认为您也可以在添加/执行 AdditionalSettings.php 之后覆盖 TYPO3 设置中的设置

    【讨论】:

    • 这是我一直在寻找的,尽管 wolffc 指出它有一些缺点,我知道 DDEV 的最大优势在于您拥有自己的独立环境,顺便说一句,我绝对喜欢开发。我们将这种方法用于前端集成。
    猜你喜欢
    • 2017-06-12
    • 2010-09-25
    • 2021-11-19
    • 2017-11-13
    • 1970-01-01
    • 2014-12-15
    • 2022-01-04
    • 2016-03-04
    • 2012-10-21
    相关资源
    最近更新 更多