bogdan_uman
@bogdan_uman
шлЫмазл неукЪ-поцЪ

Migration -> change_table -> bulk не работает?

Здравствуйте. Windows 10 x64, Rails 5.1.3, Ruby 2.4.1p111 (2017-03-22 revision 58053) [x64-mingw32], PostgreSQL .6
Не подскажите, почему-то в миграциях не работает опция :bulk в change_table

class Test2 < ActiveRecord::Migration[5.1]
  def change
    change_table :testes, { bulk: true } do |t|
      t.string :test1, :test2, :test3, limit: 3
      t.string :test4, limit: 3
    end
  end
end


Вот лог:
(1.0ms)  BEGIN
   (0.5ms)  ALTER TABLE "testes" ADD "test1" character varying(3)
   (0.5ms)  ALTER TABLE "testes" ADD "test2" character varying(3)
   (0.5ms)  ALTER TABLE "testes" ADD "test3" character varying(3)
   (0.5ms)  ALTER TABLE "testes" ADD "test4" character varying(3)
  SQL (0.5ms)  INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"  [["version", "20170828115156"]]
   (0.5ms)  COMMIT


а по идее, я так понял создание должно быть одной комнадой
alter table testes add column test1 varchar(3), add column test2 varchar(3), add column test3 varchar(3), add column test4 varchar(3)


Спасибо.
  • Вопрос задан
  • 209 просмотров
Решения вопроса 1
Dem1
@Dem1 Куратор тега Ruby on Rails
Ruby on Rails developer
База postgresql?
Если посмотреть код rails для change_table, то можно заметить, что rails проверяет усовиле supports_bulk_alter?, которые определено в abstrtact_adapter и возвращает false, Для mysql есть переопределение, а pg же не переопределяет этот метод
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы