Django-fr

Forum

#1 25-05-2009 20:15:30

Florent MESSA
Membre
Inscription : 11-08-2010
Messages : 5

Multiple inserts

hello,

Je cherche à faire un insert multiple via une seule et même requête afin
d'épargner des efforts supplémentaires à ma base de données.

En gros : INSERT INTO table (col1, col2) VALUES ('row1col1',
'row1col2'), ('row2col1', 'row2col2'), ...

Est-ce que c'est possible sans passer par du SQL brute via l'ORM de Django?

J'ai fouillé un peu et je n'ai trouvé que très peu de ressources sur ce
sujet sauf un ticket qui est resté ouvert sur le trac officiel :
http://code.djangoproject.com/ticket/7596

Merci d'avance pour vos retours (:

Hors ligne

#2 26-05-2009 08:56:58

Cyril Doussin
Membre
Inscription : 11-08-2010
Messages : 10

Re : Multiple inserts

Salut,

Il ne me semble pas que ça soit possible quand tu utilises l'ORM.
Surtout que Russell a mis le status du ticket que tu as trouvé à 
"Design decision needed" au mois de mars...

Cyril


On 25 May 2009, at 21:15, Florent MESSA wrote:

> hello,
>
> Je cherche à faire un insert multiple via une seule et même requête 
> afin d'épargner des efforts supplémentaires à ma base de données.
>
> En gros : INSERT INTO table (col1, col2) VALUES ('row1col1', 
> 'row1col2'), ('row2col1', 'row2col2'), ...
>
> Est-ce que c'est possible sans passer par du SQL brute via l'ORM de 
> Django?
>
> J'ai fouillé un peu et je n'ai trouvé que très peu de ressources sur 
> ce sujet sauf un ticket qui est resté ouvert sur le trac officiel : http://code.djangoproject.com/ticket/7596
>
> Merci d'avance pour vos retours (:
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django

Hors ligne

#3 27-05-2009 08:48:13

Gael Pasgrimaud
Membre
Inscription : 11-08-2010
Messages : 7

Re : Multiple inserts

Essais avec SQLAlchemy:
http://www.sqlalchemy.org/docs/05/sqlexpression.html#executing-multiple-statements

2009/5/26 Cyril Doussin <cdoussin _AT_ gmail.com>:
>
> Salut,
> Il ne me semble pas que ça soit possible quand tu utilises l'ORM.
> Surtout que Russell a mis le status du ticket que tu as trouvé à "Design
> decision needed" au mois de mars...
> Cyril
>
> On 25 May 2009, at 21:15, Florent MESSA wrote:
>
> hello,
>
> Je cherche à faire un insert multiple via une seule et même requête afin
> d'épargner des efforts supplémentaires à ma base de données.
>
> En gros : INSERT INTO table (col1, col2) VALUES ('row1col1', 'row1col2'),
> ('row2col1', 'row2col2'), ...
>
> Est-ce que c'est possible sans passer par du SQL brute via l'ORM de Django?
>
> J'ai fouillé un peu et je n'ai trouvé que très peu de ressources sur ce
> sujet sauf un ticket qui est resté ouvert sur le trac officiel :
> http://code.djangoproject.com/ticket/7596
>
> Merci d'avance pour vos retours (:
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>

Hors ligne

#4 27-05-2009 12:21:42

Florent MESSA
Membre
Inscription : 11-08-2010
Messages : 5

Re : Multiple inserts

J'y pensais justement mais finalement la meilleure solution reste du SQL
brute.
De mon point de vue, c'est la solution la moins couteuse et la moins
lourde en déploiement, donc autant rester sur un seul et même style
d'ORM même si des alternatives existent
http://adam.gomaa.us/blog/2007/aug/26/the-django-orm-problem/

D'ailleurs, est-ce que l'utilisation d'un ORM tiers est fréquente dans
un projet Django?

Je prends comme exemple Symfony ou ZF, où l'ORM n'est pas imbriqué dans
le framework : Doctrine, Propel, etc.

Merci pour vos réponses (;

Le 27/05/09 9:48, Gael Pasgrimaud a écrit :
> Essais avec SQLAlchemy:
> http://www.sqlalchemy.org/docs/05/sqlexpression.html#executing-multiple-statements
>
> 2009/5/26 Cyril Doussin<cdoussin _AT_ gmail.com>:
>   
>> Salut,
>> Il ne me semble pas que ça soit possible quand tu utilises l'ORM.
>> Surtout que Russell a mis le status du ticket que tu as trouvé à "Design
>> decision needed" au mois de mars...
>> Cyril
>>
>> On 25 May 2009, at 21:15, Florent MESSA wrote:
>>
>> hello,
>>
>> Je cherche à faire un insert multiple via une seule et même requête afin
>> d'épargner des efforts supplémentaires à ma base de données.
>>
>> En gros : INSERT INTO table (col1, col2) VALUES ('row1col1', 'row1col2'),
>> ('row2col1', 'row2col2'), ...
>>
>> Est-ce que c'est possible sans passer par du SQL brute via l'ORM de Django?
>>
>> J'ai fouillé un peu et je n'ai trouvé que très peu de ressources sur ce
>> sujet sauf un ticket qui est resté ouvert sur le trac officiel :
>> http://code.djangoproject.com/ticket/7596
>>
>> Merci d'avance pour vos retours (:
>>
>> _______________________________________________
>> django mailing list
>> django _AT_ lists.afpy.org
>> http://lists.afpy.org/mailman/listinfo/django
>>
>> _______________________________________________
>> django mailing list
>> django _AT_ lists.afpy.org
>> http://lists.afpy.org/mailman/listinfo/django
>>
>>     
>
>
>
>

Hors ligne

#5 28-05-2009 12:46:16

Nautile Bleu
Membre
Inscription : 11-08-2010
Messages : 27

Re : Multiple inserts

Il est possible de remplacer l'ORM de django par sqlalchemy, mais il
ne faut pas perdre de vue que ce choix entraîne pas mal
d'inconvénients:

http://michaeltrier.com/2008/7/24/replacing-django-orm-with-sqlalchemy
http://lethain.com/entry/2008/jul/23/replacing-django-s-orm-with-sqlalchemy/

Il y a un projet de reproduire le fonctionnement de django avec sqlachemy:

http://code.google.com/p/django-sqlalchemy/

Goulwen

Hors ligne

#6 28-05-2009 13:06:51

Olivier Deckmyn
Membre
Inscription : 11-08-2010
Messages : 3

Re : Multiple inserts

Il existe aussi un portage de Django sur AppEngine, dont l'action principale
est justement le changement de l'ORM :
http://code.google.com/p/app-engine-patch/

et oui, ca entraine pas mal d'inconvénients smile

2009/5/28 Nautile Bleu <nautilebleu _AT_ gmail.com>

> Il est possible de remplacer l'ORM de django par sqlalchemy, mais il
> ne faut pas perdre de vue que ce choix entraîne pas mal
> d'inconvénients:
>
> http://michaeltrier.com/2008/7/24/replacing-django-orm-with-sqlalchemy
>
> http://lethain.com/entry/2008/jul/23/replacing-django-s-orm-with-sqlalchemy/
>
> Il y a un projet de reproduire le fonctionnement de django avec sqlachemy:
>
> http://code.google.com/p/django-sqlalchemy/
>
> Goulwen
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>

Hors ligne

Pied de page des forums