namespace :odb do
task :config do if !ENV['ODB_TEST'] migrations_path = if ENV['odb_migrations_path'] migrations_path = ENV['odb_migrations_path'] elsif defined?(Rails) Rails.root.to_s + '/db/orientdb/migrate' else raise "No migrations path defined" end OrientdbSchemaMigrator::Migrator.migrations_path = migrations_path end end def with_connection &block config = OrientdbSchemaMigrator.get_config OrientdbSchemaMigrator::Migrator.connect_to_db(config['db'], config['user'], config['password']) begin yield ensure OrientdbSchemaMigrator::Migrator.disconnect end end desc "Migrate" task :migrate => [:config] do with_connection do OrientdbSchemaMigrator::Migrator.migrate(ENV['schema_version']) end end desc "Rollback one migration" task :rollback => [:config] do with_connection do OrientdbSchemaMigrator::Migrator.rollback(ENV['schema_version']) end end desc "Generate a new migration" task :generate_migration => [:config] do OrientdbSchemaMigrator::MigrationGenerator.generate(ENV['migration_name'], OrientdbSchemaMigrator::Migrator.migrations_path) end
end