通过ActiveRecord迁移创建具有外键约束的SQLite 3表

时间:2015-08-11 18:15:23

标签: activerecord sqlite foreign-keys rails-migrations

与MySQL和Postgres不同,SQLite不支持将外键约束添加到现有表中。因此,人们无法在ActiveRecord迁移中使用add_foreign_key创建外键约束。

但是,从3.6.19开始,SQLite Issues with installing Express.JS in Windows 7包括CREATE TABLE语句中的外键约束,it does support在定义foreign_key: true列时指定referencecreate_table迁移中:

class CreateChildren < ActiveRecord::Migration
  def change
    create_table :children do |t|
      t.text :name
      t.references :parent, foreign_key: true
    end
  end
end

但是,当我查看生成的schema.rb时,这似乎被忽略了:

create_table "children", force: :cascade do |t|
  t.text    "name"
  t.integer "parent_id"
end

是否存在技术原因这是不可能的,还是仅仅缺少功能?有解决方法吗?

0 个答案:

没有答案