У меня не так много информации, чтобы дать более точный ответ (что вы имеете в виду, что дамп не сработал? Какую базу данных вы используете?), Но из предоставленных вами данных мой первый подход заключается в создании задачи вновый проект, который использует обе базы данных (старую и новую), пересекает пользователей, создавая нового пользователя в новой базе данных с информацией, полученной из старой.Для этого добавьте обе базы данных в ваш database.yml, создайте old_sfGuard_schema.yml и укажите базу данных для использования, а также определите классы sfGuard (имена классов должны быть такими же, как sfOldGuardUser, sfOldGuardCredential и т. Д., Чтобы несбой с текущими sfGuardClasses) вам нужно.Наконец, ваш код должен звучать примерно так:
public function execute([..])
{
foreach(sfOldGuardUsersPeer::doSelect(new Criteria()) as $old_user)
{
$new_user = new sfGuardUser();
$new_user->setUsername($old_user->getUsername());
[...]
foreach($old_user->getCredentials() as $old_user_credential)
{
[....]
}
$new_user->save();
}
}
Обратите внимание, что это псевдокод, он не будет работать в Symfony, но ваш код будет выглядеть примерно так.
ТакжеSQL-патч может быть сделан путем сброса информации базы данных о пользователях в CSV-файл и создания своего рода patch.sql, сгенерированного некоторым кодом, который создает все запросы, необходимые для добавления старых пользователей в новую базу данных.Как только появится donde, примените патч к новой базе данных.