<?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: Schema Evolution Confusion / Example Case</title>
	<atom:link href="http://kered.org/blog/2007-08-03/schema-evolution-confusion-example-case/feed/" rel="self" type="application/rss+xml" />
	<link>http://kered.org/blog/2007-08-03/schema-evolution-confusion-example-case/</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sat, 06 Mar 2010 19:47:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: SQL Tutorials</title>
		<link>http://kered.org/blog/2007-08-03/schema-evolution-confusion-example-case/comment-page-1/#comment-270</link>
		<dc:creator>SQL Tutorials</dc:creator>
		<pubDate>Fri, 01 May 2009 02:44:44 +0000</pubDate>
		<guid isPermaLink="false">http://kered.org/blog/2007-08-03/schema-evolution-confusion-example-case/#comment-270</guid>
		<description>You know, the thing about SQL is, that there is virtually nothing that can replace it.

Does anyone know if a substitute exists for sql? I mean besides MS SQL and Oracle and all that jazz. Thanks.</description>
		<content:encoded><![CDATA[<p>You know, the thing about SQL is, that there is virtually nothing that can replace it.</p>
<p>Does anyone know if a substitute exists for sql? I mean besides MS SQL and Oracle and all that jazz. Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SQL Tutorials</title>
		<link>http://kered.org/blog/2007-08-03/schema-evolution-confusion-example-case/comment-page-1/#comment-269</link>
		<dc:creator>SQL Tutorials</dc:creator>
		<pubDate>Fri, 01 May 2009 02:44:14 +0000</pubDate>
		<guid isPermaLink="false">http://kered.org/blog/2007-08-03/schema-evolution-confusion-example-case/#comment-269</guid>
		<description>Does anyone know if there is another language or set of commands beside SQL for talking with databases?

I&#039;m working on a project and am doing some research thanks</description>
		<content:encoded><![CDATA[<p>Does anyone know if there is another language or set of commands beside SQL for talking with databases?</p>
<p>I&#8217;m working on a project and am doing some research thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: buriy</title>
		<link>http://kered.org/blog/2007-08-03/schema-evolution-confusion-example-case/comment-page-1/#comment-268</link>
		<dc:creator>buriy</dc:creator>
		<pubDate>Mon, 06 Aug 2007 03:14:08 +0000</pubDate>
		<guid isPermaLink="false">http://kered.org/blog/2007-08-03/schema-evolution-confusion-example-case/#comment-268</guid>
		<description>IMO the right behavior is to ask user to confirm data loss when changing v1 =&gt; v2.</description>
		<content:encoded><![CDATA[<p>IMO the right behavior is to ask user to confirm data loss when changing v1 =&gt; v2.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SmileyChris</title>
		<link>http://kered.org/blog/2007-08-03/schema-evolution-confusion-example-case/comment-page-1/#comment-267</link>
		<dc:creator>SmileyChris</dc:creator>
		<pubDate>Fri, 03 Aug 2007 21:48:35 +0000</pubDate>
		<guid isPermaLink="false">http://kered.org/blog/2007-08-03/schema-evolution-confusion-example-case/#comment-267</guid>
		<description>I would argue that the exact path from v1 =&gt; v3 can definitely be important!

v1

class Russ(models.Model):
____&quot;this model is going to have a bit of a day (v1)&quot;
____a = models.CharField(maxlength=200)

v2

class Russ(models.Model):
____&quot;this model is going to have a bit of a day (v2)&quot;
____b = models.CharField(maxlength=200, null=True)
____c = models.CharField(maxlength=200, aka=&#039;a&#039;)

v3

class Russ(models.Model):
____&quot;this model is going to have a bit of a day (v3)&quot;
____a = models.CharField(maxlength=200, aka=&#039;b&#039;, null=True)
____b = models.CharField(maxlength=200, aka=&#039;c&#039;)

Tester 1 &amp; 2 have the same database contents at v1: [Russ(a=&#039;first&#039;)]

Tester 1 goes from v1 =&gt; v2 =&gt; v3. Now he has [Russ(a=None, b=&#039;first&#039;)]
Tester 2 merges from 1&#039;s work and evolves from v1 =&gt; v3. Now he has [Russ(a=&#039;first&#039;, b=None)]  (or error since b shouldn&#039;t be able to be NULL).

Since you have &quot;lost&quot; what happened in v2, it&#039;s not possible for Tester 2 to guess what should have happened.</description>
		<content:encoded><![CDATA[<p>I would argue that the exact path from v1 =&gt; v3 can definitely be important!</p>
<p>v1</p>
<p>class Russ(models.Model):<br />
____&#8221;this model is going to have a bit of a day (v1)&#8221;<br />
____a = models.CharField(maxlength=200)</p>
<p>v2</p>
<p>class Russ(models.Model):<br />
____&#8221;this model is going to have a bit of a day (v2)&#8221;<br />
____b = models.CharField(maxlength=200, null=True)<br />
____c = models.CharField(maxlength=200, aka=&#8217;a')</p>
<p>v3</p>
<p>class Russ(models.Model):<br />
____&#8221;this model is going to have a bit of a day (v3)&#8221;<br />
____a = models.CharField(maxlength=200, aka=&#8217;b', null=True)<br />
____b = models.CharField(maxlength=200, aka=&#8217;c')</p>
<p>Tester 1 &amp; 2 have the same database contents at v1: [Russ(a='first')]</p>
<p>Tester 1 goes from v1 =&gt; v2 =&gt; v3. Now he has [Russ(a=None, b='first')]<br />
Tester 2 merges from 1&#8217;s work and evolves from v1 =&gt; v3. Now he has [Russ(a='first', b=None)]  (or error since b shouldn&#8217;t be able to be NULL).</p>
<p>Since you have &#8220;lost&#8221; what happened in v2, it&#8217;s not possible for Tester 2 to guess what should have happened.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
