symfony 控制台 make:migration 和 --env 选项不起作用

问题描述 投票:0回答:1

我正在开发我的第一个 symfony (6.3) 项目,并考虑到 TDD。 我创建了一些学说 ORM 实体并不时添加字段。 对于第一次集成测试,我运行了 "symfony console make:migration" 没有 --env="test" 但就像我第一次运行它一样,没问题,sqlite 数据库和所有表被创建了。

当我第二次使用 --env="test" 运行它时,命令返回:

There are no commands defined in the "make" namespace.                                                                                                       
                                                                                                                                                           
You may be looking for a command provided by the "MakerBundle" which is currently not installed. Try running "composer require symfony/maker-bundle --dev". 

我使用“symfony new --webapp --version=6.3 my_project”创建了项目,因此makerbundle位于require-dev部分。

我是新手,所以我在这里遗漏了一些明显的东西。

非常感谢!

symfony doctrine-orm doctrine
1个回答
0
投票

您能否详细说明为什么要为您的测试环境创建数据库架构?您的数据库架构应该因环境而异(

dev
/
prod
/
test
),但是您的数据库连接可以。由于
MakerBundle
位于
require-dev
部分,因此它应该仅在
dev
环境中运行/可用。尽管错误消息有些模糊(
MakerBundle
环境中不存在
test
),这是主要原因。您还可以在
/config/bundles.php
中确认这一点,其中包含以下代码:

Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],

'dev' => true
部分确认
MakerBundle
仅在
dev
环境中可用。

TLDR; 您应该仅通过运行

dev
symfony console make:migration
环境中进行迁移(无需添加 --env=test)。

© www.soinside.com 2019 - 2024. All rights reserved.