2008-09-19 14 views
18

¿Hay alguna herramienta de migración de base de datos fácil de instalar/usar (en Unix) como Rails Migrations? Realmente me gusta la idea, pero la instalación de Ruby/Rails puramente para administrar las migraciones de mi base de datos parece exagerada.¿Migraciones de bases de datos tipo riel?

Respuesta

22

Simplemente use ActiveRecord y un simple Rakefile. Por ejemplo, si usted pone su migraciones en un directorio db/migrate y tienen un archivo database.yml que tiene su configuración db, este sencillo Rakefile debería funcionar:

Rakefile:

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 

database.yml:

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

Después, podrás ejecutar rake migrate y tienen toda la calidad de migración sin surr aplicación de rieles

Como alternativa, 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 cambiar a Ruby and Rails. Son algo complicados y no los apoyo, pero si está interesado, no dude en ponerse en contacto conmigo.

1

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 realmente todo lo que necesita son las tareas rake y el directorio db/migrate más las gemas de Rails de las que dependan, probablemente activerecord, actviesupport y tal vez un par más como railties. Lo probaría y solo vería las clases que faltan y las agregaré.

En una compañía anterior creamos una herramienta que hacía básicamente lo que ActiveRecord :: Migration hace, excepto que estaba escrito en Java como un plugin Maven. Todo lo que hizo fue ensamblar blobs de texto de scripts SQL. Solo debe ser inteligente para que los nombres de los archivos estén en orden y sepa cómo actualizar una tabla de versiones.

4

También hay un proyecto llamado Java Database Migrations. Para obtener el código echa un vistazo al Google Code page for the project.

+0

parece interesante, pero no puedo encontrar la descarga por ello? –

+0

Parece que hay al menos el repositorio de origen. Edité la respuesta original, así que es obvio sin ampliar los comentarios. Espero que ayude. – Otto

+0

"Este proyecto actualmente no tiene descargas". :( –

3

Veo que este tema es muy antiguo, pero voy a incluirlo en futuros googlers.

Me gusta mucho usar SQLAlchemy de Python y SQLAlchemy-Migrate para administrar las bases de datos que necesito para el control de versiones, si no desea ir a la ruta ActiveRecord :: Migrate.

+0

Parece interesante, gracias –

Cuestiones relacionadas