Armado de Esquemas YML¶
A diferencia de Symfony 1, el esquema es armado por cada clase
Primero creamos la carepta doctrine
mkdir src/JobeetBundle/Resources/config/doctrine
Creamos y editamos los archivos de esquemas
mcedit src/JobeetBundle/Resources/config/doctrine/Personas.orm.yml
# src/JobeetBundle/Resources/config/doctrine/Personas.orm.yml JobeetBundle\Entity\Personas: type: entity table: personas id: id: type: integer generator: { strategy: AUTO } fields: nombre: type: string length: 255 nullable: true apellido: type: string length: 255 dni: type: string length: 255 nullable: true activa: type: boolean nullable: true manyToOne: tiposdocumentos: targetEntity: Tiposdocumentos inversedBy: personas joinColumn: name: tiposdocumentos_id referencedColumnName: id
mcedit src/JobeetBundle/Resources/config/doctrine/Tiposdocumentos.orm.yml
# src/JobeetBundle/Resources/config/doctrine/Tiposdocumentos.orm.yml JobeetBundle\Entity\Tiposdocumentos: type: entity table: tiposdocumentos id: id: type: integer generator: { strategy: AUTO } fields: name: type: string length: 255 unique: true oneToMany: products: targetEntity: Personas mappedBy: tiposdocumentos
Generamos los archivos de Entidades
php app/console doctrine:generate:entities JobeetBundle
Si no hemos creado la base de datos y tenemos configuraod en app/config/parameters.yml el acceso, podemos crearla
ejemplo de parameters.yml
parameters: database_host: 127.0.0.1 database_port: null database_name: s27 database_user: root database_password: MICLAVE_MYSQL mailer_transport: smtp mailer_host: 127.0.0.1 mailer_user: null mailer_password: null secret: dedeb278ce6f7db6ea0c78fa04499b87e418f613
php app/console doctrine:database:create
Luego trasladamos a la base de datos el esquema, en este caso conviene ya tener creada la base de datos segun lo configurado en parameters.yml
php app/console doctrine:schema:update --force
Agregamos un metodo para los combos que obtienen datos entre clases
en src/JobeetBundle/Entity/Tiposdocumentos.php
public function __toString() { return $this->getName(); }
Yo arme un archivo generar con el siguiente contenido
php app/console doctrine:generate:entities JobeetBundle php app/console doctrine:schema:update --force php app/console doctrine:generate:crud --entity=JobeetBundle:Personas --route-prefix=personas --with-write --format=yml --overwrite php app/console cache:clear --env=prod php app/console cache:clear --env=dev
le di todos los permisos, incluso el de ejecucion
chmod 777 generar
luego en consola solo corro , desde la carpeta donde se encuentra el archivo generar
./generar
le doy Enter en todas las opciones
Referencias: