Voglio una migrazione per creare un clone di una tabella esistente semplicemente suffisso il nome, inclusi tutti gli indici della tabella originale.Come si può clonare una tabella di database tramite la migrazione di Rails?
Quindi c'è una tabella "istantanee" e voglio creare "snapshots_temp" come una copia esatta della tabella (non i dati, solo lo schema della tabella, ma compresi gli indici).
Potrei semplicemente copiare e incollare il blocco fuori dal file schema.rb e rinominarlo manualmente.
Ma non sono sicuro quando questa migrazione verrà applicata se la definizione da schema.rb sarà ancora accurata. Un altro sviluppatore potrebbe aver cambiato la tabella e non voglio dover aggiornare il mio script di migrazione.
Quindi, come posso ottenere lo schema della tabella in fase di esecuzione? In sostanza, in che modo "rastrella schema: dump" esegue il reverse engineering della tabella in modo da poter fare lo stesso nella mia migrazione? (ma cambiando il nome della tabella).
Buona chiamata. "Usa LIKE per creare una tabella vuota in base alla definizione di un'altra tabella, inclusi gli attributi di colonna e gli indici definiti nella tabella originale" http://dev.mysql.com/doc/refman/5.1/en/create-table. html –
Funziona con MySQL (e possibilmente con la maggior parte dei database) ma se usi Sqlite, non funzionerà. Mi sono imbattuto in questo problema nell'ambiente di sviluppo. La produzione va bene (è MySQL). – MiniQuark
Grazie fantastici. Si noti che la tabella copiata otterrà gli indici, ma non le chiavi esterne. Dovrai ricreare quelli separatamente. –