2012-03-29 9 views
6

Utilizzando Rails 3.2.2 e ruby 1.9.3dev e MySQLgenerare modelli da tabelle esistenti utilizzando Rails 3

Sono nuovo di Ruby e Rails. Abbiamo un database esistente con un paio di centinaia di tabelle. Vorremmo provare i binari per vedere se sarebbe un cambiamento positivo da PHP & ZendFramework.

La migrazione dei dati in un altro database non è un'opzione per noi perché abbiamo diverse altre applicazioni che attualmente utilizzano questo database. Volevamo "allegare" un progetto di binari al database esistente.

La parte che sto cercando è la generazione di tutti i modelli dal nostro database esistente.

Ho visto un paio di post precedenti che parlano di alcune tecniche automatizzate incluso Magic Model Generator. Mentre altri hanno parlato, non c'è modo di farlo, o semplicemente li hai creati tutti manualmente.

non ero riuscita a generare modelli con Magic modello Generator (forse Rails 2 solo?)

Molto tempo fa, quando siamo passati a ZendFramework, ho scritto un breve script per analizzare il database e generare tutti i file del modello per noi. Sembrerebbe che questo sarebbe uno scenario un po 'comune.

Nota: Utilizziamo ID anziché id e molti hanno molte relazioni foreign_key.

Quindi volevo chiedere alla community qual è il modo migliore (modo/pratica) per gestirlo?

risposta

2

Non è poi così difficile, vuole solo un po 'più di configurazione. Ecco un modello base per un modello:

class YourIdealModelName < ActiveRecord::Base 
    self.table_name = `actual_table_name` 
    self.primary_key = `ID` 

    belongs_to :other_ideal_model, 
    :foreign_key => 'foreign_key_on_other_table' 

    has_many :some_other_ideal_models, 
    :foreign_key => 'foreign_key_on_this_table', 
    :primary_key => 'primary_key_on_other_table' 
end 
+0

Grazie per il modello, questo era in realtà il percorso che stavo considerando. Tuttavia, ho pensato che ci sarebbe stato uno strumento che potrebbe farlo già. –

+0

Invece di un generatore di modelli magici, puoi provare i modelli magici. Non genererà i file del modello ma li avrai disponibili nella tua app e l'ho usato con successo in un'app rails 3. –

+0

Hai un link per maggiori informazioni sui modelli magici? –

0

Non sono esperto e non ho mai fatto ricerche su questo. Senza pensare alla prima soluzione prima di tutto nella mia mente, è quello di rendere i modelli e le migrazioni in base alle rotaie in modo da non avere alcun problema, ad esempio la chiave e la denominazione di chiavi esterne. Se hai già alcuni dati dovresti migrare al binario delle rotaie.

Una ragione per farlo è che i modelli sono supponiamo di non essere solo funzioni di accesso dati, ma contengono anche la logica di business

+1

Grazie per la tua idea. La migrazione dei dati in un altro database non è un'opzione per noi perché abbiamo diverse altre applicazioni che attualmente utilizzano questo database. Volevamo "allegare" un progetto di rotaie al database. –

Problemi correlati