L45*_*457 5 ruby ruby-on-rails rails-migrations ruby-on-rails-4
我刚刚开始学习rails,如果对此的答案很明显,那么我感到抱歉。
我在我的应用程序中添加了帖子和类别表的迁移,现在使用以下行在默认值不为null的情况下添加对帖子表中类别的引用:
add_reference :posts, :category, index: true, foreign_key: true, null: false
Run Code Online (Sandbox Code Playgroud)
但是在运行迁移时出现以下错误:
SQLite3::SQLException: Cannot add a NOT NULL column with default value NULL: ALTER TABLE "posts" ADD "category_id" integer NOT NULL
Run Code Online (Sandbox Code Playgroud)
我曾尝试阅读过api,但无法弄清楚我在做什么错。
小智 6
也许sqlite3不允许这样做,尝试
add_reference :posts, :category, index: true, foreign_key: true, null: false
change_column :posts, :category_id, :integer, null: false
Run Code Online (Sandbox Code Playgroud)
经过进一步阅读后,这似乎是 sqlite3 的一个错误。显然,在更改现有表时,您不能像上面那样向引用添加非空值(这在 MYSQL 中可行)。但是,您可以在从头开始创建表时执行此操作。通过将上述行添加到我的类别 create_table 迁移中,设法使其正常工作。
归档时间: |
|
查看次数: |
7869 次 |
最近记录: |