2009-09-19 2 views
3

Наше приложение не собирается использовать рельсы для любой части своего конечного состояния, но миграции - это фантастический способ определить схему в моем опыте, поэтому я хотел бы использовать только один аспект рельсов.Могу ли я использовать только миграцию из рельсов для поддержки схемы базы данных?

Это разумная вещь? Если нет, есть ли там какие-либо инструменты, чем можно использовать для выполнения такой же работы? У нас есть трехступенчатая среда развертывания с тестовыми, качественными и производственными уровнями, поэтому это довольно хорошо отображает уровни, используемые рельсами. Тем не менее, мы в основном питон-магазин, поэтому питонский эквивалент будет отличным.

ответ

-1

Я бы назвал эквиваленты python Google. Миграции - это весело, и если вам нравится работать таким образом, и это работает, то, конечно, это разумно. Однако вы должны следовать рекомендациям и периодически проверять в schema.rb, а не рассчитывать на миграции для создания ваших производственных серверов.

4

У меня нет никакой конкретной альтернативы, чтобы дать вам. Но если вы все равно решите использовать миграции, вы должны знать, что вам не нужно использовать всю архитектуру рельсов только для миграции.

Пока у вас установлен active_record камень, вы можете сделать: в вашем Rakefile

require 'active_record' 
require 'yaml' 

task :default => :migrate 

В файле на том же пути:

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 

и ваши миграции в дб/migrate. Вам не нужны все активные ресурсы и все основания рельсов.