La meilleure façon de créer une nouvelle table dans Sqlite en utilisant Ruby on Rails 2
-
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.
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.