Rails: ce n'schéma.rb faire?
J'ai l'habitude de penser que la db/schema.rb
dans un Rails
projet stocké le schéma de base de données, de sorte que ActiveRecord
peut savoir ce que la table/colonne, il a.
Mais plus tôt, j'ai étonnamment remarqué que mon projet s'exécute normalement après je supprimer db/schema.rb
!
Donc, puisque le Rails
peut fonctionner sans elle, ce ne schema.rb
vraiment?
Vous devez vous connecter pour publier un commentaire.
La
schema.rb
sert essentiellement à deux fins:Il des documents de la finale de l'état actuel de la base de données de schéma. Souvent, surtout quand vous avez plus d'un couple de migrations, il est difficile de déduire le schéma juste de les migrations seul. Avec un présent
schema.rb
, vous pouvez juste jeter un coup d'oeil. ActiveRecord lui-même sera en effet de ne pas l'utiliser. Il permettra de connaître le fonctionnement de la base de données en cours d'exécution, que ce est beaucoup plus sûr que d'attendre les utilisateurs à garder leschema.rb
up-to-date. Cependant, pour éviter toute confusion de vos développeurs, vous devriez toujours maintenir un fichier qui est up-to-date avec votre migrations.Il est utilisé par les tests pour remplir le schéma de base de données. En tant que tel un
rake db:schema:dump
est souvent exécuté dans le cadre de la commissiontest:prepare
exécuter. Le but est que le schéma de la base de données de test correspond exactement à l'évolution actuelle de la base de données.schema.rb
jusqu'à date, depuis le commentaire sur le même fichier d'expliquer: Notez que ce schéma.rb définition est la source officielle de votre schéma de base de données.shared-models
), qui chaque application en dépendent. Nous avons mis nos migrations dansshared-models
, mais de l'exécuter dans l'une des applications, dire app1. Puis leschema.rb
pour app1 est mis à jour automatiquement lors de la migration, maisschema.rb
des fichiers dans d'autres applications ne sont pas mis à jour. Vous avez encore besoin de copier la mise à jourschema.rb
fichier de app1 à d'autres applications, de sorte qu'ils sont tous à jourRails de Documentation /6.1 Quels sont les Fichiers de Schéma pour?
Rails de documents avez-vous couvert.