2015-09-26 4 views
0

Извините за такой вопрос noob - новый для git и ruby ​​на рельсах.Когда вы должны запускать миграцию по запросу pull?

Я нахожусь в школьной команде по кодированию, пишу приложение в рельсах. В одном из запросов на загрузку есть новая база данных, но миграции не выполнялись (rake db: migrate).

Должны ли мы сначала выполнить миграцию на ветке, а затем слить, чтобы выполнить master или merge, чтобы выполнить master, а затем выполнить rake db: перенести на главную ветку?

ответ

0

Это лучше практика:

  1. запустить rake db:migrate
  2. совершить репо

потому db:migrate изменяет свой db/schema.rb файл, который отображает "текущее" состояние базы данных. Очень важно иметь последнюю версию этого файла в вашем репо.

отметить также комментарий в db/schema.rb:

# It's strongly recommended to check this file into your version control system. 

Поэтому рекомендуемый порядок выше.

+0

Огромное спасибо! –

1

Если вы проверяете чью-либо работу (т. Е. Это не ваш запрос на тяну, но они говорят, что он готов, и ваша работа должна слить его), тогда вы должны проверить ветку и проверить, соответствуют ли миграции, потому что если вы объединить его, чтобы справиться (и нажать его, чтобы все могли получить обновление), а миграции не в порядке, тогда все будут разочарованы из-за сломанной ветви мастера.

Вот почему я рекомендую проверять ветку, запускать миграции, а затем объединять PR с мастером и нажимать его вверх по течению.


Если это ваш запрос тянуть, и вы будете уверены, что все в порядке (или вы работаете в одиночку по проекту), то нет никакого конкретного заказа: просто убедитесь, что вы не забываете все шаги (слияния и мигрировать).

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

+0

большое спасибо! –

0

Вы должны всегда запускать свои миграции перед слиянием на мастер, потому что вам нужно знать, правильно ли работал этот код, и все в порядке. Помните, что запуск миграции изменит ваш файл db/schema.rb, и если что-то не так, сервер не запустится должным образом или что-то не удастся.

Что касается выполнения миграции до того, как вы передадите ее ветке, это зависит от того, что вы делаете. Если вы - командная кодировка и вам нужно сначала просмотреть работу, продолжайте и совершите, чтобы другие могли проверить филиал и просмотреть.

+0

Огромное спасибо! –

0

Почему кто-то открывает запрос на перенос на ветке с новыми миграциями, которые еще не были запущены? Как автор запроса на растяжение знает, что миграция была написана правильно?

Если бы я просматривал запрос на перенос, я ожидал, что миграции будут выполняться до слияния ветви с хозяином. Кроме того, убедитесь, что ваш schema.rb получает проверку с миграциями.

+0

Да, это был спорный момент в нашей команде. человек, который сделал это, утверждал, что лучше запустить rake db: перенести на главную ветку, чтобы гарантировать, что не будет ошибок db. Это не имело смысла для меня из-за причин, о которых вы говорили. –