Vra

Ek is tans op soek na die Python raamwerk Django vir toekomstige-db gebaseerde web programme sowel as vir 'n hawe van sommige programme wat tans in PHP geskryf is. Een van die nastier kwessies tydens my laaste jaar is die dop van databasis skedule veranderings en die implementering van hierdie veranderinge aan produktiewe stelsels. Ek het nie durf vra vir die feit dat hulle kan ook ongedaan te maak, maar natuurlik vir toetsing en ontfouting dat 'n groot funksie sou wees. Van ander vrae hier (soos hierdie een of hierdie een ), kan ek sien dat ek nie alleen en dat dit nie 'n triviale probleem. Ook, het ek gevind dat baie inspirasie in die antwoorde is daar.

Nou, as Django lyk baie sterk te wees, het dit enige gereedskap om te help met die bogenoemde? Miskien is dit selfs in hul dokumente en ek het dit gemis?

Was dit nuttig?

Oplossing

Daar is ten minste twee derde party utilities om DB skema migrasies, Suid en Django Evolution . Ek het nie probeer nie een nie, maar ek het 'n paar goeie dinge oor Suid-gehoor, maar Evolution is om 'n bietjie langer.

Ook, kyk na SchemaEvolution op die Django wiki. Dit is net 'n wiki bladsy oor migreer die db.

Ander wenke

Die laaste keer wat ek nagegaan (weergawe 0.97), sal syncdb in staat wees om tafels te voeg tot jou DB skema sync met jou models.py lêer, maar dit kan nie:

  • Herbenoem of voeg 'n kolom op 'n bewoonde DB. Wat jy nodig het om dit te doen met die hand.
  • Refactorize jou model (soos verdeel 'n tafel in twee) en daarvolgens Weer vul jou DB.

Dit mag dalk al moontlik wees om 'n Django script skryf aan die migrasie maak deur die speel met die twee verskillende bestuurders , maar wat dalk ouderdomme neem as jou DB is groot.

Daar was 'n paneel sessie op DB skema veranderinge by die onlangse DjangoCon; daar is 'n video van die sessie (te danke aan Google), wat 'n paar nuttige moet voorsien inligting oor 'n aantal van hierdie nuts.

En nou is daar ook dmigrations . Van aankondiging :

  

Django-evolusie poog om hierdie probleem die slim manier aan te spreek, deur die opsporing van veranderinge aan modelle wat nog nie weerspieël in die databasis skedule en uitzoeken wat gedoen moet word om die twee terug in harmonie te bring moet. In teenstelling, dmigrations neem die dom benadering: dit vereis dat jy die veranderinge in 'n reeks van migrasie, wat op sy beurt sal toegepas word uitdruklik na 'n databasis tot die mees onlangse staat dat die onderliggende modelle weerspieël bring

     

Dit beteken ekstra werk vir ontwikkelaars wat migrasies skep, maar dit maak ook die hele proses heeltemal deursigtig-vir ons projekte, het ons besluit om te gaan met die eenvoudigste stelsel wat moontlik kan werk.

(My vetdruk)

Ek hoor baie goed oor Django skedule Evolution Tak en dit was opions van werklike gebruikers. Dit werk mostely uit die boks en doen wat dit moet doen.

U moet lookup Dmigrations , dit funksioneer 'n bietjie diffrent van Django-eveoltions. Dit wys jou alles wat dit doen en vir compliccated dinge dit vra jy vir jou intervetnions. Dit moet wonderlik wees.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top