<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Ruby on Rails Migrations: Good Idea with a Crazy Philosophy</title>
	<atom:link href="http://maggienelson.com/2007/06/ruby-on-rails-migrations-good-idea-with-a-crazy-philosophy/feed/" rel="self" type="application/rss+xml" />
	<link>http://maggienelson.com/2007/06/ruby-on-rails-migrations-good-idea-with-a-crazy-philosophy/</link>
	<description>databases and code goodness</description>
	<lastBuildDate>Sat, 28 Aug 2010 21:51:25 -0400</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Dave</title>
		<link>http://maggienelson.com/2007/06/ruby-on-rails-migrations-good-idea-with-a-crazy-philosophy/comment-page-1/#comment-10</link>
		<dc:creator>Dave</dc:creator>
		<pubDate>Mon, 02 Jul 2007 15:11:10 +0000</pubDate>
		<guid isPermaLink="false">http://maggienelson.com/blog/?p=13#comment-10</guid>
		<description>Fortunately Rails doesn&#039;t force the willy-nilly attitude on you, but its available as a tradeoff.  If you can forgo Rails&#039; syntactical sugar (i.e. create_table :foo, ... ; add_column :foo, :bar) and are willing to commit to a single vendor (or omit vendor extensions), then you can just go ahead and write SQL statements using migrations.  You would need to store versions of your procedures/packages, sure, but that&#039;s not so hard.
The biggest benefit of migrations is that you get to ignore prod for a while, make a bazillion changes in dev, then when you&#039;re ready, its incredibly easy to apply them to prod.  You can even rollback your migrations so dev and prod match, and then roll them forward at once to reassure yourself that they&#039;ll work.
Its an easy way to give structure to DDL modifications, and there&#039;s not much overhead.  I find the value of the syntactical sugar to be questionable, but then again I have the luxury of using my favorite DB.
PS - Regarding &quot;know that ... table X actually exists&quot;, since migrations are strictly ordered, if you create migration #5 to alter the table, you can look at the state of the DB in migration #4 and judge from there.  What about errors you say?  Well, that&#039;s why you test your migrations against your dev db!
</description>
		<content:encoded><![CDATA[<p>Fortunately Rails doesn&#8217;t force the willy-nilly attitude on you, but its available as a tradeoff.  If you can forgo Rails&#8217; syntactical sugar (i.e. create_table :foo, &#8230; ; add_column :foo, :bar) and are willing to commit to a single vendor (or omit vendor extensions), then you can just go ahead and write SQL statements using migrations.  You would need to store versions of your procedures/packages, sure, but that&#8217;s not so hard.<br />
The biggest benefit of migrations is that you get to ignore prod for a while, make a bazillion changes in dev, then when you&#8217;re ready, its incredibly easy to apply them to prod.  You can even rollback your migrations so dev and prod match, and then roll them forward at once to reassure yourself that they&#8217;ll work.<br />
Its an easy way to give structure to DDL modifications, and there&#8217;s not much overhead.  I find the value of the syntactical sugar to be questionable, but then again I have the luxury of using my favorite DB.<br />
PS &#8211; Regarding &#8220;know that &#8230; table X actually exists&#8221;, since migrations are strictly ordered, if you create migration #5 to alter the table, you can look at the state of the DB in migration #4 and judge from there.  What about errors you say?  Well, that&#8217;s why you test your migrations against your dev db!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
