148 votes

Perdu mon schema.rb ! Il peut être régénéré ?

En raison de certains problèmes liés au déploiement, je me suis arrêté suivi schema.rb dans git. En quelque sorte j’ai farci cela vers le haut et quelque part le long du chemin, que mon fichier schema.rb a disparu.

Est-il possible de régénérer des schema.rb de la base de données ou des migrations ? Je préfère ne pas perdre les données existantes.

257voto

mguymon Points 4527

Si vous exécutez un `` il répertoriera toutes les tâches de râteau possible pour votre projet de Rails. L’un d’eux est db:schema:dump qui recréera le schema.rb pour l’application Rails.

62voto

gamov Points 968

Attention,

db:schema:dump râteau

va vider le schéma actuel de la DB FROM la DB. Cela signifie que si vous avez fait des modifications à vos migrations, ils ne seront pas figurer dans le fichier schema.rb qui n’est pas ce que vous voulez l’OMI.

Si vous souhaitez re-créer le schéma de la migration, procédez comme suit :

12voto

pschuegr Points 828
<pre><code></code><p>Je pense que c’est toujours valable en 3 Rails - il régénère les schema.rb de la base de données.</p></pre>

7voto

Colin Summers Points 48

Directement à partir de la schema.rb dossier lui-même :

Si vous avez besoin créer la base de données d’application sur un autre système, vous devez utiliser db:schema:load, ne pas en cours d’exécution toutes les migrations à partir de zéro. Ce dernier est une approche erronée et non viable (les migrations plus vous allez accumuler, lent, ça va fonctionner et la plus grande probabilité pour des questions).

Alors ne fais ne pas la suggestion du rake db : migrer, qui a été proposé au plus bas (en ce moment) évalué la réponse.

6voto

thinkswan Points 3185

Si vous régénérez `` localement, vous devriez être bien. Il détient tout simplement une représentation de la structure de vos tables de base de données. Les données elles-mêmes ne figure pas dans ce fichier.

Pour régénérer votre `` fichier, exécutez :

Puis tout simplement valider le nouveau `` fichier et vous devriez être en bonne forme !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X