После установки devise MODEL User я получил это.
class DeviseCreateUsers < ActiveRecord::Migration
def self.up
create_table(:users) do |t|
t.database_authenticatable :null => false
t.recoverable
t.rememberable
t.trackable
# t.encryptable
# t.confirmable
# t.lockable :lock_strategy => :failed_attempts, :unlock_strategy => :both
# t.token_authenticatable
t.timestamps
end
add_index :users, :email, :unique => true
add_index :users, :reset_password_token, :unique => true
# add_index :users, :confirmation_token, :unique => true
# add_index :users, :unlock_token, :unique => true
# add_index :users, :authentication_token, :unique => true
end
def self.down
drop_table :users
end
end
Теперь, если я сделаю rake db: migrate, будет создана таблица пользователей.
Как я могу отменить эту миграцию, т.е. как снова удалить таблицу пользователей с помощью рейка?
UnknownMigrationVersionError
но я понял, что это потому, что мои миграции находятся внутриdb/migrate/main
, знает ли кто-нибудь обходной путь для этого, чтобыdb:migrate:down
заглянуть внутрь этого конкретного каталога или подкаталогов миграции?Просто запустите эту команду:
источник
Я считаю, что есть три варианта возврата к миграции (они также перекрываются):
Откатить самую последнюю миграцию:
rake db:migrate:down
Только # Rails 2.Сверните количество (n) недавних миграций:
rake db:rollback STEP=n
Свернись к предыдущей конкретной версии:
$ rake db:migrate:down VERSION=nnn
# Rails 3 (укажите также номер версии).Номер версии означает SHA (алгоритм безопасного хеширования) для фиксации, который представляет собой длинное шестнадцатеричное число, которое выглядит примерно как 886af3194768917c78e ... Вы можете увидеть это, выполнив
git log
Вы можете увидеть эти (и другие) команды с их описаниями, используя
rake -T db:
которые для rails 3.2 включают:источник
rake db:migrate VERSION=<version number>
rake db:migrate:down
прерывание с сообщением об ошибке «Требуется ВЕРСИЯ». Однако рекомендуемыйrake db:rollback
вариант работает.STEP
иVERSION
$ rake db:migrate:down VERSION=nnn
не откатывается до версии, а выполняется переход на указанную версию.Вы можете выполнить откат и указать, сколько последних миграций будет отменено, например
за 3 последних миграции.
источник
Как новый программист (или другим новым программистам)
rake db:rollback
работает примерно в половине случаев. Я начинаю там.Если не,
rake db:migrate:down VERSION=3846656238
вставьте VERSION для номера версии вашего файла миграции, который вы хотите вернуть.
источник
Это отменит и повторно применит последнюю миграцию.
источник
Для рельсов 5 можно использовать
rails command instead of rake
пример
источник
Запустите эту команду в своем терминале:
или
Он показывает статус, идентификаторы миграции, имя миграции для всех ранее выполненных миграций. выберите свой идентификатор миграции (т.е. номер вашей версии) и введите этот идентификатор в следующую команду после version = ,,, и нажмите ввод
источник
Как откатить миграцию
(1) Сначала определите идентификатор миграции
rake db:migrate:status
(2) Затем откатите миграцию
rake db:migrate:down VERSION=20190802023239
....... и теперь ты на скачки!
источник