rails 如何正确回滚某些迁移
rails How to properly rollback certain migrations
在我的博客项目中,我使用回形针来管理图片。现在我想切换到载波,并希望让我的项目就像回形针从未存在过一样。
首先,项目是这样的:
每篇博文都有很多图片,每张图片都有一张图片。
所以我为画廊生成了一个模型
rails g model pictures
这会创建迁移 create_pictures.rb
和 picture
模型。
然后我给图片模型添加了image属性
rails g paperclip picture image
这创建了迁移 AddAttachementImageToPictures.rb
然后我创建了迁移 AddPostIdToPictures
现在我想进行迁移以摆脱所有这些东西。 3 次迁移中的 2 次是关于向 pictures
table 添加属性。所以我想知道我是否可以删除 pictures
table 和 picture
模型?
rails g migration RemovePictures
rails d model Picture
还是需要先删除属性,然后再删除整个table?
是的,你做对了。您应该删除 pictures
table,然后删除 Picture
模型。
如果您不需要 table,则无需单独删除每一列。或者,如果您打算对载波使用相同的模型,那么您只需删除回形针的属性并为载波创建新的属性。
此 link 将帮助您进行迁移更改。
是的,您可以删除提到的两行,这应该足够了。
如果您已经上传了一些图片并希望拥有相同的模型,只需更改 gem。看这里 Migrate from paperclip to carrierwave
您也可以一起阅读,Carrierwave migration
为了回滚到特定版本使用:
rake db:migrate:down VERSION=20100905201547
在我的博客项目中,我使用回形针来管理图片。现在我想切换到载波,并希望让我的项目就像回形针从未存在过一样。
首先,项目是这样的: 每篇博文都有很多图片,每张图片都有一张图片。 所以我为画廊生成了一个模型
rails g model pictures
这会创建迁移 create_pictures.rb
和 picture
模型。
然后我给图片模型添加了image属性
rails g paperclip picture image
这创建了迁移 AddAttachementImageToPictures.rb
然后我创建了迁移 AddPostIdToPictures
现在我想进行迁移以摆脱所有这些东西。 3 次迁移中的 2 次是关于向 pictures
table 添加属性。所以我想知道我是否可以删除 pictures
table 和 picture
模型?
rails g migration RemovePictures
rails d model Picture
还是需要先删除属性,然后再删除整个table?
是的,你做对了。您应该删除 pictures
table,然后删除 Picture
模型。
如果您不需要 table,则无需单独删除每一列。或者,如果您打算对载波使用相同的模型,那么您只需删除回形针的属性并为载波创建新的属性。
此 link 将帮助您进行迁移更改。
是的,您可以删除提到的两行,这应该足够了。
如果您已经上传了一些图片并希望拥有相同的模型,只需更改 gem。看这里 Migrate from paperclip to carrierwave
您也可以一起阅读,Carrierwave migration
为了回滚到特定版本使用:
rake db:migrate:down VERSION=20100905201547