我在我的后端使用ruby和mysql2作为数据库使用ruby,你可以从我的昵称猜测我是rails中的新手。
{
"last_viewed_categorie" : "shirt",
"last_name" : "herose",
"login_screen_apperaed" : 1,
"item_added_to_cart" : 5,
"first_name" : "george"
}
这是我目前收到的数据库中的json格式。我想要的是这样的东西
jsonColumns //array that contains keys of json
jsonColumns.each do |jsonColumn|
unless @existingColumnNames.include?(jsonColumn)
"Alter table mutable add_column #{jsonColumn}"
我似乎无法找到任何方法来制作这样的东西,
甚至可能吗?
如果不可能,你能提供类似的吗?
谢谢
答案 0 :(得分:3)
动态更改表格不是您想要做的事情。更好的计划是使用序列化列,您可以在其中创建可以存储任意数据的LONGBLOB
列,并在模型中使用serialize
声明该列。
除了计划的迁移之外,Rails中的ActiveRecord层实际上要求您的架构是静态的,不变的。在运行时引入任意列会使列缓存不一致,并可能导致问题。
如果您正在处理大量JSON数据,则可能需要考虑使用PostgreSQL,其中包含Rails支持的native JSON column type。这使得存储,查询和操作这些结果变得更加容易。
答案 1 :(得分:0)
在循环中运行此代码。
add_column :mutable, :jsonColumn, :text
答案 2 :(得分:0)