Pregunta

¿Existe alguna herramienta de migración de bases de datos fácil de instalar/usar (en Unix) como Rails Migrations?Realmente me gusta la idea, pero instalar Ruby/rails únicamente para administrar las migraciones de mi base de datos parece excesivo.

¿Fue útil?

Solución

Simplemente use ActiveRecord y un Rakefile simple.Por ejemplo, si pones tus migraciones en un db/migrate directorio y tener un database.yml archivo que tiene su configuración de base de datos, este simple Rakefile debería funcionar:

Archivo de rastrillo:

require 'active_record'
require 'yaml'

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(STDOUT)
end

base de datos.yml:

adapter: mysql
encoding: utf8
database: test_database
username: root
password:
host: localhost

Después podrás correr rake migrate y tenga todas las bondades de la migración sin una aplicación de rieles circundante.

Alternativamente, tengo un conjunto de scripts bash que realizan una función muy similar a las migraciones de ActiveRecord, pero solo funcionan con Oracle.Solía ​​usarlos antes de cambiarme a Ruby y Rails.Son algo complicados y no les brindo soporte, pero si estás interesado, no dudes en contactarme.

Otros consejos

También hay un proyecto llamado Migraciones de bases de datos Java.Para obtener el código consulte el Página de Google Code para el proyecto.

Veo que este tema es muy antiguo, pero colaboraré con futuros usuarios de Google.

Realmente me gusta usar SQLAlchemy de Python y SQLAlchemy-Migrar para administrar bases de datos necesito control de versiones, si no quieres seguir la ruta ActiveRecord::Migrate.

No lo he hecho personalmente, pero debería ser posible usar ActiveRecord::Migration sin ninguna de las otras cosas de Rails.Configurar la ruta de carga correctamente sería la parte difícil, pero en realidad todo lo que necesitas es el rake tareas y el db/migrate directorio más cualquier gema Rails de la que dependan, probablemente activerecord, actviesupport y tal vez un par más como railties.Lo probaría y vería qué clases faltan y las agregaría.

En una empresa anterior creamos una herramienta que hacía esencialmente lo que hace ActiveRecord::Migration, excepto que estaba escrita en Java como un complemento de Maven.Todo lo que hizo fue ensamblar bloques de texto de scripts SQL.Solo necesita ser inteligente al ordenar los nombres de archivos y saber cómo actualizar una tabla de versiones.

Este proyecto está diseñado para permitir que se ejecuten migraciones de registros activos sin instalar Rails:

https://github.com/bretweinraub/rails-free-DB-Migrate

Instálalo (git clone it) y úsalo como base para tu proyecto.

Aquí hay una herramienta para hacer esto escrita en Haskell:

http://hackage.haskell.org/package/dbmigrations

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top