-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Améliorations de l'importer de déclarations historiques #1478
Conversation
ff6f247
to
89310ab
Compare
possibilité pour modifier les dates et utiliser bulk_create: https://stackoverflow.com/questions/70085655/django-how-to-over-ride-created-date ça nécessite alors un changement du modèle, faut réflechir si il y a d'autre consequences de faire ça il y a combien de déclarations ? je crois que c'est aussi assez normale que ça prend du temps. C'est quoi les soucis d'un temps long ? D'ailleurs, chez ma cantine ils ont fait un changement avec redis côté clever cloud qui a aidé à réduire le RAM utilisé. P-e on peut faire la même chose avec complalim avant l'import pour ne pas mettre de la pression sur le RAM |
logger.error( | ||
f"Ce IcaComplementAlimentaire cplalim_ident={ica_complement_alimentaire.cplalim_ident} n'a pas une unique déclaration la plus récente" | ||
) | ||
continue | ||
# retrouve la version de déclaration la plus à jour correspondant à cette déclaration | ||
latest_ica_version_declaration = IcaVersionDeclaration.objects.filter( | ||
dcl_id=latest_ica_declaration.dcl_ident, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
qu'est-ce que ce passe si on avait MultipleObjectsReturned
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alors la Déclaration n'est pas importée, en tout cas pas pour l'instant.
Il y a environ 1000 déclarations pour lesquelles c'est le cas (qui ne sont pas importées), il faut que je prenne plus de temps pour creuser comment les importer dans ce cas.
C'est plutôt un TODO
company=company, # resp étiquetage, resp commercialisation | ||
company=Company.objects.get( | ||
siccrf_id=ica_complement_alimentaire.etab_id | ||
), # resp étiquetage, resp commercialisation |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
l'erreur originelle n'est plus un pb ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ce n'est plus possible de rencontrer l'erreur Company.DoesNotExist
parce que ligne 191 on filtre sur les déclarations dont la company existe forcément
for ica_complement_alimentaire in IcaComplementAlimentaire.objects.filter(
etab_id__in=Company.objects.values_list("siccrf_id", flat=True)
):
@hfroot je ne changerais pas le |
Yes j'avais vu cette possibilité de mettre un |
L'importer avait quelques soucis :
Cette PR améliore un peu les perf mais la création des Déclarations historiques met ~ 1h (j'estime ~3h pour la création de toutes les déclarations historiques mêmes pour les entreprises non connues).
Il est possible d'accélérer ce temps en utilisant
bulk_create
mais cela ne permet pas l'overwrite des champsmodification_date
etcreation_date
TODO : creuser si une autre solution est possible.