[Python] Domanda su Django

Alessandro Dentella sandro a e-den.it
Mer 15 Apr 2015 08:07:10 CEST


On Tue, Apr 14, 2015 at 04:24:31PM +0200, Carlos Catucci wrote:
>    Ho una domanda particolare.
>    Situazione: 4 progetti distinti ma che condividono lo stesso DB. Fino
>    qui nulla di che. Pero' alcune applications di un dato project mi
>    farebebro comodo (come anche il models e compagnia bella) anche in
>    altro project. Premessa che i 4 soggetti sono tutti dentro una stessa
>    directory e sono di pari livello. Premetto che googlare non ha portato

Non so cosa intenti per "pari livello", ma il posto dove risiedono č
totalmente ininfluente. Potrebbero anche risiedere su macchine
differenti...

Č una situazione piuttosto standard per me, i nostri progetti hanno
molte applicazioni e possono condividere lo stesso progetto (es.: lo
stesso listino auto venduto al sole24ore ed ad ansa)

>    La domanda e': posso da settings.py far puntare ad una app che si trova
>    in un'altro progetto? 

Nel settings tu dichiari solo il nome dell'applicazione che verrā
trovata nel sys.path. Č l'environment che assicura di trovarla, non il
settings. Se usi virtualenv sarā pip a metterla dove serve. Io uso
buildout e uso una cartella con tutte le eggs di tutte le versioni di
tutti i packages di tutti i progetti ed una con i sorgenti *per ogni
progetto*.


> In caso non sia possibile, se mi limitassi a
>    creare un link (ln -s, il tutto gira su macchine linux di cui ho
>    accesso completo) potrebbe funzionare come se i files fossero in
>    locale?

il link simbolico č un modo normalissimo di mostrare una cartella dove
vuoi tu, il lo uso in locale ma in produzione preferisco tenere ogni
progetto diviso. Arriverā il momento in cui devi aggiornare uno e non
l'altro progetto. Io anche in produzione uso una cartella con i
sorgenti e mi basta un "hg pull -u" per aggiornarli, quindi non vedo grandi
problemi

>    Lo scopo della cosa e' di non dover allineare la stessa app (a livello
>    di sorgenti, ovvio che i migrate ad esempio, vadano fatti in ciascun
>    project coinvolto) in tutti i projects in cui appare.

No! i migrate li devi fare una sola volta per db, non per progetto. Se
li hai giā fatti in un progetto anche gli altri progetti si accorgono
che la migrazione  č stata fatta (e ovviamente devi fare tu attenzione
che non rompa nulla, ad esempio aggiungendo un campo obbligatorio di
cui gli altri progetti potrebbero non sapere nulla).


sandro


-- 
Sandro Dentella  *:-)
http://www.reteisi.org             Soluzioni libere per le scuole
http://sqlkit.argolinux.org        SQLkit home page - PyGTK/python/sqlalchemy





Maggiori informazioni sulla lista Python