rakefile вопросы с командами Sequel

Я просматриваю какой-то код и не понимаю некоторые строки. Вот код:

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 в задаче сброса?


person Jwan622    schedule 31.12.2014    source источник


Ответы (1)


Линия

Sequel.extension :migration

Simple включает расширение миграции вручную для Sequel, поскольку оно не является частью базовой библиотеки.

Расширение миграции

Линия

Sequel.postgres

Открывает базу данных, предоставляя вам экземпляр, с которым вы можете запускать команды.

Открытая база данных

Для

Sequel::Migrator.run(@database, "db", :target => 0)

Он просто сообщает Sequel о переносе данной базы данных на версию 0 схемы.

Миграции Rake

В документации обычно есть все ответы на эти вопросы.

person Leo Correa    schedule 31.12.2014
comment
Спасибо, у меня все еще проблемы с чтением документации... просто пока нет смысла встречаться. Что такое схемы? Чем они отличаются от файлов миграции в БД? - person Jwan622; 31.12.2014
comment
Файлы миграции индивидуально изменяют схему базы данных. Результатом запуска файлов миграции будет схема. Поэтому возврат к версии 0 схемы, по сути, означает откат всех файлов миграции. Это совершенно другой вопрос, чем то, что вы изначально спрашиваете. - person Leo Correa; 02.01.2015