【问题标题】:change_column migration deletes tablechange_column 迁移删除表
【发布时间】:2016-02-14 00:34:17
【问题描述】:

我现在已经运行了几次change_column 迁移,它会删除我尝试更改的整个表。

class ChangePictureColumnInProperties < ActiveRecord::Migration
def change
  change_column :properties, :pictures, :json
end
end

然后它会完全删除整个properties 表。

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

我是 Rails 新手,所以不知道我在这里做错了什么。欣赏任何想法。

【问题讨论】:

    标签: ruby-on-rails-4 database-migration rails-migrations


    【解决方案1】:

    如果您使用 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 字段是最好的选择,你可以在你的条目和他的图像之间使用“一对多”的关系。

    当您需要为您的条目添加图像时,请使用“嵌套表单”。

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

    【讨论】:

    • 谢谢埃利亚斯。试过这个和同样的问题。它又掉了桌子。还有其他想法吗?
    • 你在用 sqlite 吗?
    猜你喜欢
    • 2018-10-31
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 2013-08-28
    • 1970-01-01
    • 2016-09-11
    • 2015-05-04
    • 1970-01-01
    相关资源
    最近更新 更多