php – Symfony 4 / doctrine插入初始数据库数据
发布时间:2020-12-13 16:11:11 所属栏目:PHP教程 来源:网络整理
导读:我正在使用symfony 4.2并寻找一种方法将初始数据插入数据库. 我试图创建的东西类似于初始设置脚本,它可以执行一些sql插入(如fixtures但也适用于生产环境),可以通过控制台命令调用. 我正在考虑在doctrine迁移类中使用postUp函数,但我不想为我设置的每个生产环
我正在使用symfony 4.2并寻找一种方法将初始数据插入数据库.
我试图创建的东西类似于初始设置脚本,它可以执行一些sql插入(如fixtures但也适用于生产环境),可以通过控制台命令调用. 我正在考虑在doctrine迁移类中使用postUp函数,但我不想为我设置的每个生产环境重写此函数. 示例工作流程 >通过克隆git存储库来安装symfony 解决方法
在生产中使用doctrine fixtures bundle
虽然这是不鼓励的,因为您可能会意外丢弃生产数据库,但我确实看到了一些在生产环境中使用dotrine fixtures包的有效用例. 您可以编辑config / bundles.php以在生产环境中启用doctrine fixtures包. 更改 DoctrineBundleFixturesBundleDoctrineFixturesBundle::class => ['dev' => true,'test' => true], 至 DoctrineBundleFixturesBundleDoctrineFixturesBundle::class => ['all' => true], 为夹具加载创建自己的命令 也不建议使用doctrine功能手动加载灯具,但这样您就可以添加其他检查,例如只填充新数据库. $fixtures = (new DoctrineCommonDataFixturesLoader())->loadFromDirectory(__DIR__ . '/../src/DataFixture'); $loader = new DoctrineBundleFixturesBundleLoaderSymfonyFixturesLoader(new SymfonyComponentDependencyInjectionContainer()); $loader->addFixtures( array_map( function ($fixture) { return [ 'fixture' => $fixture,'groups' => [] ]; },$fixtures ) ); $purger = new DoctrineCommonDataFixturesPurgerORMPurger($entityManager); $executor = new DoctrineCommonDataFixturesExecutorORMExecutor($entityManager,$purger); $executor->execute( $loader->getFixtures() ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |