Отключение db:reset задачи направляющих

Для предотвращения случайных 'граблей db:reset' на наших продуктивных средах я думал об отключении 'граблей db:reset' и связал задачи, которые отбрасывают базу данных в продуктивной среде. Существует ли простой способ сделать это, или я должен переопределить задачу граблей?

Существует ли лучшая альтернатива?

5
задан Readonly 10 January 2010 в 03:13
поделиться

2 ответа

В lib/db.rake:

namespace :db do
  desc 'Resets your database using your migrations for the current environment'
  task :reset do
    if RAILS_ENV == 'production'
      Rake::Task["db:drop"].invoke
      Rake::Task["db:create"].invoke
      Rake::Task["db:migrate"].invoke
    end
  end
end
0
ответ дан 13 December 2019 в 22:08
поделиться

В файл Rake можно добавить

Rake.application.instance_variable_get('@tasks').delete('db:reset')

, и команда больше недоступна. Если требуется отключить несколько команд, поместите их в метод remove _ task для удобства чтения.

Но лучшая альтернатива, кажется, просто не ввести команду rake db: reset , которая не является тем, что вы бы случайно ввести.

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

7
ответ дан 13 December 2019 в 22:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: