Il modo migliore per creare una nuova tabella in Sqlite utilizzando Ruby on Rails 2
-
03-07-2019 - |
Domanda
Quindi qual è il modo migliore per creare nuove tabelle in un database Sqlite in Rails 2. Ho creato il database usando il comando rake db: migrate. Quindi dovrei scrivere singoli script sql per creare un database o usare il rake in qualche modo. Non ho bisogno di impalcature.
Soluzione
Utilizza fondamentalmente le migrazioni.
Alcuni utili aiuti su come utilizzare le migrazioni sono disponibili all'indirizzo http: //wiki.rubyonrails. org / rails / pages / knowledgemigrations e http://wiki.rubyonrails.org/ rails / pages / UsingMigrations . Un buon cheatsheet che uso è disponibile anche su http://dizzy.co.uk/ ruby_on_rails / cheatsheets / rotaie-migrazioni .
Fondamentalmente le migrazioni usano il codice ruby ??per creare le tabelle del database per te. È molto più facile (almeno secondo me) usare un bel codice ruby ??per farlo piuttosto che SQL DDL - fa anche varie cose automaticamente per te (come l'aggiunta di campi id
a tutte le tue tabelle come rotaie richiede). È quindi possibile utilizzare le attività di rake per applicare effettivamente le migrazioni al database. L'altro grande vantaggio che le migrazioni ti danno è che sono reversibili, quindi il tuo database è aggiornato e puoi facilmente passare da una versione all'altra.
Altri suggerimenti
Cerca di evitare di scrivere gli script di tabella CREATE / ALTER e usa invece le migrazioni ActiveRecord. Alcuni motivi vengono in mente:
- Portabilità: è molto più facile da lasciare Affare AR con sapore multipiattaforma differenze
- Cambia controllo: tuo le migrazioni possono gestire le modifiche in entrambe le direzioni con la VERSIONE = opzione, qualcosa che non è facile fare con SQL
- È il modo di Rails: seguire le convenzioni di Rails a meno che hai un motivo convincente per non farlo fallo
- Semplicità: non devi preoccuparti delle colonne id e timestamp quando usi le migrazioni, il che ti evita di doverle ricordare se lavori in SQL
Se non si utilizza l'impalcatura, è necessario utilizzare script / generare migrazione
per creare un file di migrazione per ogni tabella. Non è necessario utilizzare gli script sql. Dopo aver creato alcune migrazioni puoi applicarle al tuo database usando rake db: migrate.