release; } /** * {@inheritdoc} */ public function require_all_upgrades() { return false; } /** * {@inheritdoc} */ public function concern() { return $this->concern; } /** * {@inheritdoc} */ public function getDoctrineMigrations() { return ['20131118000012']; } /** * {@inheritdoc} */ public function apply(base $appbox, Application $app) { $sql = 'DELETE FROM UserNotificationSettings'; $stmt = $app->getApplicationBox()->get_connection()->prepare($sql); $stmt->execute(); $stmt->closeCursor(); $conn = $app->getApplicationBox()->get_connection(); $sql = 'SELECT * FROM usr_settings WHERE prop LIKE "notification_%"'; $stmt = $conn->prepare($sql); $stmt->execute(); $rs = $stmt->fetchAll(\PDO::FETCH_ASSOC); $stmt->closeCursor(); $n = 0; $em = $app['orm.em']; foreach ($rs as $row) { if (null === $user = $this->loadUser($app['orm.em'], $row['usr_id'])) { continue; } $userSetting = new UserNotificationSetting(); $userSetting->setName($row['prop']); $userSetting->setValue($row['value']); $userSetting->setUser($user); $em->persist($userSetting); $n++; if ($n % 200 === 0) { $em->flush(); $em->clear(); } } $em->flush(); $em->clear(); return true; } }