2013-03-06 4 views
0

Каждый раза, когда я должен запускать/повторить определенную миграцию в моих рельсах приложении, я должен пройти следующие шаги, чтобы получить точный номер версии:Любой плагин bash/rails для автозаполнения/подсказки для миграции?

  1. Grep - Поиск файлов в БД/перенести папку содержащий имя модели/таблицы, которое мне нужно, или
  2. найти - Подобно grep, я ищу файлы, содержащие имя модели/таблицы, и передаю это с помощью grep для фильтрации результатов db/migrate, или
  3. ls - Используйте ls db/migrate/2xxx и продолжайте использовать автозаполнение, пока я не сужу точный перенос, который я ищу

Я хочу знать, есть ли более простой способ сделать это. То есть плагин, который может предложить номера версий, когда я начну вводить rake db:migrate:redo VERSION=

Есть ли какой-нибудь плагин bash/rails, который бы сделал это?

ответ

0

Вы можете сделать это вот так. Без указания номера версии:

Редактировать: У меня есть обновленный список всех, что вы могли бы использовать. Я не знаю плагинов, но это может быть полезно.

rake db:rollback 
rake db:rollback STEP=3 
rake db:migrate:down 

rake db:migrate:redo 
rake db:migrate:redo STEP=3 

И он пойдет в 3 шага назад. Я буду думать о других вариантах, и если найду, я отправлю ответ здесь.

Также существует другой способ. Но если вы хотите что-то вроде плагина, дайте мне знать, какой редактор вы используете. Это может быть полезно, если вы используете возвышенное. У вас есть плагин для этого. По крайней мере, чтобы найти миграции https://github.com/KELiON/RailsMigrationsList

+0

Я использую gedit. Я могу открыть файл миграции в моем редакторе, так что это никогда не проблема. Но если мне нужно переделать определенную версию, получение этого номера версии утомительно. Например, как я уже упоминал в вопросе, если мне нужно переделать конкретную миграцию, единственный способ - получить номер версии - 20100727200521 - в процессе, о котором я упомянул. Мне было интересно, есть ли более простой способ получить это число. – sridharraman

+0

ОК, я понимаю, что вы имеете в виду сейчас. Хорошо, тогда вопрос: как бы вы описали, как вы знаете, что ищете версию 20100727200521, а не для версии 20100727200522? Я мог бы предложить баха, но мне нужно ответить, как именно вы определяете нужную вам версию. Я понимаю, как вы ищете, но не могли бы вы рассказать мне, как вы знаете, какую версию вам нужно? – Aleks

+0

Типичным вариантом использования является то, что я вынужден изменить перенос из-за некоторых изменений с клиента.Итак, я изменяю миграцию XXXX_create_articles (например). В редакторе легко получить этот файл миграции, выполнив поиск «статей». Поэтому, когда я открываю файл, я смотрю на имя файла и переключаюсь между редактором и терминалом и набираю номер версии (из имени файла). – sridharraman

0

Это не решение, но это первый шаг, и это экономит немного времени. В нем перечислены миграции при нажатии на вкладку, затем вы должны скопировать и вставить. Он использует трюк определения функций для псевдонимов db: migrate tasks.

Введите migrate_down или migrate_up и нажмите TAB и посмотрите, что происходит.

function _migrations_complete() { 
    local migrations=`ls db/migrate/*rb | cut -b12-` 
    COMPREPLY=($(compgen -W "${migrations}" -- ${COMP_WORDS[COMP_CWORD]})) 
    return 0 
} 
function migrate_up() { 
    bundle exec rake db:migrate:up VERSION=$1 
} 
function migrate_down() { 
    bundle exec rake db:migrate:down VERSION=$1 
} 
complete -o default -o nospace -F _migrations_complete migrate_up 
complete -o default -o nospace -F _migrations_complete migrate_down 

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

Кстати, этот https://github.com/jweslley/rails_completion добавляет дополнения для многих команд рельсов, но не для версий миграции.

 Смежные вопросы

  • Нет связанных вопросов^_^