2010-05-13 4 views
1

J'ai un site Ruby on Rails qui n'était nécessaire que pendant une courte période pendant laquelle les utilisateurs ont ajouté divers objets à une base de données mySQL, les commentant, s'associant avec eux, etc. etc etc La question est la suivante: le site n'est plus nécessaire avant une semaine l'année prochaine à cette heure où je vais effacer la base de données et l'utiliser à nouveau (à partir de zéro). Quelle est la meilleure façon d'archiver le site actuel afin que le contenu existant soit toujours visible, mais qu'aucun nouveau contenu ne puisse être ajouté? Par la meilleure façon, je veux dire la méthode par laquelle les ressources du système seront utilisées, le serveur sera le plus sûr, etc.Archivage d'un site Rails entier

Des suggestions?

Répondre

2

Si vous avez écrit l'application de façon standard, à savoir toutes les modifications sont effectuées par create, update ou destroy actions dans vos contrôleurs, ajoutez un before_filter à votre ApplicationController qui interdira l'accès à ces méthodes (et probablement new et edit, aussi).

Vous pouvez également consulter votre routes.rb pour voir si vous n'avez aucune autre action qui modifie vos ressources et les ajoute à votre filtre.

1

Utilisez un robot d'indexation Web et conservez-le en tant que code HTML statique.

+0

Si le site utilise l'authentification, les droits d'accès, etc., la version statique ne les prendra pas en charge, par ex. les ressources restreintes seront accessibles à tous (ou pas du tout accessibles). – szeryf

0

Cela dépend de la complexité des associations dans votre base de données. Si c'est très simple, vous pouvez écrire un site php simple qui ne montre que le contenu de votre db (ou peut-être qu'il y a quelque chose qui le fait). C'est la solution la moins chère (par le biais de ressources de mémoire et de CPU), mais peut avoir besoin de travail pour aboutir.

Si vous ne voulez pas travailler sur votre application, le moyen le plus rapide (par rapport à votre temps) est d'utiliser l'approche @szeryf. Il suffit d'ajouter dans tous les itinéraires :only => [:show, :index].

0

Si les vues ne sont pas communes pour l'édition et l'affichage des données, vous pouvez les séparer avec différents contrôleurs, un pour la visualisation, l'autre pour les opérations CRUD. Ensuite, il est question d'activer et de désactiver le second, en utilisant éventuellement le routage.

0

Pourquoi ne pas simplement supprimer créer, insérer et supprimer des privilèges de l'utilisateur de base de données?

Questions connexes