Запуск Rails 4 с Postgres 9.4 в разработке и производстве. У меня есть большая таблица, которая со временем выросла за счет миграций. Из-за множества разных столбцов в таблице я хочу изменить порядок вещей, чтобы столбцы были сгруппированы более логично. Другими словами, некоторые элементы столбца естественным образом группируются вместе в зависимости от того, какую информацию они захватывают.
Я нашел обсуждение использования after:
при миграции для изменения порядка столбцов (с использованием ALTER TABLE
в SQL) в этом обсуждение переполнения стека. Затем я пошел дальше и настроил миграцию для этого. После запуска миграции я заметил, что мой файл schema.rb не изменился. Глядя на столбцы в базе (постгрес в разработке), там тоже ничего не изменилось.
Дальнейшие исследования привели меня к вики Postgres, в которой говорится, что в настоящее время нет поддержки изменения положения столбца. в Постгресе.
Это не критично, но облегчило бы жизнь. Мой вопрос:
Если я просто перемещу строки в файле
schema.rb
вверх или вниз, чтобы расположить их по желанию, вызовет ли это какие-либо проблемы? Поскольку я рассчитываю предоставить любую новую базу данных с помощью rake db:schema:load, не похоже, что это должно что-то сломать. Кроме того, поскольку предыдущие миграции существенно не изменились (только порядок столбцов, которые они выводят в schema.rb), все должно быть внутренне согласовано, не так ли?Если это плохая идея, могу ли я просто вернуться к более ранним миграциям, добавить синтаксис для
after: :some_column
к каждому элементу столбца, чтобы они правильно настроили файл schema.rb?
Я предполагаю, что когда я перестраиваю свою производственную базу данных с нуля с исходными данными, она будет использовать структуру схемы для правильного создания таблицы в нужном порядке. Сейчас это не настоящая развернутая база данных с конечными пользователями, так что это не похоже на проблему. Использование варианта № 1 выше кажется самым простым решением, если оно ничего не ломает.