Schon wieder ein Migrationsproblem

Scaffolding, Configuration, Helper

Schon wieder ein Migrationsproblem

Beitragvon Theoric am 24.07.2008, 08:33

Hallo,

nachdem ich gestern bereits Probleme beim Migrieren hatte kommt es heute schon wieder.
Als das
Code: Alles auswählen
rake migrate
gestern funktioniert hatte, machte ich daraufhin mittels
Code: Alles auswählen
ruby script/generate controller scaffold project project

einen Controller und danach erstellte ich eine Iteration mit
Code: Alles auswählen
ruby script/generate model iteration

wodurch eine neue Migrationsdatei erstellt wurde. Diese Migrationsdatei bearbeitete ich im Nachhinein und wollte mein Projekt wieder auf den neuen Stand migrieren.

Hier erst einmal die Migrationsdatei:

Code: Alles auswählen
class CreateIterations < ActiveRecord::Migration
  def self.up
    create_table :iterations do |t|
      t.column :name, :string, :limit => 100,
               :null => false, :default => ""
      t.column :description, :text, :null => false, :default => ""
      t.column :start_date, :date, :null => false
      t.column :end_date, :date, :null => false
      t.column :project_id, :integer, :null => false
    end
  end

  def self.down
    drop_table :iterations
  end
end


Und hier nun die Fehlermeldung:

Code: Alles auswählen
abogo@abogo-desktop:~/ontrack$ rake migrate --trace
(in /home/abogo/ontrack)
rake aborted!
Don't know how to build task 'migrate'
/usr/lib/ruby/1.8/rake.rb:1634:in `[]'
/usr/lib/ruby/1.8/rake.rb:1930:in `invoke_task'
/usr/lib/ruby/1.8/rake.rb:1909:in `top_level'
/usr/lib/ruby/1.8/rake.rb:1909:in `each'
/usr/lib/ruby/1.8/rake.rb:1909:in `top_level'
/usr/lib/ruby/1.8/rake.rb:1948:in `standard_exception_handling'
/usr/lib/ruby/1.8/rake.rb:1903:in `top_level'
/usr/lib/ruby/1.8/rake.rb:1881:in `run'
/usr/lib/ruby/1.8/rake.rb:1948:in `standard_exception_handling'
/usr/lib/ruby/1.8/rake.rb:1878:in `run'
/usr/bin/rake:28


Danke im Vorazs!
Theoric
 
Beiträge: 10
Registriert: 23.07.2008, 12:48

Re: Schon wieder ein Migrationsproblem

Beitragvon megawatt am 24.07.2008, 09:03

Hallo,

ist wohl die Zeile
Code: Alles auswählen
t.column :description, :text, :null => false, :default => ""


Eine Spalte vom Typ "Text" kann i.d.R. keinen Default-Wert haben.
Ich würde also :default=>"" einfach löschen.
megawatt
 
Beiträge: 30
Registriert: 06.12.2007, 20:38

Re: Schon wieder ein Migrationsproblem

Beitragvon Theoric am 24.07.2008, 09:12

Hab ich gemacht, nur geht es jetzt immer noch nicht...

Code: Alles auswählen
abogo@abogo-desktop:~/ontrack$ rake migrate --trace
(in /home/abogo/ontrack)
rake aborted!
Don't know how to build task 'migrate'
/usr/lib/ruby/1.8/rake.rb:1634:in `[]'
/usr/lib/ruby/1.8/rake.rb:1930:in `invoke_task'
/usr/lib/ruby/1.8/rake.rb:1909:in `top_level'
/usr/lib/ruby/1.8/rake.rb:1909:in `each'
/usr/lib/ruby/1.8/rake.rb:1909:in `top_level'
/usr/lib/ruby/1.8/rake.rb:1948:in `standard_exception_handling'
/usr/lib/ruby/1.8/rake.rb:1903:in `top_level'
/usr/lib/ruby/1.8/rake.rb:1881:in `run'
/usr/lib/ruby/1.8/rake.rb:1948:in `standard_exception_handling'
/usr/lib/ruby/1.8/rake.rb:1878:in `run'
/usr/bin/rake:28
Theoric
 
Beiträge: 10
Registriert: 23.07.2008, 12:48

