【问题标题】:Add columns to a table managed by Sequel Model向由 Sequel Model 管理的表添加列
【发布时间】:2017-10-24 22:12:47
【问题描述】:

我正在使用 Sequel::Model。我的模型有一个 set_schema 块和一个 create_table 调用,所以数据库完全由模型管理。数据库是 sqlite。

我正在尝试向数据库中添加列,但找不到方法。将字段添加到架构没有任何效果。添加迁移或 alter_table 调用不会执行任何操作。我已经在 IRC 上询问并阅读了文档。我找不到任何人这样做的例子,但这似乎很简单。

如何将列/字段添加到 Sequel 模型?

【问题讨论】:

  • 您想在运行时执行此操作吗?对于所有这些类型的问题,我的建议是创建另一个表,我们将其命名为 attributes 和另一个表 attribute_values,然后模型可以有许多 attribute_values,这只是你的 model.id、attribute.id 的连接然后是该属性的给定值。这非常灵活,不需要在运行时更改架构

标签: ruby sqlite sequel


【解决方案1】:

我进行了大量研究,并与 Jeremy Evans 进行了交谈。我想错了。这样做的正确方法是删除我的模式插件代码和 create_table 块并转而使用迁移。我经历的步骤是:

  1. 从我的模型中删除架构代码(create_table、set_schema)
  2. 通过 sequel -d 命令将架构从我当前的 sqlite 数据文件转储到初始迁移到迁移文件中
  3. 创建一个新的迁移,通过在更改块中的 alter_table 块中调用 add_column 添加我需要的列
  4. 通过 sequel -m 命令应用迁移
  5. 创建 rake 任务以运行迁移并将这些任务挂钩到我的部署任务中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 2018-09-09
    • 1970-01-01
    • 2017-10-02
    相关资源
    最近更新 更多