Почему новый файл миграции Rails db начинается с метки даты вместо порядкового номера? - PullRequest
4 голосов
/ 15 марта 2009

Всякий раз, когда я использую script / generate для создания нового каркаса для изменения в моей базе данных Rails, к новому файлу миграции добавляется метка даты (например, 200903140912_create_users.rb) вместо порядкового номера (например, 004_create_users.rb).

Затем мне нужно вручную изменить имя файла, чтобы оно соответствовало остальным файлам миграции.

Кто-нибудь знает, как это исправить?

Система: Mac OS X Leopard 10.5.6
Рельсы: v2.2.2
Рубин: v1.8.6

Ответы [ 4 ]

8 голосов
/ 15 марта 2009

Это было введено в Rails 2.1. В соответствии с документами миграции вы можете вернуть его, установив config.active_record.timestamped_migrations в false в config/environment.rb.

5 голосов
/ 15 марта 2009

Я не уверен, почему они приняли решение, но я могу рассказать вам, как это облегчило мою жизнь. В команде два человека обычно создавали миграции примерно в одно и то же время. Если бы последняя производственная миграция была 007, тогда обе новые были бы 008. У второго человека, который совершит коммит, возникнет головная боль, и он попытается разобраться, а временные метки делают этот конфликт гораздо менее вероятным.

2 голосов
/ 15 марта 2009

Стоит также упомянуть, что использование метки времени UTC помогает с последовательностью выполнения миграций, когда разработчики могут находиться в разных часовых поясах.

2 голосов
/ 15 марта 2009

Решение было принято, потому что, когда люди работали вместе над одним проектом, они часто пытались создать миграцию со своими новыми изменениями. Это может привести к проблеме, когда два человека работают над одним и тем же проектом, внося отдельные изменения, но оба создают миграцию с одинаковым номером. Основная команда Rails решила изменить его на временную метку UTC, так как менее вероятно (но все еще возможно!), Что два (или более) разработчика будут создавать миграцию в одну секунду, а не в одной и той же последовательности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...