Blog

sequel の migration に関するメモ

Sequel には migration 機能がついている。これを利用するには以下のようなファイルを作成する。

Sequel.migration do
  change do
    create_table(:artists) do
      primary_key :id
      String :name, :null=>false
    end
  end
end

ファイル名は db/migrations/001_init.rb とかにする。

rakefile に以下のように書く。DATABASE_URL=sqlite://hoge rake db:migrate とかすればマイグレーションされる。

namespace :db do
  desc "Run migrations"
  task :migrate, [:version] do |t, args|
    require "sequel"
    Sequel.extension :migration
    db = Sequel.connect(ENV.fetch("DATABASE_URL"))
    if args[:version]
      puts "Migrating to version #{args[:version]}"
      Sequel::Migrator.run(db, "db/migrations", target: args[:version].to_i)
    else
      puts "Migrating to latest"
      Sequel::Migrator.run(db, "db/migrations")
    end
  end
end

と、公式のマニュアルに書いてあった。 https://github.com/jeremyevans/sequel/blob/master/doc/migration.rdoc