小编典典

运行单个迁移文件

all

有没有一种简单的方法来运行一次迁移?我不想迁移到某个版本,我只想运行一个特定的版本。


阅读 72

收藏
2022-04-26

共1个答案

小编典典

您可以直接从 ruby​​ 文件中运行代码:

rails console
>> require "db/migrate/20090408054532_add_foos.rb"
>> AddFoos.new.up

注意:非常旧版本的 rails 可能需要AddFoos.up而不是AddFoos.new.up.

另一种方法(没有 IRB)依赖于 require 返回一个类名数组的事实:

script/runner 'require("db/migrate/20090408054532_add_foos.rb").first.constantize.up'

请注意,如果您这样做,它不会更新schema_migrations表格,但无论如何这似乎就是您想要的。

此外,如果它找不到您可能需要使用require("./db/..."或尝试的文件,require_relative具体取决于您的工作目录

2022-04-26