Lorsque je déploie automatiquement une application qui fonctionne correctement dans l'environnement local, une erreur se produit dans l'environnement de production et la vue ne s'affiche pas Quand il s'agit de cela, je ne sais pas quoi faire et je me sens désespéré. .. .. Essayez-le comme l'une des solutions dans un tel cas.
Connectez-vous à ec2, saisissez manuellement les commandes et supprimez et créez uniquement la base de données. Après cela, la page peut être affichée en utilisant le déploiement automatique de Capistrano pour migrer.
Après vous être connecté à ec2, exécutez d'abord le code suivant pour supprimer et créer la base de données dans l'environnement de production.
cd /var/www/<%Nom de l'application%>
cd current
rails db:drop RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1
rails db:create RAILS_ENV=production
Après cela, redémarrez unicorn et mysql. (Long code à droite)
ps aux |grep unic
//Résultat de l'exécution (le nombre est différent)
ec2-user 24327 0.1 11.5 504288 116388 ? Sl 22:46 0:02 unicorn master -c /var/www/<%Nom de l'application%>/current/config/unicorn.rb -E production -D
ec2-user 24334 0.0 12.3 651728 124368 ? Sl 22:46 0:00 unicorn worker[0] -c /var/www/<%Nom de l'application%>/current/config/unicorn.rb -E production -D
kill -9 24327 //Entrez le numéro de processus 24327 pour le maître
sudo service mysqld restart //Redémarrez mysql
Revenez enfin au terminal local et déployez automatiquement `La migration est terminée à ce stade. ''
bundle exec cap production deploy
accompli!
Je n'ai effectué aucune opération spéciale, mais le but est d'utiliser la fonction de migration de capistrano. Je ne sais pas pourquoi cela a fonctionné, mais il semble que nous devrons encore essayer diverses erreurs dans l'environnement de production. .. ..
Recommended Posts