2017-10-18 22 views
0

J'ai changé les rails ligne Gemfile de mon application à partir de:Mise à niveau mon application à Rails 5. Je ne sais pas quoi faire d'erreurs sur paquet d'installation

gem 'rails', '4.2.3' 

Pour:

gem 'rails', '5.0.0' 

par les rails documentation sur le processus de mise à niveau. J'ai ensuite couru bundle update rails. Je me suis alors frappé un barrage routier:

Bundler could not find compatible versions for gem "railties": 
    In Gemfile: 
dotenv-rails (= 2.0.2) was resolved to 2.0.2, which depends on 
    railties (~> 4.0) 

rails (= 5.0.0) was resolved to 5.0.0, which depends on 
    railties (= 5.0.0) 

Si je comprends bien, railties fait partie des rails? Donc cela semblait bizarre. Pour l'humour l'erreur, j'ai ajouté:

gem 'railties', '5.0.0' 

Puis bundle update railties rendements:

Bundler could not find compatible versions for gem "activerecord": 
    In snapshot (Gemfile.lock): 
    activerecord (= 4.2.3) 

    In Gemfile: 
    annotate was resolved to 2.7.2, which depends on 
     activerecord (< 6.0, >= 3.2) 

rails (= 5.0.0) was resolved to 5.0.0, which depends on 
    activerecord (= 5.0.0) 

-je suivre le rabbithole et d'ajouter:

gem 'activerecord', '5.0.0' 

bundle update activerecord rendements ...

You have requested: 
    railties = 5.0.0 

The bundle currently has railties locked at 4.2.3. 
Try running `bundle update railties` 

T Il y a une raison pour laquelle je mets à jour le dossier actif pour que je puisse mettre à jour les rails ... ça me fait tourner en rond.

Si je cours bundle update avec mon plein Gemfile maintenant (activerecord et railties ajouté):

Bundler could not find compatible versions for gem "railties": 
    In Gemfile: 
    devise (~> 3.5.6) was resolved to 3.5.6, which depends on 
     railties (< 5, >= 3.2.6) 

    rails (= 5.0.0) was resolved to 5.0.0, which depends on 
     railties (= 5.0.0) 

    rails (= 5.0.0) was resolved to 5.0.0, which depends on 
     railties (= 5.0.0) 

Je dois admettre que je ne suis pas un pro au total à ce processus. Y a-t-il quelque chose qui me manque? Est-ce que quelqu'un a vécu quelque chose comme ça pendant le processus de mise à niveau?

+0

Avez-vous essayé de supprimer 'Gemfile.lock' et de relancer' bundle'? Parfois, ça fait l'affaire –

+0

@NickM Je l'ai juste essayé. Malheureusement, je suis une fois de plus confronté à cette dernière erreur (celle qui parle de concevoir). – PinkElephantsOnParade

+0

Ne supprimez pas le 'Gemfile.lock'! Vous perdrez les avantages du versioning sémantique, en sautant aux versions que vous pourriez ne pas être prêtes. – Leito

Répondre

1

Première erreur signifie bundle update dotenv-rails, si vous restreignez la version assurez-vous qu'il est à celui qui prend en charge railties 5. Sur la base de vos mises à jour, il semble que vous êtes dans un ancien aussi concevoir. Donc, essayez de mettre à jour les deux en même temps:

bundle update dotenv-rails devise, assurez-vous de lire les notes de mise à jour dans dotenv-rails et de concevoir et de modifier tout ce qui doit être modifié dans votre code.

Mon conseil: allez à la version la plus proche qui supporte les rails 5 en premier, donc pour les versions 4.0.3 et dotenv-rails 2.1.2. Définissez ces restrictions dans votre Gemfile avant de bundle update. Ce n'est qu'après avoir mis à jour ces gemmes que vous avez réussi à mettre à jour les rails. Ajouter toute autre gemme qui vient à ce même processus.