2013-11-20 8 views
11

Ho un nuovo database che sto tentando di ricreare, ma eseguendo rake db: schema: load non popola affatto la tabella schema_migrations. Il risultato di questo è che ogni migrazione è ora in sospeso. La versione dello schema in schema.rb corrisponde alla migrazione più recente e this answer indica ciò che pensavo stesse accadendo (Rails popola la tabella delle migrazioni con tutti i numeri di migrazione precedenti al nubmer di migrazione corrente), in questa particolare istanza, non sta accadendo. I miei colleghi hanno confermato che questo sta accadendo anche con i loro database, quindi è sicuramente un problema a livello di progetto. Stiamo usando SQLServer con uno schema personalizzato, sebbene l'utente db stia creando correttamente tutte le tabelle. Sono completamente perplesso. Qualche idea?rake db: schema: carica non popolando la tabella schema_migrations

+0

John, il tuo commento sulla risposta non accettata è stato molto utile per me. Penso che sarebbe bello rispondere alla tua domanda e accettare la risposta. –

risposta

14

Per D. Patrick, rispondendo alla mia domanda:

Così il risultato finale fu che un altro sviluppatore aveva installato activerecord-nulldb-adapter, quali patch scimmia ActiveRecord::Schema.define e non correre initialize_schema_migrations_table() o assume_migrated_up_version(). Ho disinstallato la gemma, ho eseguito il mio db:schema:load bene.

2

tenta di eseguire il comando con il flag di traccia

rake db: schema: carico --trace

Entro la fine del log si dovrebbe vedere le linee

-- initialize_schema_migrations_table() 
    -> 0.0045s 

Inoltre, vale la pena verificare che la tabella generate sia corretta dallo schema e dalla tabella schema_migrations correttamente.

+0

Strano, non è così. Nell'ambiente dev queste righe sono le ultime prodotte: '- initialize_schema_migrations_table() -> 0.0034s - assume_migrated_upto_version (20131111151423, ["/Users/---/code/---/db/migrate "]) ' -> 2.1161s L'ambiente di test non esegue queste due istruzioni. Non sono davvero sicuro di cosa li sopprimerebbe. –

+1

Quindi il risultato finale era che un altro sviluppatore aveva installato activerecord-nulldb-adapter, che utilizza patch di scimmia ActiveRecord :: Schema.define e non esegue initialize_schema_migrations_table() o assume_migrated_up_version(). –