Frage

Ist es einfach zu installieren/verwenden (unter unix) Datenbank-migration-tools, wie Rails-Migrationen?Ich mag die Idee, aber die Installation von ruby/rails rein verwalten meine Datenbank-Migrationen scheint übertrieben.

War es hilfreich?

Lösung

Verwenden Sie einfach ActiveRecord und eine einfache Rakefile.Zum Beispiel, wenn Sie Ihre Migrationen in einem db/migrate Verzeichnis und haben eine database.yml Datei, Ihre db-config, diese einfache Rakefile sollte funktionieren:

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

Datenbank.yml:

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

Danach, Sie werden in der Lage sein zu laufen rake migrate und all die migration Güte, ohne einen umgebenden rails-app.

Alternativ habe ich eine Reihe von bash-Skripten, die eine sehr ähnliche Funktion wie ActiveRecord-Migrationen, aber Sie arbeiten nur mit Oracle.Ich verwendet, um Sie vor dem Wechsel zu Ruby und Rails.Sie sind etwas kompliziert und ich bieten keine Unterstützung für Sie, aber wenn Sie interessiert sind, fühlen Sie sich frei, mich zu Kontaktieren.

Andere Tipps

Es gibt auch ein Projekt namens Java-Datenbank-Migrationen.Um den code zu erhalten der check-out die Google-Code-Seite für das Projekt.

Ich sehe dieses Thema ist wirklich alt, aber ich werde-chip für zukünftige Googler.

Ich wirklich wie die Verwendung von Python-SQLAlchemy und SQLAlchemy-Migrate zur Verwaltung von Datenbanken, die ich brauche, um die Versionskontrolle, wenn Sie nicht wollen, zu gehen die ActiveRecord::Migration route.

Ich habe nicht persönlich getan, aber es sollte möglich sein, zu verwenden ActiveRecord::Migration ohne die anderen Schienen Zeug.Einrichten der Belastungs-Pfad korrekt wäre der schwierige Teil, aber wirklich alles, was Sie brauchen, ist die rake Aufgaben und die db/migrate Verzeichnis-plus was auch immer Schienen Edelsteine, von dem Sie abhängen, wahrscheinlich activerecord, actviesupport und vielleicht ein paar andere, wie railties.Ich würde es versuchen und sehen, was Klassen fehlen, und fügen Sie diese in.

Bei einem früheren Unternehmen bauen wir ein tool, dass die Tat im wesentlichen das, was ActiveRecord::Migration wird, außer es war geschrieben in Java Maven-plugin.Alles, was Sie Tat, war zusammenstellen text-blobs von SQL-Skripts.Es muss nur intelligent sein, über die Dateinamen, die gehen in Ordnung und wissen, wie Sie zum aktualisieren einer Versionsverwaltung Tabelle.

Dieses Projekt wurde entwickelt, um aktiven Datensatz Migrationen ausgeführt werden, ohne die Installation von Schienen:

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

Installieren Sie es (git clone), und verwenden Sie es als Basis für Ihr Projekt.

Hier ist ein tool, um dies zu tun, geschrieben in Haskell:

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top