带有mysql的Rails“列'special_info'的未知类型'json'”

emp*_*mpr 5 mysql json ruby-on-rails

我已经用mysql(5.7.16)数据库创建了Rails(3.2)应用程序。我在某些表中使用了json列,并且工作正常。但是我可以在schema.rb文件中看到一些注释的代码,例如以下代码

# Could not dump table "shopping_cart_precheckout_details" because of following StandardError
# Unknown type 'json' for column 'special_info'
Run Code Online (Sandbox Code Playgroud)

移民

class CreateShoppingCartItemSpecialInfos < ActiveRecord::Migration
  def change
    create_table :shopping_cart_item_special_infos do |t|
      t.integer :shopping_cart_checkout_option_id
      t.column :special_info, :json

      t.timestamps
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

这会影响生产环境吗?为什么将此注释代码添加到schema.rb文件中?

pru*_*wan 5

Mysql 中对原生 JSON 列类型的原生支持仅从 Rails 5 开始可用:https : //github.com/rails/rails/pull/21110

对于 Rails 4,json_on_rails可以考虑:https : //github.com/saveriomiroddi/json_on_rails