Jedes Mal, wenn ich eine rake db:migrate
Rails läuft, beschließt, meine schema.rb-Datei zu ändern. In einigen Fällen ist dies völlig vernünftig, aber in einigen anderen Fällen scheint es, dass es ohne Grund geschieht. Der Fall, über den ich verwirrt bin, ist, wenn ich eine neue Migration und eine neue Version von schema.rb von git abrufe und dann rake db:migrate
starte. Da die neue Version der Datei schema.rb mit dieser Migration geliefert wurde, sollte ich schema.rb nicht aktualisieren. Schienen ändert es jedoch immer noch jedes Mal. Wenn dies der Fall finde ich unglaublich dumme Veränderungen wie:Rails ändert schema.rb ohne Grund
add_index "my_table", ["column1", "column2"], :name => "index_on_some_columns"
zu
add_index "my_table", ["column2", "column1"], :name => "index_on_some_columns"
Wenn dies geschieht einfach git checkout db/schema.rb
und gehen mit meinem Leben, das ich laufen, aber es irkes mich ohne Ende. Gibt es einen Grund, warum es das tut, und wie kann ich es davon abhalten?
EDIT: Hier ist ein Auszug aus einem diff
@@ -165,12 +165,11 @@ ActiveRecord::Schema.define(:version => 20130206001907) do
t.column "updated_at", :datetime
- t.column "coordinates", :point, :srid => 4326
@@ -200,15 +199,16 @@ ActiveRecord::Schema.define(:version => 20130206001907) do
t.column "something", :boolean
+ t.column "coordinates", :point, :srid => 4326
+ t.column "random_string", :string
t.column "remote", :string
- t.column "random_string", :string
end
- add_index "my_table", ["id", "foreign_id"], :name => "index_active_my_table_on_foreign_and_id"
- add_index "my_table", ["id", "active"], :name => "index_my_table_on_active_and_id"
- add_index "my_table", ["id", "content_modified_at"], :name => "index_my_table_on_content_modified_at_and_id"
+ add_index "my_table", ["foreign_id", "id"], :name => "index_active_my_table_on_foreign_and_id"
+ add_index "my_table", ["active", "id"], :name => "index_my_table_on_active_and_id"
+ add_index "my_table", ["content_modified_at", "id"], :name => "index_my_table_on_content_modified_at_and_id"
Wie ist dieser Index in Ihren Migrationsdateien definiert? – Novae
poste deine Diffs – cbrulak
In mehreren Fällen sagte eine Migration 'add_index: my_table, [" column2 "," column1 "]' aber das über git gelieferte Schema.rb hatte die umgekehrte Reihenfolge: 'add_index" my_table ", [" column1 ", "Spalte2"] '. Es scheint konsistent zu sein, aber jetzt frage ich mich, wie die entgegengesetzte Reihenfolge der Spalten es jemals in Code geschafft hat. Das mag naiv sein, aber könnte das etwas mit der Arbeit mit Linux/Mac zu tun haben? – wesdotcool