pgmigrate2 is 'n Python instrument wat help jy jou databasis saam te ontwikkel met jou aansoek.
Die fundamentele eenheid van PGmigrate is 'n enkele SQL brokkie genoem kol.
Monster databasis kol
& Nbsp; kat 000049_Added_index_on_CategorySlug.sql
--- Id: 89ccfca6-6851-11e1-99d8-a088b4e3b168
--- Skrywer: serg
--- Memo: Bygevoeg indeks op CategorySlug
--- Datum: 2012/03/07 14:32
CREATE UNIQUE INDEX catalog_category_slug_shop_id_slug
& Nbsp; OP catalog_category_slug
& Nbsp; GEBRUIK btree
& Nbsp; (shop_id, slak);
Soos jy kan sien pleister is 'n geldige SQL lêer, wat kan selfs direk uitgevoer word. Dit het ook 'n lekker, leesbare lêer naam, en 'n paar metadata.
Quick
Inisialiseer die databasis
& Nbsp; pgmigrate2 init postgresql: // gebruiker @ wagwoord / testdb
Dit sal tafel __applied_patches__ skep testdb. Hierdie tabel word gebruik om op te spoor wat kolle is reeds aansoek gedoen.
Skep 'n pleister repokoers, en 'n eerste kol
& Nbsp; mkdir patchrepo
& Nbsp; pgmigrate2 newpatch patchrepo
... Wysig kol in jou teks editor ...
Geskryf 'patchrepo / 000001_creating_table_x.sql'
Dit sal leë kol skep en maak dit in jou teks editor. Tik kol SQL, en opsionele memo, beskryf wat is die funksie van hierdie regstelling.
PGmigrate sal 'n lêer soos patchrepo / 000001_creating_table_x.sql waar 000001 is 'n pleister reeksnommer skep en creating_table_x is 'n slugified kol memo. PGmigrate sal res van kol metadata vul deur self.
Gaan na watter moet toegepas word op
& Nbsp; pgmigrate2 tjek patchrepo / postgresql: // gebruiker @ wagwoord / testdb
Nodig om aansoek te doen: skep tafel x
Check neem al kolle in kol repokoers, en druk 'n lys van die kolle wat nodig is om toegepas word testd.
Pas kolle
& Nbsp; pgmigrate2 migreer patchrepo / postgresql: // gebruiker @ wagwoord / testdb
Nodig 1 kolle om aansoek te doen:
Toepassing van 'skep tafel x'
Migreer neem al kolle van kol repokoers en agtermekaar geld diegene wie se ID is nie teenwoordig in __applied_patches__ tafels van testdb.
Embedding
Hier is byvoorbeeld hoe ons dit gebruik PGmigrate in ons projek:
### Databasis migrasie opdragte
@ Finaloption.command (config_opts)
def dbmigrate (opstelling):
& Nbsp; uit shopium.core.config invoer read_config
& Nbsp; config = read_config (opstelling)
& Nbsp; uit pgmigrate2 invoer api
& Nbsp; terugkeer api.migrate ('migrasies', config.db_uri)
@ Finaloption.command (config_opts)
def dbnewpatch (opstelling):
& Nbsp; uit shopium.core.config invoer read_config
& Nbsp; config = read_config (opstelling)
& Nbsp; uit pgmigrate2 invoer api
& Nbsp; invoer subprocess
& Nbsp; path = api.newpatch ('migrasies')
& Nbsp; as pad:
& Nbsp; subprocess.check_call ('hg voeg% s'% pad, dop = True) # voeg net geskep kol Mercurial
@ Finaloption.command (config_opts)
def dbcheckstatus (opstelling):
& Nbsp; uit shopium.core.config invoer read_config
& Nbsp; config = read_config (opstelling)
& Nbsp; uit pgmigrate2 invoer api
& Nbsp; api.check_status ('migrasies', config.db_uri)
Vereistes :
- Python
Kommentaar nie gevind