Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 条令-如何初始化DB值_Symfony_Doctrine Orm_Doctrine_Database Migration_Symfony5 - Fatal编程技术网

Symfony 条令-如何初始化DB值

Symfony 条令-如何初始化DB值,symfony,doctrine-orm,doctrine,database-migration,symfony5,Symfony,Doctrine Orm,Doctrine,Database Migration,Symfony5,我在Symfony 5.0应用程序中使用原则2.7.0。 我使用ORM注释在实体中定义DB表。 我用Symfony maker创建了一个迁移,如下所示 php bin/console make:migration 然后,我使用 php bin/console doctrine:migrations:migrate 这将产生一个很好的新DB 现在,我想知道是否可以为带有注释的表定义基础数据。 我的意思不是为属性设置默认值,而是向DB始终需要的表中添加条目 所以基本上我也希望迁移将条目插入数据库

我在Symfony 5.0应用程序中使用原则2.7.0。 我使用ORM注释在实体中定义DB表。 我用Symfony maker创建了一个迁移,如下所示

php bin/console make:migration
然后,我使用

php bin/console doctrine:migrations:migrate
这将产生一个很好的新DB

现在,我想知道是否可以为带有注释的表定义基础数据。 我的意思不是为属性设置默认值,而是向DB始终需要的表中添加条目

所以基本上我也希望迁移将条目插入数据库。
这可能吗?

应用程序像查找表一样运行所需的数据实际上应该是迁移的一部分。您还应该为该数据提供适当的回滚过程,以保持迁移向后兼容

但是,您应该避免在这些迁移中使用条令,因为稍后对实体映射等的更改将破坏以前的所有迁移


从技术上讲,您可以使用fixture来加载此数据。虽然默认情况下,除非指定了标志,否则fixture会截断整个数据库,使其不适合这种操作,因为不可能使用此选项删除数据集。

我不这样认为,您可以定义默认值和其他db内容,但一些基本数据不能。您可以使用夹具插入虚拟数据是的,但夹具不用于测试吗?就像你说的,这是虚拟数据。不知道这是否也可以(或应该)用于基础数据的创建……这个捆绑包不应该包含在产品环境中,但为什么不包括数据。您可以定义正确的数据而不是虚拟数据。您知道如何告诉FixturesBundle使用my DEV DB设置而不是测试设置吗?我有“.env”和“.env.test”-Fixtures使用后者,但应该使用“.env”设置…当您注册捆绑包时,您应该定义环境您可以推荐任何适合Symfony原则注释声明和后续迁移的工作流/工具/工具链,包括数据(如查找表)?由于迁移需要独立于您的代码,恐怕没有太多的库可以帮助您生成数据集。为了确保兼容性,迁移是相当静态的。但是,对于MySQL,您可以使用DBMS,例如MySQL工作台,至少为您生成语句。谢谢。我配置了fixtures包来完成这项工作。我知道固定装置总是更新整个数据库。在我的场景中,这没关系。所以我接受你的回答。