Направляющие: номер версии в 'schema.rb' используется для чего-нибудь?

Теперь, когда направляющие добавили метку времени к миграциям, единственному номеру версии наверху /db/schema.rb кажется бессмысленным. Иногда номер версии заканчивается неправильный при контакте с несколькими разработчиками или несколькими ответвлениями.

Делает направляющие, даже используют это :version параметр еще?

И есть ли любой вред в нем являющийся неправильным (как в: это не отражает метку времени последний раз прикладной фиксации)?

Пример:

ActiveRecord::Schema.define(:version => 20100417022947) do
  # schema definition ...
end

23
задан Flip 6 December 2016 в 13:54
поделиться

1 ответ

Я решил исследовать сам. Оказывается, что из-за миграций с меткой времени единственное, что Rails делает с этим номером, - это предположение, что миграция с этой конкретной меткой времени уже была применена и, таким образом, создает соответствующую запись в таблица schema_migration, если она не существует.

от: /lib/active_record/connection_adapters/abstract/schema_statements.rb

def assume_migrated_upto_version(version, migrations_path = ActiveRecord::Migrator.migrations_path)
    # other code ... 
    unless migrated.include?(version)
      execute "INSERT INTO #{sm_table} (version) VALUES ('#{version}')"
    end
    # ...
5
ответ дан 29 November 2019 в 02:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: