2015-10-28 21 views
8

Nella mia applicazione django (django 1.8) sto usando due database, uno 'default' che è MySQL e un altro che è un database di sola lettura schemaless. Ho due modelli che accedono questo database, e mi piacerebbe di escludere questi due modelli in modo permanente dai dati e migrazioni schema:django: escludere i modelli dalle migrazioni

  • makemigrations dovrebbe mai rilevare eventuali modifiche, e creare per loro migrazioni
  • migrate dovrebbe mai lamentarsi migrazioni mancante per tale applicazione

Finora, ho provato cose diverse, il tutto senza alcun successo:

  • utilizzato l'opzione di Meta managed=False su entrambi i modelli
  • aggiunto un metodo allow_migrate al mio router che restituisce False per entrambi i modelli

Qualcuno ha un esempio di come questo scenario si può ottenere? Grazie per il tuo aiuto!

+10

solito 'gestito = FALSE è il modo. Qual è il problema con esso? – Ivan

+0

include la parte di codice che hai fatto anche perché @Ivan suggerisce che è il modo in cui –

+0

credo che questo post risponda alla tua domanda: http://stackoverflow.com/questions/33820715/how-to-disable-migration-from-one -model-of-an-app-in-django –

risposta

1

Finora, ho provato cose diverse, il tutto senza alcun successo:

  • utilizzata l'opzione Meta = False gestito su entrambi i modelli

Tale facoltà (il managed = False attributo sulle meta opzioni del modello) sembra soddisfare i requisiti.

In caso contrario, è necessario espandere la domanda per dire esattamente quale è la particolarità del proprio modello che lo managed = False non esegue il lavoro.

0

Ho pensato, ho un problema con le makemigrations. Finge di effettuare la migrazione sul modello managed = False, ma nessun codice SQL generato per questo modello

Ecco il mio esempio, il modello Smdocumets non gestito e nessun codice SQL è stato generato.

makemigrations pitone manage.py

Migrations for 'monitor': 
    monitor\migrations\0005_auto_20171102_1125.py 
    - Create model Smdocuments 
    - Add field sid to db 
    - Alter field name on db 

pitone manage.py Monitor sqlmigrate 0005

BEGIN; 
-- 
-- Create model Smdocuments 
-- 
-- 
-- Add field sid to db 
-- 
ALTER TABLE "monitor_db" RENAME TO "monitor_db__old"; 
... 
Problemi correlati