Таблица миграции схем
В моем приложении Rails 4 я хотел бы свернуть мои файлы миграции в один большой файл (похожий на schema.rb), так как пришло время выполнить некоторую домашнюю работу, но я не уверен, как получить доступ к таблице в базе данных, которая сохраняет данные миграции, поэтому, когда я запускаю миграцию, я не получаю никаких ошибок/конфликтов.
Вопрос Как я могу получить доступ и удалить данные в таблице, в которой хранятся данные миграции?
Ответы
Ответ 1
для удовольствия, вы также можете манипулировать ими в консоли, создав для них класс модели...
class SchemaMigration < ActiveRecord::Base; self.primary_key = :version; end
то вы можете сделать SchemaMigration.all, SchemaMigration.last.delete и т.д.
На самом деле просто замените использование SQL, и очень редко вам нужно будет возиться на этом низком уровне... вообще плохая идея, но круто посмотреть, как это сделать:)
Ответ 2
Другим решением может быть доступ к нему через:
ActiveRecord::SchemaMigration
Ответ Дэвида не работал в моем контексте.
Ответ 3
В таблице schema_migrations
содержатся номера ревизий; причем последняя запись является последней выполненной миграцией. Вы можете просто манипулировать этими записями вручную.
Ответ 4
Не уверен, почему вы хотите это сделать, но здесь вы идете:
ActiveRecord:: Migrator.get_all_versions
Ответ 5
чтобы получить последнюю версию:
ActiveRecord::SchemaMigration.last.version
или все версии:
ActiveRecord::SchemaMigration.all.map(&:version)