如何从迁移类加载Symfony2装置?
我们已经建立了一组数据装置,用所有的参考值为数据库种子。我们还使用管理模式更新。我们希望在初始模式迁移类中触发fixture加载,以便在运行任何其他模式更新之前填充系统 我在您可以制作的文档中找到了,但我不知道如何从该文档跳到调用/运行数据设备。我还没有在Stackoverflow或通过google找到任何好的答案。有人这样做过吗?能给我指出正确的方向吗?(或者对结合模式迁移管理种子数据的更好方法提出建议)。谢谢如何从迁移类加载Symfony2装置?,symfony,doctrine-orm,symfony-2.4,doctrine-migrations,Symfony,Doctrine Orm,Symfony 2.4,Doctrine Migrations,我们已经建立了一组数据装置,用所有的参考值为数据库种子。我们还使用管理模式更新。我们希望在初始模式迁移类中触发fixture加载,以便在运行任何其他模式更新之前填充系统 我在您可以制作的文档中找到了,但我不知道如何从该文档跳到调用/运行数据设备。我还没有在Stackoverflow或通过google找到任何好的答案。有人这样做过吗?能给我指出正确的方向吗?(或者对结合模式迁移管理种子数据的更好方法提出建议)。谢谢 这是使用Symfony版本:2.4这是一个有趣的问题。我找到了“肮脏”的解决方案,
这是使用Symfony版本:2.4这是一个有趣的问题。我找到了“肮脏”的解决方案,但效果很好
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
class Version20140811164659 extends AbstractMigration implements ContainerAwareInterface
{
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
public function up(Schema $schema)
{
// ... your code here
}
public function postUp(Schema $schema)
{
// here you have to define fixtures dir
$this->loadFixtures('src/Acme/BlogBundle/DataFixtures/ORM');
}
public function down(Schema $schema)
{
// ... your code here
}
public function loadFixtures($dir, $append = true)
{
$kernel = $this->container->get('kernel');
$application = new \Symfony\Bundle\FrameworkBundle\Console\Application($kernel);
$application->setAutoExit(false);
//Loading Fixtures
$options = array('command' => 'doctrine:fixtures:load', "--fixtures" => $dir, "--append" => (boolean) $append);
$application->run(new \Symfony\Component\Console\Input\ArrayInput($options));
}
}
此解决方案只需在“向上”迁移后运行console命令php应用程序/console原则:fixtures:load--fixtures=src/Acme/BlogBundle/DataFixtures/ORM--append
。
对不起,你英语不好。如果您能找到清晰的解决方案,请与他人分享;) 我制作了一个迁移类来解决这个问题。该代码基本上是从原则:fixtures:load命令中得到启发的