/**
  * @param Application $app
  */
 private function addProductListOrderBy(Application $app)
 {
     // this up() migration is auto-generated, please modify it to your needs
     /** @var \Eccube\Entity\Master\ProductListOrderBy $plob */
     $ProductListOrderBy = new ProductListOrderBy();
     $ProductListOrderBy->setId(0);
     $ProductListOrderBy->setName('未選択');
     $ProductListOrderBy->setRank(-1);
     /** @var \Doctrine\ORM\EntityManager $em */
     $em = $app['orm.em'];
     $em->persist($ProductListOrderBy);
     $em->flush();
 }
 /**
  * @param Schema $schema
  */
 public function up(Schema $schema)
 {
     $app = Application::getInstance();
     $repository = $app['orm.em']->getRepository('Eccube\\Entity\\Master\\ProductListOrderBy');
     // mtb_product_list_orderbyが初期状態から変更がある場合は、マイグレーションを適用しない
     $default = array(array('id' => 1, 'name' => '価格順', 'rank' => 0), array('id' => 2, 'name' => '新着順', 'rank' => 1));
     $entities = $repository->createQueryBuilder('pl')->orderBy('pl.id', 'ASC')->getQuery()->getArrayResult();
     if ($entities !== $default) {
         return;
     }
     // 価格が高い順を追加
     $ProductListOrderBy = new ProductListOrderBy();
     $ProductListOrderBy->setId(3);
     $ProductListOrderBy->setName('価格が高い順');
     $ProductListOrderBy->setRank(2);
     $app['orm.em']->persist($ProductListOrderBy);
     $app['orm.em']->flush($ProductListOrderBy);
     // "価格順"の名称を"価格が低い順"へ変更
     $ProductListOrderBy = $repository->find(1);
     if (!is_null($ProductListOrderBy) && $ProductListOrderBy->getName() === '価格順') {
         $ProductListOrderBy->setName('価格が低い順');
         $app['orm.em']->persist($ProductListOrderBy);
         $app['orm.em']->flush($ProductListOrderBy);
     }
     // 価格が低い順->価格が高い順->新着順の順にrankを振り直す
     // 価格が低い順
     $entity = $repository->find(1);
     $entity->setRank(0);
     $app['orm.em']->flush($entity);
     // 価格が高い順
     $entity = $repository->find(3);
     $entity->setRank(1);
     $app['orm.em']->flush($entity);
     // 新着順
     $entity = $repository->find(2);
     $entity->setRank(2);
     $app['orm.em']->flush($entity);
 }