В Symfony2 есть свои инструменты для работы с базой, поэтому логичнее воспользоваться ими.
Нужно добавить в существующую таблицу например одну колонку используя встроенные в Symfony возможности.
Открываем сущность нашего бандла, это файл в папке Entities, в нем перечислены используемые колонки таблицы в виде переменных с названием этих смых колонок и геттеров - сеттеров.
// src/AppBundle/Entity/Product.php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="product")
*/
class Product {
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="string", length=100)
*/
private $name;
/**
* @ORM\Column(type="decimal", scale=2)
*/
private $price;
/**
* @ORM\Column(type="text")
*/
private $description;
}
Добавим сюда новую колонку, например пусть будет $description.
/**
* @ORM\Column(type="text")
*/
private $description
Затем в консоли запускаем:
php app/console doctrine:generate:entities %AppName%/UserBundle/Entity/User
* %AppName% - название приложения, будет отличаться.
* UserBundle - название моего бандла которое может отличаться.
* User - название сущности которая используется в примере.
Ответ будет примерно таким:
Generating entity "Crm\UserBundle\Entity\User"
> backing up User.php to User.php~
> generating Crm\UserBundle\Entity\User
Значит все хорошо.
Создадутся примерно такие геттеры и сеттеры:
/** * Set description
*
* @param string $facebookUserName
*
* @return User
*/
public function setDescription($description)
{
$this->description = $description; return $this;
}
/**
* Get description
*
* @return string
*/
public function getDescription()
{
return $this->description;
}
Создаем сущности:
php app/console doctrine:generate:entities Crm/UserBundle/Entity/User
И не забыть обновить схему:
php app/console doctrine:schema:update --force