[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