最近我将我的应用程序从Rails 4.2升级到Rails 5.0.3。然后我试图进行迁移:
class AddInvitationToJoinToContests < ActiveRecord::Migration
def change
add_column :goods, :new_field, :string
end
end
迁移正确运行,但其他表字段的limit
选项已消失:
create_table "users", force: :cascade do |t|
- t.string "name", limit: 191, null: false
- t.string "language", limit: 191
- t.string "image_id", limit: 191
+ t.string "name", null: false
+ t.string "language"
+ t.string "image_id"
end
知道为什么吗?
相关问题:
答案 0 :(得分:-1)
这可能是因为Rails 5没有列出&#34;限制&#34;对于列,如果限制与该列的数据类型的默认值匹配。
https://github.com/rails/rails/commit/835617b71d2e829c27dbd16a82f22c186c821a0f
您可以在此变更集的注释中看到,这是为了使schema.rb与数据库无关。我怀疑,无论您使用哪种数据库适配器,默认的限制是&#39;对于字符串类型是191。