我正在查看一些代码而我不理解某些代码。这是代码:
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在重置任务中做什么?
答案 0 :(得分:0)
该行
Sequel.extension :migration
Simple为Sequel手动启用迁移扩展,因为它不是核心库的一部分。
该行
Sequel.postgres
打开数据库,为您提供可以运行命令的实例。
至于
Sequel::Migrator.run(@database, "db", :target => 0)
它只是告诉Sequel将给定数据库迁移到模式的版本0。
文档通常包含这些内容的所有答案。