2014-04-27 2 views
0

, если вы работаете с существующей базой данных, а база данных содержит таблицу пользователя, которая содержит всю информацию от нашего пользователя, как мы можем сделать ... после установки fosuserBundle он создаст новую таблицу fos_user .. как я могу объединить свои старые данные с новыми данными или перенести старые данные на новые данные Можно ли сделать обратное, инженерное, если да, то как? Спасибообратная инженерия для FosUser Bundle

+0

Что вы пытаетесь сделать? Вы хотите адаптировать существующую таблицу пользователей, чтобы она работала с FosUser? –

+0

да правый !! как я могу это сделать – Marooweb

+0

Что вы пробовали? После того, как вы установили FosUserBundle, ваш пользовательский класс наследует FosUSerBundle, вы сможете добавить некоторые свойства (поля) в свой класс User, если это необходимо. Может быть, ваша проблема заключается в переносе старых данных в новую таблицу? –

ответ

0

У меня есть аналогичная задача, которую нужно выполнить в течение нескольких дней, вам просто нужно расширить пользовательский объект FOSUserBundle с помощью UserEntity, где вы собираетесь добавить все необходимые столбцы, которые не нужны BaseUser предоставлять.

use FOS\UserBundle\Model\User as BaseUser; 

/** 
* user 
* 
* @ORM\Table(name="user") 
* 
*/ 
class User extends BaseUser 
{ 
    //Here you can extend the BaseUser provided from the FOSUserBundle 
    //with the Columns you need 
} 

После этого вам просто нужно написать SQL-скрипт с переносит данные из одной таблицы в новой таблице

INSERT INTO fos_user(`id`, `username`, `username_canonical`, `email`, `email_canonical`, `enabled`, `password`) 
SELECT  `id`, `name`, `name`, `email`, `email`, `active`, `password` 
FROM  old_user_table; 

Это сценарий, я использовал, чтобы сделать это datamigration. Просто запустите его в phpmyadmin.

Нет необходимости добавлять * _канонические поля вручную AFAIK, я просто делаю это безопасным.

Надеюсь, это помогло.

Смежные вопросы