Crear una nueva tabla en una base de datos con Symfony2

 

Añadimos una nueva entidad en CruiseHunter/CrucerosBundle/Entity/Naviera.php

actualizamos los datos:

- php app/console doctrine:generate:entities CruiseHunter/CrucerosBundle/Entity/Naviera

 

- php app/console doctrine:generate:entities CruiseHunter/CrucerosBundle/Entity/Naviera

 

Cuidado. si creamos el fichero en minúsculas, al hacer el doctrine:generate nos va a generar uno en mayúsculas, y nos dará el dichoso error de que no se puede crear dos veces una clase con el mismo nombre.

Más datos importantes, la cabecera con ORM es importante para generar la tabla automáticamente en nuestra base de datos:

 

/**

 * CruiseHunter\CrucerosBundle\Entity\Naviera

 * @ORM\Table(name="naviera")

 * @ORM\Entity

 */

class Naviera

{

 

 

y, por último, debemos tener una variable key, tipo id:

 

    /**

     * @ORM\Id

     * @ORM\Column(type="integer")

     * @ORM\GeneratedValue(strategy="AUTO")

     */

    private $id;

 

 

Hasta aquí todo. Sólo nos queda generar la base de datos:

 

- php app/console doctrine:schema:update --force

Esto último lo que hace es revisar nuestro Entity, y comprobar que campos llevan un @ORM con un \Column asociado. Justamente este campo es el que el comando update usará para crear el campo en la base de datos. 

Por ejemplo:

 

    /**

     * @var string $descripcion

     * @ORM\Column(type="string",length=200)

     * 

     */

    private $descripcion;

    /**

     * @var string $barco

     * @ORM\Column(type="string",length=100)

     */

    private $barco;

    /**

     * @var string $enlace

     * @ORM\Column(type="string",length=200)

     */

    private $enlace;