La meilleure façon de créer une nouvelle table dans Sqlite en utilisant Ruby on Rails 2

StackOverflow https://stackoverflow.com/questions/200178

  •  03-07-2019
  •  | 
  •  

Question

Quel est donc le meilleur moyen de créer de nouvelles tables dans une base de données Sqlite dans Rails 2. J'ai créé la base de données à l'aide de la commande rake db: migrate. Donc, devrais-je écrire des scripts SQL individuels pour créer une base de données ou utiliser rake d’une manière ou d’une autre. Je n'ai pas besoin d'échafaudage.

Était-ce utile?

La solution

Utilisez essentiellement les migrations.

Vous trouverez des informations utiles sur l'utilisation des migrations à l'adresse http: //wiki.rubyonrails. org / rails / pages / arrangementmigrations et http://wiki.rubyonrails.org/ rails / pages / UsingMigrations . Une bonne feuille de calcul que j'utilise est également disponible à l'adresse http://dizzy.co.uk/ ruby_on_rails / cheatsheets / rails-migrations .

En gros, les migrations utilisent le code ruby ??pour créer vos tables de base de données à votre place. Il est beaucoup plus facile (du moins à mon avis) d'utiliser un code ruby ??agréable pour le faire plutôt que le langage DDL SQL - il effectue également diverses tâches automatiquement pour vous (comme l'ajout de champs id à toutes vos tables en tant que rails a besoin). Vous pouvez ensuite utiliser des tâches rake pour appliquer les migrations à votre base de données. L’autre avantage majeur que vous offrent les migrations est qu’elles sont réversibles. Ainsi, votre base de données est versionnée et vous pouvez facilement passer d’une version à l’autre.

Autres conseils

Essayez d'éviter d'écrire des scripts de table CREATE / ALTER et utilisez plutôt les migrations ActiveRecord. Quelques raisons me viennent à l’esprit:

  • Portabilité: il est beaucoup plus facile de laisser AR traitent avec la saveur multi-plateforme différences
  • Changer de contrôle: votre les migrations peuvent gérer les changements dans les deux directions avec la VERSION = option, quelque chose qui n'est pas facile à faire avec SQL
  • C'est la manière de Rails: suivez les conventions Rails à moins que vous avez une raison impérieuse de ne pas fais le
  • Simplicité: vous n’avez pas à vous soucier des colonnes id et timestamp lorsque vous utilisez des migrations, ce qui vous évite d’avoir à les mémoriser si vous travaillez en SQL

Si vous n'utilisez pas d'échafaudage, vous devez utiliser script / générer la migration pour créer un fichier de migration pour chaque table. Il n'est pas nécessaire d'utiliser des scripts SQL. Après avoir créé certaines migrations, vous pouvez les appliquer à votre base de données à l’aide de rake db: migrate.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top