Могу ли я использовать только миграции с рельсов для поддержки схемы базы данных? - PullRequest
3 голосов
/ 19 сентября 2009

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

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

Ответы [ 3 ]

4 голосов
/ 19 сентября 2009

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

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

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

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

0 голосов
/ 19 сентября 2009

Я знаю, что вы магазин Python, но есть порт PHP пакета ActiveRecord Migrations, который очень автономен.

https://github.com/ruckus/ruckusing-migrations

0 голосов
/ 19 сентября 2009

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

...