본문 바로가기
MySql

MySQL Symfony2는 Doctrine Fixtures Load에서 SQL 파일을 실행합니다.

by 베이스 공부 2020. 11. 26.
반응형

SQL Server 및 ASP를 기반으로하는 이전 웹 앱을 Symfony2 및 MySQL로 마이그레이션하고 있습니다. 몇 가지 쿼리를 작성하고 이전 데이터를 개별 SQL 파일로 내 보냅니다. 명령을 실행할 때 내 조명기에서 해당 파일을 어떻게 실행할 수 있습니까?

$php app/console doctrine:fixtures:load

이제 Doctrine ORM 및 엔터티와 직접 작동하는 조명기가 있지만 가져올 데이터가 많습니다.

 

해결 방법

 

좋은 해결책을 찾았습니다. ObjectManager 클래스에서 exec 메서드를 찾지 못했기 때문에이 작업은 저에게 매우 효과적입니다.

public function load(ObjectManager $manager)
{
    // Bundle to manage file and directories
    $finder = new Finder();
    $finder->in('web/sql');
    $finder->name('categories.sql');

    foreach( $finder as $file ){
        $content = $file->getContents();

        $stmt = $this->container->get('doctrine.orm.entity_manager')->getConnection()->prepare($content);
        $stmt->execute();
    }
}

이 솔루션에서 조명기 클래스는 메소드로 ContainerAwareInterface 를 구현해야합니다.

public function setContainer( ContainerInterface $container = null )
{
    $this->container = $container;
}

 

참조 페이지 https://stackoverflow.com/questions/27512053

 

 

반응형

댓글