blue workbench

Ruby and Rails

【Rails】マイグレーションまとめ

テーブル作成

# frozen_string_literal: true

class CreateProducts < ActiveRecord::Migration[6.0]
  def change
    create_table :products do |t|
      # NOT NULL制約
      t.string :name, null: false
      t.integer :price, null: false

      t.timestamps
    end
  end
end

複数カラムのユニーク制約追加

$ rails g migration AddUniquenessToCartDetails

db/migrate/20200629130430_add_uniqueness_to_cart_details.rb

class AddUniquenessToCartDetails < ActiveRecord::Migration[6.0]
  def change
  end
end
# frozen_string_literal: true

class AddUniquenessToCartDetails < ActiveRecord::Migration[6.0]
  def change
    add_index :cart_details, %i[cart_id product_id], unique: true
  end
end

参考

yamakichi.hatenablog.com