テーブルの変更

次のメソッドは、テーブルの変更のために用意されています。

  • #add_column(参照#columnの使用のため)
  • #drop_column
  • #rename_column(最初の引数がある古い名前秒であるのに対し、新しい名前
  • #add_index(参照#indexの使用のため)
  • #drop_index
  • #add_primary_key(参照#primary_keyの使用のため)
  • #add_foreign_key(参照#foreign_keyの使用のため)
  • #add_constraint(参照#constraintの使用のため)
  • #drop_constraint(受け付けを引数として制約のを)
  • #add_unique_constraint
  • #set_column_default(受け入れ欄のとデフォルト値カンマ区切り引数として)を
  • #set_column_type(受け入れ列との新しいタイプのカンマ区切り引数として)を
  • #set_column_allow_null(受け入れ名前欄のを)
  • #set_column_not_null(受け入れ名前欄のを)

これらの方法は、受け入れる最初の引数としてターゲット表の名前を、その後、他の引数。このための便利なショートカットがあります:#alter_tableそれは受け入れテーブルの名前ブロックの変更について説明します。

次の構文は同等

Hanami::Model.migration do
  change do
    add_column         :users, :email, String,  null: false, unique: true
    set_column_default :users, :visits_counts, default: 0
  end
end

上記のコードはでDRY’dすることができます。

Hanami::Model.migration do
  change do
    alter_table :users do
      # `users` table is implicit within this block, so it can be omitted.
      add_column :email, String,  null: false, unique: true    
      set_column_default :visits_counts, default: 0
    end
  end
end

表の名前を変更します

テーブルは経由して名前を変更することができます#rename_tableそれは受け入れ古い名前新しい名前の引数としてを。

rename_table :users, :people

表をドロップ

テーブルは経由でドロップすることができます#drop_tableそれは受け入れ名前を引数として。

drop_table :users

安全な操作を介して行うことができます#drop_table?それが存在する場合にのみ、テーブルを削除します。