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
risposta
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.
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.
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. –
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(). –
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. –