Skip to content

Commit e8c6ae3

Browse files
committed
Initial port of the SchemaUpdate feature.
SVN: trunk@3135
1 parent 0f3f8c1 commit e8c6ae3

22 files changed

+1389
-63
lines changed

src/NHibernate.Test/NHibernate.Test-2.0.csproj

+6
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,8 @@
532532
<Compile Include="QueryTest\PositionalParametersFixture.cs" />
533533
<Compile Include="QueryTest\QueryParametersFixture.cs" />
534534
<Compile Include="ReflectionOptimizerTest\LcgFixture.cs" />
535+
<Compile Include="SchemaUpdate\MigrationFixture.cs" />
536+
<Compile Include="SchemaUpdate\Version.cs" />
535537
<Compile Include="SecondLevelCacheTest\Item.cs" />
536538
<Compile Include="SecondLevelCacheTest\SecondLevelCacheTest.cs" />
537539
<Compile Include="Assertions\HaveSerializableAttributeAsserter.cs" />
@@ -1071,6 +1073,10 @@
10711073
<ItemGroup>
10721074
<EmbeddedResource Include="NHSpecificTest\NH995\Mappings.hbm.xml" />
10731075
</ItemGroup>
1076+
<ItemGroup>
1077+
<EmbeddedResource Include="SchemaUpdate\1_Version.hbm.xml" />
1078+
<EmbeddedResource Include="SchemaUpdate\2_Version.hbm.xml" />
1079+
</ItemGroup>
10741080
<ItemGroup>
10751081
<Folder Include="Properties\" />
10761082
<Folder Include="Unionsubclass2\" />
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0"?>
2+
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
3+
namespace="NHibernate.Test.SchemaUpdate"
4+
assembly="NHibernate.Test">
5+
6+
<class name="Version">
7+
<id name="Id">
8+
<generator class="NHibernate.Id.TableHiLoGenerator">
9+
<param name="table">uid_table</param>
10+
<param name="column">next_hi_value_column</param>
11+
</generator>
12+
</id>
13+
<property name="Description"/>
14+
<many-to-one name="Previous"/>
15+
</class>
16+
17+
</hibernate-mapping>
18+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0"?>
2+
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
3+
namespace="NHibernate.Test.SchemaUpdate"
4+
assembly="NHibernate.Test">
5+
6+
<class name="Version">
7+
<id name="Id">
8+
<generator class="NHibernate.Id.TableHiLoGenerator">
9+
<param name="table">uid_table</param>
10+
<param name="column">next_hi_value_column</param>
11+
</generator>
12+
</id>
13+
<property name="Description"/>
14+
<property name="Name"/>
15+
</class>
16+
17+
</hibernate-mapping>
18+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
namespace NHibernate.Test.SchemaUpdate
2+
{
3+
using System;
4+
using System.IO;
5+
using System.Reflection;
6+
using Cfg;
7+
using NHibernate.Tool.hbm2ddl;
8+
using NUnit.Framework;
9+
10+
[TestFixture]
11+
public class MigrationFixture
12+
{
13+
[Test]
14+
public void SimpleColumnAddition()
15+
{
16+
String resource2 = "NHibernate.Test.SchemaUpdate.2_Version.hbm.xml";
17+
String resource1 = "NHibernate.Test.SchemaUpdate.1_Version.hbm.xml";
18+
19+
Configuration v1cfg = new Configuration();
20+
using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resource1))
21+
v1cfg.AddInputStream(stream);
22+
new SchemaExport(v1cfg).Execute(false, true, true, false);
23+
24+
SchemaUpdate v1schemaUpdate = new SchemaUpdate(v1cfg);
25+
v1schemaUpdate.Execute(true, true);
26+
27+
Assert.AreEqual(0, v1schemaUpdate.getExceptions().Count);
28+
29+
Configuration v2cfg = new Configuration();
30+
using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resource2))
31+
v2cfg.AddInputStream(stream);
32+
33+
34+
SchemaUpdate v2schemaUpdate = new SchemaUpdate(v2cfg);
35+
v2schemaUpdate.Execute(true, true);
36+
Assert.AreEqual(0, v2schemaUpdate.getExceptions().Count);
37+
38+
}
39+
}
40+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
namespace NHibernate.Test.SchemaUpdate
2+
{
3+
public class Version
4+
{
5+
private int id;
6+
private string name;
7+
private string description;
8+
private Version previous;
9+
10+
public virtual int Id
11+
{
12+
get { return id; }
13+
set { id = value; }
14+
}
15+
16+
public virtual string Name
17+
{
18+
get { return name; }
19+
set { name = value; }
20+
}
21+
22+
public virtual string Description
23+
{
24+
get { return description; }
25+
set { description = value; }
26+
}
27+
28+
29+
public virtual Version Previous
30+
{
31+
get { return previous; }
32+
set { previous = value; }
33+
}
34+
}
35+
}

0 commit comments

Comments
 (0)