Я просматриваю какой-то код и не понимаю некоторые строки. Вот код:
require "bundler"
Bundler.require
namespace :db do
desc "Setup database"
task :setup do
Sequel.extension :migration
@database = Sequel.postgres "sequel-playground"
end
desc "Run migrations"
task :migrate => [:setup] do
Sequel::Migrator.run(@database, "db")
end
desc "Reset database"
task :reset => [:setup] do
Sequel::Migrator.run(@database, "db", :target => 0)
Sequel::Migrator.run(@database, "db")
end
end
Я понимаю строки, связанные с упаковщиком, пространством имен, описанием и задачей. Однако я не понимаю этих вещей...
-Что делает строка Sequel.extension :migration? - Строка @database = Sequel.postgres lins "sequel-playground просто устанавливает переменную экземпляра, которая равна объекту базы данных Sequel? Это правильно? - В строке:
Sequel:: Migrator.run(@database, "db")
Является ли Sequel модулем, является ли Migrator классом и запускает ли он метод? Что делают два аргумента?
-Что делает :target => 0 в задаче сброса?