运行时:
rails generate migration <someaction> field:type
我可以看到它正在执行两项操作:
我完全理解为什么它会生成迁移文件,但为什么它会调用ActiveRecord?这让我感到困扰,因为如果我想手动创建迁移文件怎么办?我将如何模仿这个调用(如果它甚至是必要的......)?
答案 0 :(得分:3)
MigrationGenerator
生成器:
1)加载你的ORM(默认情况下在Rails中是活动记录)让它扩展正确的'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,请确保您的表名在您的迁移文件中是多元化的。
答案 1 :(得分:0)
activerecord gem来生成迁移文件。
如果仔细观察,迁移文件的超类是ActiveRecord::Migration类。