<div>
The approach I would recommend depends how sure you are that you don't need those columns, and won't in the future. If they really are unnecessary, take a backup of the database, and then remove them. It'll save you a world of confusion a few years down the line when trying to work out which bits of the database you actually use.</div><div><br></div><div>However, if it's more of a trial run, and there's a good likelihood of needing the data back again leave the columns in place for now, but do make a note to review that at some point in the future.
</div>
<div></div>
<p style="color: #A0A0A8;">On Friday, 16 March 2012 at 10:52, Ian Kynnersley wrote:</p>
<blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;">
<span><div><div>Hi,<div><br></div><div>In one of my current projects, the implementation of one of the models is changing a reasonable amount. There will be a batch of new fields and a couple that are no longer required.</div><div><br></div>
<div>What is the best practice for writing migrations that remove columns from tables? I'm thinking specifically of providing the ability to rollback the changes. Should I ignore this and just write an "up" migration to delete the columns? Should I create a duplicate table at the point of the migration to keep a history of the data in those columns? Should I leave them in the database to fester while removing references to them from the code?<br clear="all">
<div><br></div><div>The API docs say:</div><div><div>"Some transformations are destructive in a manner that cannot be reversed. Migrations of that kind should raise an ActiveRecord::IrreversibleMigration exception in their down method."<br>
</div><div><br></div><div>This seems to go along with my first option but seems unsatisfactory for a production app.</div><div><br></div><div>This covers some nice options (like backing up to a file): <a href="http://stackoverflow.com/a/621363/264376">http://stackoverflow.com/a/621363/264376</a> but I'm interested in what people on here think.</div>
<div><br></div><div><br></div></div><div>Cheers<br></div><div>Ian</div><div><br></div><div><br></div>-- <br>
<br>Ian Kynnersley<br><a href="http://iankynnersley.co.uk" target="_blank">http://iankynnersley.co.uk</a> | +44 (0) 7973 420 829 | <a href="http://twitter.com/kpopper" target="_blank">http://twitter.com/kpopper</a><br>
</div>
</div><div><div>_______________________________________________</div><div>Chat mailing list</div><div><a href="mailto:Chat@lists.lrug.org">Chat@lists.lrug.org</a></div><div><a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org">http://lists.lrug.org/listinfo.cgi/chat-lrug.org</a></div></div></div></span>
</blockquote>
<div>
<br>
</div>