Re: Schon wieder ein Migrationsproblem

Beitragvon megawatt am 24.07.2008, 09:25

Dann liegt das Problem möglicherweise woanders. Passt die ID in der Tabelle "schema" denn auch mit der aktuellen Migration zusammen?
megawatt
 
Beiträge: 30
Registriert: 06.12.2007, 20:38

Re: Schon wieder ein Migrationsproblem

Beitragvon Theoric am 24.07.2008, 09:32

Öhm, wie ich gestern schon schrieb, bin noch ziemlich neu in der Hinsicht, ich hab mir die schema.rb mal angeschaut, ich poste sie hier mal:

Code: Alles auswählen
ActiveRecord::Schema.define(:version => 1) do

  create_table "projects", :force => true do |t|
    t.string "name",        :limit => 100, :default => "", :null => false
    t.text   "description",                                :null => false
    t.date   "start_date",                                 :null => false
  end

end


Frage am Rande, muss ich in der schema.rb alle Einträge die ich auch in der 2. Migrationsdatei(bzw. in den darauffolgenden) gemacht habe dort erneut eintragen? Was muss ich da jetzt reinschreiben? Beim ersten Migrationsversuch wurde die Tabelle ja auch erstellt...oder hab ich da nen Denkfehler....
Theoric
 
Beiträge: 10
Registriert: 23.07.2008, 12:48

Re: Schon wieder ein Migrationsproblem

Beitragvon megawatt am 24.07.2008, 11:07

Nein, nix da reinschreiben :)

Es gibt eine von Rails angelegte Tabelle, die schema_migrations heisst. Der höchste Wert, der dort hinterlegt ist, muss mit der aktuellen Migration-Stufe zusammenpassen. Andernfalls (wenn möglich) solltest du einfach nochmal alle Tabellen löschen (inklusive schema_migrations) und die Migration von Grund auf neu durxchführen.
megawatt
 
Beiträge: 30
Registriert: 06.12.2007, 20:38

Re: Schon wieder ein Migrationsproblem

Beitragvon Theoric am 24.07.2008, 11:18

..und wo finde ich die Tabelle schema_migrations? Im Projektordner findet sich außer der schema.rb nichts vergleichbares....
Theoric
 
Beiträge: 10
Registriert: 23.07.2008, 12:48

Re: Schon wieder ein Migrationsproblem

Beitragvon megawatt am 24.07.2008, 11:39

Du braucht einen DB-Browser-Programm, wie phpMyAdmin oder (für die lokale Entwicklungsumgebung) einfach den MySQL-Administrator. Den gibts unter http://dev.mysql.com/downloads/gui-tools/5.0.html. Dort kannst du dann direkten DB-Zugriff und kannst Tabellem löschen.
megawatt
 
Beiträge: 30
Registriert: 06.12.2007, 20:38

Re: Schon wieder ein Migrationsproblem

Beitragvon Theoric am 24.07.2008, 12:00

hab mir die Tabellen mal mit dem Query-Browser angeschaut...aber da ist keine Tabelle mit dem Namen schema_migration, nur eine schema_info mit nur dem feld version drin....
Theoric
 
Beiträge: 10
Registriert: 23.07.2008, 12:48

Re: Schon wieder ein Migrationsproblem

Beitragvon megawatt am 24.07.2008, 12:08

hört sich nach einer älteren Rails-Version an. Wenn möglich, würde ich updaten.
Die Codestruktur der Migration-Datei ist bei neueren Versionen ebenfalls etwas anders.
Aber egal: Du kannst die migration_info löschen (sowie alle anderen Tabellen) und anschliessend nochmal den Migration-Prozess starten.
megawatt
 
Beiträge: 30
Registriert: 06.12.2007, 20:38

Re: Schon wieder ein Migrationsproblem

Beitragvon McSvenster am 20.02.2009, 16:57

sry, dass ich mich einmische, aber sollte es nicht rake db:migrate heissen? Versuch's doch mal damit.

Gruß
Mc

lol, ich sehe gerade das Alter der Diskussion...
McSvenster
 
Beiträge: 3
Registriert: 20.02.2009, 16:14


Zurück zu Strukturierung

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron