working update problem not fatal failed errors error composer cannot allowed allocate php symfony doctrine osx-mountain-lion fixtures

php - update - memory limit errors



Imposible cargar accesorios en Symfony2 "No se pudo encontrar ningĂșn accesorio para cargar" (3)

Intento desesperadamente cargar accesorios de Doctrine en mi base de datos. Cuando llamo a la función global de carga cli, nada se ve mal al principio:

> purging database > loading [1] namespace_of_my_first_fixture_file > loading [2] namespace_of_my_second_fixture_file ...

Pero falla en el medio del proceso cuando intenta reutilizar un objeto de un accesorio cargado previamente (índice incorrecto):

[ErrorException] Notice: Undefined index: my_object_index in /Users/Swop/project/vendor/doctrine/data-fixtures/lib/Doctrine/Common/DataFixtures/ReferenceRepository.php line 145

Miro el DB y no se inserta nada, en ninguna tabla. Si intento cargar solo el primer dispositivo (que parece estar cargado de acuerdo con el proceso anterior), aparece un error:

[InvalidArgumentException] Could not find any fixtures to load in: - src/MyOrg/MyBundleBundle/DataFixtures/ORM/MyFirstFixtureFileData.php

Por cierto, acabo de ejecutar eso en mi MacOS X (Mountain Lion) con una instancia auto compilada de PHP 5.4.

La carga de datos de los dispositivos funciona bien en mi caja de Linux.


Eche un vistazo a la documentación de DoctrineFixturesBundle .

Las clases de dispositivos de datos deben implementar OrderedFixtureInterface para que se carguen en un orden preestablecido.

A continuación, puede configurar referencias con $this->addReference(''ref-name'', $variable) y hacer referencia a esas referencias en otro dispositivo con $this->getReference(''ref-name'') .

Mi suposición de por qué parecía funcionar en tu linux box es porque los fixures se cargaron en un orden diferente.


No pude encontrar un buen ejemplo en los documentos y finalmente encontré que esto funciona. Simplemente use la ubicación de la carpeta y no especifique el archivo del dispositivo.

doctrine:fixtures:load --fixtures=src/MyOrg/MyBundleBundle/DataFixtures/ORM --append


Solo corre hacia esto también. Mis accesorios estaban trabajando en mi entorno de Windows local, pero fallaron en mi entorno de producción de Linux.

Mi problema era la distinción entre mayúsculas y minúsculas (como suele ser en windows-linux).

Llamé al directorio de accesorios de datos

Datafixtures

Mientras el script busca

DataFixtures

Encuentra la F mayúscula en el segundo nombre del directorio, no lo hice ;-)

Espero que esto ahorre tiempo a alguien.