2009-07-01 13 views
1

Ich versuche, Migrationen in Ramaze einzurichten. Ich komme hauptsächlich von Rails, aber ich wollte etwas anderes versuchen. Wie auch immer, ich habe ein Verzeichnis in meinem Projekt namens "Migrationen" mit einer Datei start.rb und dann meine Migrationen. Hier ist start.rb:Ramaze mit Sequel Migrations?

require File.expand_path('../app.rb', File.dirname(__FILE__)) 
require 'sequel/extensions/migration.rb' 

Sequel::Migrator.apply(DB, '.') 

Nun, zunächst einmal, ich weiß nicht, warum ich kann nicht einfach tun

Sequel::Model.plugin(:migration) 

statt so lange benötigen, aber es scheint zu funktionieren, also mache ich mir nicht zu viele Gedanken darüber. Das Hauptproblem ist, dass keine meiner Migrationen tatsächlich ausgeführt wird. Es erstellt die schema_info-Tabelle, also weiß ich, dass es versucht, zu arbeiten, aber es kann nur meine 000_initial_info.rb-Datei nicht finden, die genau dort im selben Verzeichnis ist.

Ich konnte wirklich keine Dokumentation zu diesem Thema finden, also ist dies meine eigene Lösung. Ich würde gerne andere Lösungen hören, wenn ich nur falsch herum laufe. Danke für jede Hilfe!

Antwort

2

Sie nicht Sequel verwenden können :: Model.plugin. Migration, weil Migration kein Modell Plugin ist, ist es eine Kernverlängerung Dies funktioniert:

Sequel.extension: Migration

Sequel kommt mit dem bin/Fortsetzung Tool, das Sie Migrationen mit der Option -m verwenden können, um auszuführen:

Fortsetzung -m/path/to/app/Migrationen

Sofern Sie keine besonderen Bedürfnisse haben, empfehle ich, das zu verwenden.

Eines der Probleme mit Ihrer Einrichtung könnte sein, dass Sie Ihre Migrationen mit 000 gestartet haben. Starten Sie sie bei 001 und es funktioniert möglicherweise besser.

Es gibt rdoc Dokumentation für den Migrator:

http://sequel.rubyforge.org/rdoc-plugins/classes/Sequel/Migrator.html

+0

Ich erwog, dieses Tool zu verwenden, aber ich mag die Idee nicht, meine Datenbankverbindungsparameter in der Befehlszeile anzugeben, wenn ich sie bereits in meiner init-Datei geschrieben habe. Außerdem möchte ich in meinen Migrationen Zugriff auf die gesamte Anwendung haben (Rails-Stil). Es war meine verrückte Nummerierung, die Dinge vermasselt hat! Ich nummeriere immer Dinge beginnend mit 0: D Jetzt funktioniert es perfekt. Vielen Dank! –

0

Hier ist meine Lösung.

http://github.com/mwlang/ramaze-sequel-proto-experimental

Run "rake -T", um die verschiedenen db zu sehen und migrieren Aufgaben, die ich geschrieben habe“

ich diese verwenden "experimentell", wie mein Ramaze . Template-Projekt im Moment

+0

Das ist wirklich schön aussieht. Vielen Dank! –