我一直在阅读Rails Migrations,以帮助我开始构建一个rails项目。
我对在db/migrate文件夹中生成文件有点困惑。
我设计应用程序的方式是从模型开始...尽可能详细地描述系统中将要拥有的所有对象。我希望能够使用rails迁移生成器自动从这些模型中生成迁移文件。
是的,我知道“手动创建迁移很容易”。我知道我可以手动完成,但我不明白为什么工具与预先创建的模型分开。
根据我从文章和其他关于迁移的问题中的理解,我可以像这样生成一个迁移:
我不明白的是为什么当我的模型已经存在SomeObj时,我需要传入字段?Rails无法从some_obj.rb中检测并创建迁移吗?
此外,当我有一个更复杂的模型,具有has_many、belongs_to和has_and_belongs_to_many关系时,如果它自动创建具有正确名称的JOIN表和字段(例如foreign_obj_id,foreign_obj_ids),那将非常好。
在之前的项目中,我不需要处理迁移,因为我使用了Mongo+Mongoid - 由于Mongo的工作方式,集合会自动生成(不存在的集合在插入或更新时会自动创建)。现在,我在这个Rails应用中使用Postgres(但我确信在MySQL或任何其他关系数据库中也会发生同样的事情)。
无论如何,难道没有帮助程序来处理这种事情吗?我必须手动创建所有这些迁移吗?
我对在db/migrate文件夹中生成文件有点困惑。
我设计应用程序的方式是从模型开始...尽可能详细地描述系统中将要拥有的所有对象。我希望能够使用rails迁移生成器自动从这些模型中生成迁移文件。
是的,我知道“手动创建迁移很容易”。我知道我可以手动完成,但我不明白为什么工具与预先创建的模型分开。
根据我从文章和其他关于迁移的问题中的理解,我可以像这样生成一个迁移:
rails generate migration SomeObj field:string some_other_field:integer
我不明白的是为什么当我的模型已经存在SomeObj时,我需要传入字段?Rails无法从some_obj.rb中检测并创建迁移吗?
此外,当我有一个更复杂的模型,具有has_many、belongs_to和has_and_belongs_to_many关系时,如果它自动创建具有正确名称的JOIN表和字段(例如foreign_obj_id,foreign_obj_ids),那将非常好。
在之前的项目中,我不需要处理迁移,因为我使用了Mongo+Mongoid - 由于Mongo的工作方式,集合会自动生成(不存在的集合在插入或更新时会自动创建)。现在,我在这个Rails应用中使用Postgres(但我确信在MySQL或任何其他关系数据库中也会发生同样的事情)。
无论如何,难道没有帮助程序来处理这种事情吗?我必须手动创建所有这些迁移吗?