运行时:
rails generate migration <someaction> field:type
我可以看到它正在执行两个操作:
- 调用调用 active_record
- 创建迁移文件。
我完全理解它为什么会生成迁移文件,但为什么会调用 ActiveRecord?这让我很困扰,因为如果我想手动创建迁移文件怎么办?我将如何模仿这种调用(如果有必要的话..)?
运行时:
rails generate migration <someaction> field:type
我可以看到它正在执行两个操作:
我完全理解它为什么会生成迁移文件,但为什么会调用 ActiveRecord?这让我很困扰,因为如果我想手动创建迁移文件怎么办?我将如何模仿这种调用(如果有必要的话..)?
生成器MigrationGenerator
:
1) 加载您的 ORM(在 Rails 中默认为 Active Record),使其扩展正确的 'ORM'::Migration 类(同样默认为 ActiveRecord::Migration)
2) 它本身是NamedBase
生成器的扩展,它查看您是否正在运行 Active Record 来决定是否应该将表名复数。如果你跑就是这样
rails generate migration AddPartNumberToProducts part_number:string
或者
rails generate migration AddPartNumberToProduct part_number:string
您在文件中得到相同的结果。
所以简短的回答是,您不需要调用 active_record 来手动创建迁移,但如果您这样做并且您正在使用 Active Record,请确保您的表名在迁移文件中是复数形式的。
调用activerecord gem来生成迁移文件。
如果仔细观察,迁移文件的超类是ActiveRecord::Migration类。