Our application is not likely to use rails for just about any a part of its final condition, but migrations make the perfect method to define schema in my opinion, so Let me use just that certain facet of rails.

Is an acceptable factor to complete? Otherwise, what are the tools available than may be used to carry out the same kind of job? There exists a three-stage deployment atmosphere, with test, QA, and production tiers, which means this maps pretty much towards the tiers that rails uses. However, we are a python shop mainly, so a pythonic equivalent could be great.

I have no particular alternative to provide you with. But when you choose to make use of the migrations anyway, you must understand that you don't want to use the entire rails architecture just for migrations.

As lengthy as you've the active_record jewel installed, that you can do : inside your Rakefile

require 'active_record'
require 'yaml'

task :default => :migrate

Inside a file on a single path :

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

As well as your migrations within the db/migrate folder. You don't need the entire activeresources and every one of rails base.

I'd google the python counterparts. Migrations are enjoyable, and when you want working this way and delay pills work, then obviously it's reasonable. You need to stick to the advice however and periodically sign in schema.rb, instead of relying on migrations to construct your production servers.

I understand you're a Python shop but there's a PHP port from the ActiveRecord Migrations package that is very stand alone.

http://code.google.com/p/ruckusing/