update rails delete data column ruby-on-rails ruby database refactoring migration

ruby-on-rails - delete - rollback migration rails



Rails-like Migraciones de base de datos? (6)

¿Hay 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 la instalación de Ruby / Rails puramente para administrar las migraciones de mi base de datos parece exagerada.


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 más difícil, pero realmente todo lo que necesita son las tareas de rake y el directorio db/migrate más las gemas de Rails de las que dependan, probablemente activerecord , actviesupport y tal vez un par de otras 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 de 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.


Simplemente use ActiveRecord y un simple Rakefile. Por ejemplo, si coloca sus migraciones en un directorio db/migrate y tiene 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

Luego, podrá ejecutar rake migrate y tener todas las bondades de la migración sin una aplicación de rails 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 cambiar a Ruby and Rails. Son algo complicados y no los apoyo, pero si está interesado, no dude en ponerse en contacto conmigo.



Veo que este tema es muy antiguo, pero voy a participar de futuros googlers.

Realmente me gusta usar Python''s SQLAlchemy y SQLAlchemy-Migrate para administrar las bases de datos que necesito para el control de versiones, si no quieres ir a la ruta ActiveRecord :: Migrate.