2015-05-21 10 views
7

Sto sviluppando una piccola applicazione di registrazione per una classe di amici zumba, utilizzando Flask, SQLAlchemy e Flask-migrate (alambicco) per gestire l'aggiornamento di db. Ho scelto SQlite perché l'applicazione deve essere autonoma e può essere eseguita localmente su un laptop senza accesso a Internet e SQLite non richiede l'installazione di un servizio o altro, il che è un must.Sqlite mancanza di supporto ALTER, migrazione Alembic fallendo a causa di questo. Soluzioni?

Affrontare la mancanza di supporto SQLite della tabella ALTER non è stato un problema durante lo sviluppo iniziale in quanto ho semplicemente distrutto, ricreato il DB quando si è verificato tale problema. Ma ora che il mio amico sta usando l'applicazione, sto affrontando un problema.

A seguito di una richiesta di funzionalità una tabella deve essere modificata e ancora una volta ottenere il temuto " 'Nessun supporto per ALTER dei vincoli in dialetto SQLite'. Prevedo che questo problema sarà probabilmente sorgere anche in futuro.

Come posso affrontare questo problema? Sono praticamente un principiante quando si tratta di gestire il database. Ho letto che un modo per affrontarlo è creare una nuova tabella, creare il nuovo vincolo e copiare i dati e rinominare il tabella, ma non ho idea di come implementarlo nello script alambicco

risposta

8

È possibile impostare una variabile (render_as_batch=True) nel file env.py creato con la richiesta iniziale

context.configure(
    connection=connection, 
    target_metadata=target_metadata, 
    render_as_batch=True 
) 

Richiede alambicco> 0.7.0

Ciò consente la generazione di migrazioni di funzionamento in batch, ossia crea una nuova tabella con il vincolo, copia i dati esistenti sopra, e rimuove la vecchia tabella. Vedi http://alembic.zzzcomputing.com/en/latest/batch.html#batch-mode-with-autogenerate

Se si verificano ancora problemi, si consiglia - c'è ancora sfumature con sqlite, ad es. http://alembic.zzzcomputing.com/en/latest/batch.html#dropping-unnamed-or-named-foreign-key-constraints

+0

Grazie per i riferimenti. I link sopra sono ora rotti ma la pagina è disponibile all'indirizzo http://alembic.zzzcomputing.com/en/latest/batch.html – xolox

+0

grazie per il link aggiornato @xolox Mi piacerebbe assicurarmi che sia prontamente disponibile per chiunque altrimenti con questa domanda è consuetudine per voi modificare la risposta originale con il collegamento aggiornato? –

Problemi correlati