{"id":193,"date":"2014-07-14T14:10:36","date_gmt":"2014-07-14T17:10:36","guid":{"rendered":"http:\/\/arielnavarrete.wordpress.com\/2014\/07\/14\/migrar-base-de-datos-de-symfony1-a-symfony2\/"},"modified":"2014-07-14T14:10:36","modified_gmt":"2014-07-14T17:10:36","slug":"migrar-base-de-datos-de-symfony1-a-symfony2","status":"publish","type":"post","link":"https:\/\/arielnavarrete.cl\/blog\/2014\/07\/14\/migrar-base-de-datos-de-symfony1-a-symfony2\/","title":{"rendered":"Migrar Base de Datos de Symfony1 a Symfony2"},"content":{"rendered":"<p>Estuve trabajando en un proyecto que estaba hecho en Symfony 1.4, y se nos dio la oportunidad de migrar todo a Symfony 2.3, principalmente para actualizar y hacer los cambios mas rapidos, ya que los comandos que utiliza Propel (ORM) no eran ya muy compatibles y los resultados al ejecutarlos la\u00a0 verdad es que dejaban harto que desear, nos daba mas problemas que finalmente ayudarnos.<\/p>\n<p><!--more Seguir leyendo\u2026--><\/p>\n<p>El principal problema que teniamos era el como podiamos migrar la Base de Datos, que ya existia a este nuevo proyecto sin perder nada, si bien no existe mucha documentacion oficial al respecto, es muy simple, luego de buscar un rato por la web encontre un comando bastante simple el cual te genera todas las entidades en Doctrine, obviamente no todo es 100% perfecto pero te da una base muy buena sobre la cual trabajar.<\/p>\n<p>Que es lo que requerimos antes de ejecutar este comando:<\/p>\n<ol>\n<li>\u00a0Bajar una version de Symfony, en este caso ocupamos Symfony 2.3.17<\/li>\n<li>Crear un Bundle en donde dejaremos todo esto (EJ : ANWebBundle)<\/li>\n<li>Configurar la conexion a la Base de Datos<\/li>\n<li>Probar que carga todo antes de generar esto, para evitar que nos muestre algun error por otra cosa<\/li>\n<\/ol>\n<p>Teniendo estas cosas pasamos a ejecutar nuestro comando milagroso<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">php app\/console doctrine:mapping:import ANWebBundle<\/pre>\n<p>Si ejecutamos esto nos generara todas las entidades en XML, si tu estas trabajando con Annotation, entonces deberas agregarle esto al final<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">php app\/console doctrine:mapping:import\u00a0ANWebBundle annotation<\/pre>\n<p>Obviamente el Bundle \u00abANWebBundle\u00bb, fue el que cree en el punto 2<\/p>\n<p>Con esto, te generara todas las entidades segun el esquema de la Base de Datos, ya es una buena base para trabajar, solo deberas revisar las claves entre las tablas y realizar los cambios que estimes pertinentes.<\/p>\n<p>Una vez revisado y que este todo en orden, solo nos falta generarle los getter y setter respectivos, esto lo haces asi<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">php app\/console doctrine:generate:entities ANWebBundle<\/pre>\n<p>Y listo, ya tienes tus entidades creadas y los respectivos accesos a ellos<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Estuve trabajando en un proyecto que estaba hecho en Symfony 1.4, y se nos dio la oportunidad de migrar todo a Symfony 2.3, principalmente para actualizar y hacer los cambios mas rapidos, ya que los comandos que utiliza Propel (ORM) no eran ya muy compatibles y los resultados al ejecutarlos la\u00a0 verdad es que dejaban [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,9,11],"tags":[],"class_list":["post-193","post","type-post","status-publish","format-standard","hentry","category-doctrine","category-propel","category-symfony1"],"_links":{"self":[{"href":"https:\/\/arielnavarrete.cl\/blog\/wp-json\/wp\/v2\/posts\/193","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arielnavarrete.cl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arielnavarrete.cl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arielnavarrete.cl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/arielnavarrete.cl\/blog\/wp-json\/wp\/v2\/comments?post=193"}],"version-history":[{"count":0,"href":"https:\/\/arielnavarrete.cl\/blog\/wp-json\/wp\/v2\/posts\/193\/revisions"}],"wp:attachment":[{"href":"https:\/\/arielnavarrete.cl\/blog\/wp-json\/wp\/v2\/media?parent=193"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arielnavarrete.cl\/blog\/wp-json\/wp\/v2\/categories?post=193"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arielnavarrete.cl\/blog\/wp-json\/wp\/v2\/tags?post=193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}