使用Sequel命令的rakefile问题

时间:2014-12-31 16:45:56

标签: sequel rakefile

我正在查看一些代码而我不理解某些代码。这是代码:

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

我理解了线条involvin bundler,namespace,desc和task。但是,我不明白这些事情......

- Sequel.extension的行是什么:迁移在做什么? -database = Sequel.postgres lins“sequel-playground系列只是设置一个等于Sequel数据库对象的实例变量?是吗? - 在线:

Sequel:: Migrator.run(@database, "db")

Sequel是模块,是Migrator的一个类并运行一个方法吗?这两个论点在做什么?

- 什么是:target => 0在重置任务中做什么?

1 个答案:

答案 0 :(得分:0)

该行

Sequel.extension :migration

Simple为Sequel手动启用迁移扩展,因为它不是核心库的一部分。

Migration Extension

该行

Sequel.postgres

打开数据库,为您提供可以运行命令的实例。

Open Database

至于

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

它只是告诉Sequel将给定数据库迁移到模式的版本0。

Rake Migrations

文档通常包含这些内容的所有答案。