Существует проблема, из-за которой мои миграции рельсов обновляют схему с помощью пробелов и положение столбцов таблицы.Перемещение Rails всегда вставляет пробелы или меняет порядок столбцов в схеме
Так что в большинстве случаев, когда я запускаю bundle exec rake db:migrate
, он выполнит один из следующих сценариев. Когда я объединяю это в нашу основную ветку, и другие разработчики отключают это, тогда их рельсовая миграция возвращает вкладки и порядок позиций.
Мы заметили, что все три разработчика в команде имеют такую же проблему при выполнении миграции, если я был последним коммиттером схемы.
Я только что обновил postgres to v9.2.4
, что аналогично другим разработчикам. Какие-нибудь идеи о том, что еще я мог попробовать?
Примеры
Ниже Git дифференциалы для демонстрации того, что происходит.
Пример повторного заказа схеме:
create_table "accounts", :force => true do |t|
t.integer "organisation_id"
- t.boolean "active", :default => false
t.text "notes"
+ t.boolean "active", :default => false
end
Пример добавления вкладки в схему:
create_table "comments", :force => true do |t|
- t.integer "commentable_id", :default => 0
- t.string "commentable_type", :default => ""
+ t.integer "commentable_id", :default => 0
+ t.string "commentable_type", :default => ""
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
Что заставляет вас думать, что пробелы являются вкладками? Любой шанс увидеть все до и после версий одного из этих 'create_table'? –
@muistooshort Спасибо, они могут быть пробелами – Coderama
Первый означает, что не все столбцы находятся в одном порядке внутри базы данных, сравнивают вывод '\ d accounts' внутри' psql', и вы найдете виновника; это может произойти по-разному и не должно быть проблемой. Второй вариант - это, скорее всего, просто объект выравнивания (т. Е. Все параметры ': default => ...'), но это трудно сказать, не видя целых файлов до и после 'schema.rb'. –