Foreignerを使って外部キーに対応してみました。 https://github.com/winebarrel/ridgepole/tree/v0.4.8#foreign-key
※インストール時、要--pre
オプション
使い方
create_table "parent", force: true do |t| end create_table "child", id: false, force: true do |t| t.integer "id" t.integer "parent_id" end add_index "child", ["parent_id"], name: "par_ind", using: :btree add_foreign_key "child", "parent", name: "child_ibfk_1", dependent: :delete
- 作成時、childより先にparentができている必要があります
- 削除時、順序の壱岐市が必要です
name
は必須です- MySQL(InnoDB)でFK使う場合、制限があるので要注意です
- http://dev.mysql.com/doc/refman/5.1/ja/innodb-foreign-key-constraints.html
- よく分からないエラーでFKが作成できなかったら
show engine innodb status
で「LATEST FOREIGN KEY ERROR」を見ると良さそうです
相変わらず業務で使っていないので人柱ご意見募集中です。