首先安装 sequel
gem install sequel -NV
sequel 的 migration 类似 Rakefile 执行 task 不用生成类文件
migration 文件命名规则有两种方式
第一种按 i++ 递增 可以 1-9 或者 01-99 一般 999 以内应该够了
第二种按以时间戳递增 跟 rails 类似
xxx 是可以是任意的文件名 这里以用 Sequel 开发招聘网站为例介绍第一种
新建 migration 目录存放迁移文件
md mig
新建 migration 文件 招聘需要发布标题 需要 title 字段
vi mig/001_+title.rb
Sequel.migration do
change do
create_table(:jobs) do
primary_key :id, unique: true
String :title, null: false
end
end
end
执行 migration
sequel -m mig sqlite://jobs.db
其中 -m 参数是指 migration 目录 后面跟 数据库 dsn
招聘需要有接收简历的邮箱 再增加一个字段 email
vi mig/002_+email.rb
Sequel.migration do
change do
add_column :jobs,:email,String
end
end
格式也很好记
外层不变 migration do/change do (复制粘贴即可)
里层 action :表名, :字段名,数据类型
action 也是简单的动宾结构 add/drop/rename _ column/index/view
招聘需要发布薪资 再增加一个字段 salary
vi mig/003_+salary.rb
Sequel.migration do
change do
add_column :jobs,:salary,Integer
end
end
薪资一般是区间,要设置两个字段,这就需要调整原来的表结构
可以把原来的 salary 删除 用 drap_column 然后用 add_column 再新增两个
或者 用改名 这里用改名 rename_column
vi mig/004_salary!salarybase.rb
Sequel.migration do
change do
rename_column :jobs,:salary,:salarybase
end
end
再增加一个 salarytop
vi mig/005_+salarytop.rb
Sequel.migration do
change do
add_column :jobs,:salarytop,Integer
end
end
如果想回滚 直接 用-M 指定序号 比如
sequel -m mig -M 001 sqlite://jobs.db
就回到初始建表的状态
sequel -m mig -M 005 sqlite://jobs.db
就直接到从 001 执行到 005
-M 执行的过程很象看片来回拖进度条
记住 -m -M 两个参数就能执行大部分常用的操作了
更多用法参数参考 https://github.com/jeremyevans/sequel/blob/master/doc/schema_modification.rdoc
sequel + rack 做的招聘网站 https://github.com/tablecell/myrack
别人安装 gem 的时间,用 sequel 已经把网站做好了