Alambicco è una nuova utility migrazioni di database, scritto dall'autore di SQLAlchemy & nbsp; Uno strumento migrazioni offre le seguenti funzionalità.:
- Possono emettere dichiarazioni ALTER a un database in modo da cambiare la struttura delle tabelle e altri costrutti
- Fornisce un sistema in base al quale possono essere costruiti "script di migrazione"; ogni script indica una particolare serie di passi che possono "aggiornare" un database di destinazione a una nuova versione, ed eventualmente una serie di passi che possono "downgrade" allo stesso modo, facendo la stessa procedura in senso inverso.
- Consente di eseguire gli script in qualche modo sequenziale.
Gli obiettivi di Alembic sono:
- Configurazione ended e trasparente molto aperto e il funzionamento. Un nuovo ambiente Alambicco è generato da una serie di modelli che viene scelto tra una serie di opzioni in caso di configurazione. I modelli poi depositano una serie di script che definiscono appieno come viene stabilita la connettività di database e di come sono invocato script di migrazione; gli script di migrazione stessi sono generati da un modello all'interno di quella serie di script. Gli script possono essere ulteriormente personalizzati per definire esattamente come i database saranno interagire con e quale struttura di nuovi file di migrazione dovrebbero prendere.
- Pieno supporto per DDL transazionale. Gli script di default in modo che tutte le migrazioni avvengono all'interno di una transazione - per le banche di dati che supportano questa (PostgreSQL, Microsoft SQL Server), le migrazioni possono essere testati senza la necessità di annullare manualmente le modifiche in caso di guasto.
- Costruzione di script minimalista. Operazioni di base come rinominare tabelle / colonne, aggiungere / rimuovere colonne, cambiare gli attributi delle colonne può essere eseguita attraverso una linea di comandi come alter_column (), rename_table (), add_constraint (). Non c'è bisogno di ricreare strutture tavolo pieno SQLAlchemy per operazioni semplici come questi - si le funzioni generano strutture di schema minimalista dietro le quinte per ottenere la data sequenza DDL.
- "Generazione automatica" delle migrazioni. Mentre le migrazioni del mondo reale sono molto più complesse di quello che può essere determinato automaticamente, Alambicco può ancora eliminare il lavoro sporco iniziale nel generare nuove direttive di migrazione da uno schema alterata. La funzione --autogenerate controllerà lo stato attuale di un database utilizzando le funzionalità di ispezione dello schema di SQLAlchemy, confrontarlo con lo stato attuale del modello di database come specificato in Python, e generare una serie di migrazioni "candidati", rendendoli in una nuova migrazione script come direttive Python. Lo sviluppatore poi modifica il nuovo file, aggiungendo le direttive supplementari e le migrazioni di dati necessari, per produrre una migrazione finito. Tavolo e livello di colonna cambiamenti possono essere rilevati, con i vincoli e gli indici di seguire pure.
- Supporto completo per le migrazioni generate come script SQL. Quelli di noi che lavorano in ambienti aziendali sanno che l'accesso diretto al DDL comandi su un database di produzione è un raro privilegio, e DBA vogliono script SQL testuale. Modello e comandi utilizzo di Alembic sono orientati verso la possibilità di eseguire una serie di migrazioni in un file di output testuale stessa facilità con cui li esegue direttamente a un database. Si deve prestare attenzione in questo modo per non invocare altre operazioni che si basano su SELECT in memoria di righe - Alambicco cerca di fornire costrutti di supporto come bulk_insert () per aiutare con le operazioni di data-oriented che sono compatibili con DDL basato su script.
- Versioning non lineare. Gli script sono dati identificativi UUID in modo simile a una DVCS, e il collegamento di uno script per il successivo avviene tramite marcatori all'interno degli script stessi. Attraverso questo meccanismo aperto, rami contenenti altri script di migrazione possono essere uniti - i collegamenti possono essere modificati manualmente all'interno dei file di script per creare la nuova sequenza.
- Fornire una libreria di costrutti ALTER che possono essere utilizzati da qualsiasi applicazione SQLAlchemy. I costrutti DDL costruiscono su propria base DDLElement di SQLAlchemy e possono essere utilizzati da qualsiasi applicazione standalone o uno script.
- Non rompere il collo sopra l'incapacità di SQLite per ALTER cose. SQLite ha quasi nessun supporto per la tabella o colonna alterazione. Ciò è di progettazione da parte degli sviluppatori SQLite, quindi Alambicco rinuncia attuare soluzioni alternative scomode e scarsamente funzionali per questa piattaforma. Se siete seriamente di migrazioni schema, utilizzare un database che è altrettanto grave!
Documentazione e stato di Alembic è a http://packages.python.org/alembic/.
Requirements:
- Python
I commenti non trovato