Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 更改列迁移将删除表_Ruby On Rails 4_Database Migration_Rails Migrations - Fatal编程技术网

Ruby on rails 4 更改列迁移将删除表

Ruby on rails 4 更改列迁移将删除表,ruby-on-rails-4,database-migration,rails-migrations,Ruby On Rails 4,Database Migration,Rails Migrations,我已经运行了几次change\u列迁移,它删除了我试图对其进行更改的整个表 class ChangePictureColumnInProperties < ActiveRecord::Migration def change change_column :properties, :pictures, :json end end class ChangePictureColumniProperties

我已经运行了几次
change\u列
迁移,它删除了我试图对其进行更改的整个表

class ChangePictureColumnInProperties < ActiveRecord::Migration
def change
  change_column :properties, :pictures, :json
end
end
class ChangePictureColumniProperties
然后它只是完全删除整个
属性

我正在尝试设置CarrierWave,文档中说“添加一个可以存储数组的列”,并提供了一个使用JSON的示例,以提供关于我所做工作的上下文


我是Rails新手,所以不知道我做错了什么。感谢你的任何想法

如果使用SQLite,则需要删除表并重新创建,SQLite不支持删除、更改类型和重命名列(不删除条目)

在迁移过程中,您可以执行以下操作:

drop_table :properties
create_table :properties
add_column :properties, :your_previous_columns
add_column :properties, :your_previous_columns
add_column :properties, :pictures, :json
如果您有相关信息,可以创建另一个结构良好的表,导入您的信息,然后删除旧表

重要! 我不认为json字段是最好的选择,您可以在您的条目和他的图像之间使用“一对多”关系

当您需要为输入添加图像时,请使用“嵌套表单”


使用嵌套表单,您可以发送属于您的条目及其嵌套图像的信息。

谢谢Elias。我试过同样的问题。它又把桌子掉了。还有其他想法吗?你在用sqlite吗?