2009-09-19 4 views
3

Notre application n'utilisera pas de rails pour n'importe quelle partie de son état final, mais les migrations sont un moyen fantastique de définir le schéma dans mon expérience, donc je voudrais utiliser seulement cet aspect des rails.Puis-je utiliser uniquement des migrations à partir de rails pour maintenir un schéma de base de données?

Est-ce une chose raisonnable à faire? Si non, y a-t-il des outils qui peuvent être utilisés pour effectuer le même genre de travail? Nous disposons d'un environnement de déploiement en trois étapes, avec des niveaux de test, d'assurance qualité et de production, ce qui permet d'établir une bonne correspondance avec les niveaux utilisés par les rails. Cependant, nous sommes un magasin python principalement, donc un équivalent pythonien serait astucieux.

Répondre

-1

Je voudrais google les équivalents de python. Les migrations sont amusantes, et si vous aimez travailler de cette façon et que cela fonctionne, alors c'est raisonnable. Vous devriez cependant suivre le conseil et vérifier périodiquement schema.rb, plutôt que de compter sur les migrations pour construire vos serveurs de production.

4

Je n'ai pas d'alternative particulière à vous donner. Mais si vous décidez d'utiliser les migrations de toute façon, vous devez savoir que vous n'avez pas besoin d'utiliser toute l'architecture des rails uniquement pour les migrations.

Tant que vous avez la pierre précieuse de active_record installé, vous pouvez faire: dans votre Rakefile

require 'active_record' 
require 'yaml' 

task :default => :migrate 

Dans un fichier sur le même chemin:

desc "Migrate the database through scripts in db/migrate. Target specific version with VERSION=x" 
task :migrate => :environment do 
    ActiveRecord::Migrator.migrate('db/migrate', ENV["VERSION"] ? ENV["VERSION"].to_i : nil) 
end 

task :environment do 
    ActiveRecord::Base.establish_connection(YAML::load(File.open('database.yml'))) 
    ActiveRecord::Base.logger = Logger.new(File.open('database.log', 'a')) 
end 

Et vos migrations dans la db/migrate le dossier. Vous n'avez pas besoin de toute la base activeesources et de tous les rails.

Questions connexes