|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Étudiant Inscription : août 2006 Messages : 49 ![]() |
Bonjour,
Pour un projet, j'avais des fixtures de test qui se chargeaient correctement... jusqu'à aujourd'hui où je décide de mettre à jour sfDoctrineGuardPlugin (avec mise à jour des fixtures correspondantes) et de passer symfony à la version svn de la branche 1.4 (avec un svn:external). Code :
./symfony doctrine:build --all --and-load
Je teste mon appli et me rend compte qu'il ne trouve plus les données de 2 tables (pour toutes les autres, c'est bon, sfGuard* comprise). Effectivement phpMyAdmin me renvoie des tables vides. Code :
Quelqu'un a-t-il déjà eu ce comportement étrange ? Une idée ? ...avant que je ne me décide à faire marche arrière sur la version mineure de Symfony. |
||
|
|
00
|
|
|
#2 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Un peu rapide comme retour en arrière.
Tu peux donner ton shema (au moins pour la table qui pose problème et celle liée. Ainsi que le fixture correspondant. Le message d'erreur, c'est bien, les données pour y voir clair, c'est mieux !
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#3 | ||||||
|
Nouveau Membre du Club
![]() Étudiant Inscription : août 2006 Messages : 49 ![]() |
Je vais prendre l'exemple le plus parlant qui fait que je ne comprends pas le comportement.
schema.yml : les deux se créent sans problème. Code :
Code :
Code :
|
||||||
|
|
00
|
|
|
#4 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
C'est un traitement doctrine, pas symfony. A ma lecture du changelog de symfony, il n'y pas de modification de la version de doctrine embarqué entre la 1.4.4 et la 1.4.5. Le seul changement est entre la 1.4.6 et la 1.4.7 et concerne le chargement du doctrine_core, rien a voir avec les fixatures.
Je te propose de faire un projet de test, d'y mettre ce mini schema (peut-être avec la table de liaison) et de tester ton fixature au milieu d'un projet vierge. Pour voir. Je pense que cela devrait marcher. Question annexe, es-tu sur de l'unicité des noms des objets ajoutés "Marseille" et "1" ? Ils doivent, dans mes souvenirs, être uniques, toutes tables confondues, tous fichiers de fixatures confondus.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Étudiant Inscription : août 2006 Messages : 49 ![]() |
Je vais tester ça.
Pour les noms des objets, je pense qu'ils doivent être unique au niveau de la table, pas sur l'ensemble des fixatures (puisqu'ils sont appelés par table: nom_objet). D'ailleurs "Marseille" est unique sur l'ensemble des fichiers mais pas "1" (or le problème se situe à l'inverse). |
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Étudiant Inscription : août 2006 Messages : 49 ![]() |
Bon après divers tests à tâtons :
|
|
|
00
|
|
|
#7 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Le svn est a réserver pour des tests d'évaluations.
Attention, les fixtures ne sont pas destiné à récupérer une base existante et j'ai vu symfony planter en téléchargement de gros fixture. Symfony télécharge tous les fichiers fixture avant de les traiter, pour vérifer les enchainement de création à faire. Donc le fait de séparer en plusieurs fichier donne un confort de lecture, mais ne factorise en rien les traitements. Tu peux mettre le fichier complet (au moins les premier 10) pour ton fixture fac ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#8 | ||
|
Nouveau Membre du Club
![]() Étudiant Inscription : août 2006 Messages : 49 ![]() |
De toute façon, ça marche parfaitement avec les versions téléchargées, donc je me suis rabattu sur celles-ci.
Je sais bien que le découpage ne me fait rien gagner sur le traitement des données mais pour le gros fichier (etudiant.yml), jusque là ça passait et ça me permet de faire des tests au plus près des simulations précédente (c'est une migration vers symfony) pour y détecter les éventuels comportement anormaux. Tout ça, je le virerai avant d'entrer en production (et quand j'aurais écrit les différentes fonctions d'import). Pour le fac.yml (complet) : Code :
|
||
|
|
00
|
|
|
#9 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
A priori tes données devraient passer.
Par contre il faut faire attention, le système des fixatures n'est pas conçu pour traiter des migrations. Il est conçu pour alimenter la base pour des test avec une base toujours identique pour permettre d'avoir un socle stable pour ses tests. Je crains que, pour je ne sais quel raison, tu étais juste en dessous de la possibilité de mémoire et que là, tu es passé au dessus. Sans que cela soit nécessairement lié à symfony. Pour de gros ajouts de données, le sql présente pas mal d'avantage en terme de stabilité.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#10 |
|
Membre habitué
![]() Inscription : juin 2006 Messages : 488 ![]() |
les fichiers fixtures semble avoir un comportement assez chaotique dés que tu dépasse un certains nombre de lignes (plus de 5).
Des tables se chargent mais oublie des enregistrements complets, d'autres charge tout les enregistrements mais pas forcément avec tout les champs. pas de message d'erreur, rien. Je me suis finalement rabattu avec un lien ODBC et une base access et je charge mes données via une macro quand j'ai besoin de tester sur un nombre conséquent de données. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com