Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A gem to use Rails Database Migrations in non Rails projects
Ruby

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
tasks
vendor/migration_helpers
.gitignore
README.markdown
Rakefile
VERSION
database.yml
standalone_migrations.gemspec

README.markdown

Rails migrations in non-Rails (and non Ruby) projects.

USAGE

Install Ruby, RubyGems and a ruby-database driver (e.g. gem install mysql) then: sudo gem install standalone_migrations

Add to Rakefile in your projects base directory: begin require 'standalone_migrations' StandaloneMigrations.tasks rescue LoadError => e puts "gem install standalone_migrations to get db:migrate:* tasks! (Error: #{e})" end

Add database configuration to config/database.yml in your projects base directory e.g.: development: adapter: mysql encoding: utf8 reconnect: false database: somedatabase_dev pool: 5 username: root password: socket: /var/run/mysqld/mysqld.sock

test:
  ...something similar...

To create a new database migration:

rake db:new_migration name=FooBarMigration
edit migrations/20081220234130_foo_bar_migration.rb

... and fill in the up and down migrations Cheatsheet.

If you're lazy and want to just execute raw SQL:

def self.up
  execute "insert into foo values (123,'something');"
end

def self.down
  execute "delete from foo where field='something';"
end

To apply your newest migration:

rake db:migrate

To migrate to a specific version (for example to rollback)

rake db:migrate VERSION=20081220234130

To migrate a specific database (for example your "testing" database)

rake db:migrate RAILS_ENV=test

To execute a specific up/down of one single migration

rake db:migrate:up VERSION=20081220234130

Contributors

This work is based on Lincoln Stoll's blog post and David Welton's post.

Something went wrong with that request. Please try again.