2010-06-01 14 views
3

Je sais que cela peut sembler trivial à certains, d'autres ne verront pas le point, mais - pour moi, ce serait génial:Rails Under Construction page

Je suis en train de travailler sur la façon de commettre rapidement et efficacement les mises à jour à mon application Rails, passez à une page de style sous construction pendant que je redémarre l'application rails, puis testez les changements, puis quand je suis content, revenez à la version publique en direct.

En ce moment, je suis le schéma suivant:

  • 1, apporter des modifications à l'application
  • 2, commettras en utilisant les versions App pour Mac BeanstalkApp
  • 3, deploy révision de BeanstalkApp au serveur
  • 4, connectez-vous au serveur et redémarrez apache
  • 5, attendez quelques secondes, puis commencer à vérifier que tout est le double A-OK

Si cela aide, j'utilise Passenger sur une image VPS Turnkey Rails.

Merci à l'avance pour tout conseil, etc.

Merci,

Danny

Répondre

4

Vous avez quelques options:

  • Créez un sous-domaine pour 'testing' et la déployer à votre serveur de production et quand il est vérifié, vous pouvez le pousser vers votre emplacement de code de production.

Vous devez pouvoir ajouter un sous-domaine à votre enregistrement DNS pour pointer vers la même adresse IP que votre serveur de production principal. Vous devrez ensuite ajouter un nouveau VirtualHost avec ServerName subdomain.host.com et DocumentRoot /data/host.com/testing/public afin qu'il charge ce code. En utilisant Passenger, créez une application de sous-dossier à l'aide de Passenger.

J'ai personnellement fait les deux approches. Je préfère l'approche n ° 1, mais c'est la préférence personnelle et le niveau d'accès que vous avez à vos hôtes.

+0

Merci, Matt. Comme c'est un serveur VPS, j'ai le contrôle complet - pas toujours une bonne chose! Si je suis allé pour la première option, créé un sous-domaine pour les tests, etc. suggéreriez-vous d'utiliser la base de données publique/en direct? La plupart des problèmes auxquels je fais face sont pendant les migrations etc. donc je veux essayer et limiter le temps d'arrêt de l'application pendant que je "vérifie" des choses. – dannymcc

+0

Comme vous aurez probablement besoin de migrer, je suggérerais une base de données 'staging'. Vous pouvez utiliser une multitude d'outils pour dupliquer votre base de données (en fonction de la taille du cours) à cette fin. Théoriquement, la mise en scène ne doit jamais être antérieure ou égale à la production (en termes de structure). Si vous avez besoin de synchronisations fréquentes avec la production c'est un tout autre projet :). Il est toujours préférable d'avoir une base de données séparée sur laquelle vous testez et une fois que tout est bon pour aller vous pousser à prod. (par la pression j'entends relancer vos migrations). –

+0

Actuellement, j'ai une base de données locale sqlite3 et un serveur intermédiaire (lire: production) avec la base de données mysql. En raison des différents types de base de données, je n'ai pas été en mesure de reproduire le contenu. Suis-je en train de lire correctement que dans l'idéal je devrais avoir des configurations absolument identiques de sorte que si je lance rake db: migrer sur la mise en scène cela fonctionnerait certainement sur celui de production? – dannymcc