aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorSean Dague2008-06-09 18:24:07 +0000
committerSean Dague2008-06-09 18:24:07 +0000
commit283cc90566b42985069d5af0a92dbecb10675d0d (patch)
treedb9b501f5e37f3454c1eff4c89162b95c7561552
parent*Fixed bug that caused failure when System.Console.Readline returns null (no ... (diff)
downloadopensim-SC_OLD-283cc90566b42985069d5af0a92dbecb10675d0d.zip
opensim-SC_OLD-283cc90566b42985069d5af0a92dbecb10675d0d.tar.gz
opensim-SC_OLD-283cc90566b42985069d5af0a92dbecb10675d0d.tar.bz2
opensim-SC_OLD-283cc90566b42985069d5af0a92dbecb10675d0d.tar.xz
start in on the shell for a generic database versioning module. My
intent is to create an easier way to manage database table versions like the model used for ruby on rails migrations.
Diffstat (limited to '')
-rw-r--r--OpenSim/Data/Migrations/Migration.cs77
-rw-r--r--prebuild.xml23
2 files changed, 100 insertions, 0 deletions
diff --git a/OpenSim/Data/Migrations/Migration.cs b/OpenSim/Data/Migrations/Migration.cs
new file mode 100644
index 0000000..0ae56ae
--- /dev/null
+++ b/OpenSim/Data/Migrations/Migration.cs
@@ -0,0 +1,77 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSim Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections.Generic;
30using System.Data;
31using System.IO;
32using System.Reflection;
33
34namespace OpenSim.Data.Migrations
35{
36 /// <summary>
37 ///
38 /// The Migration theory is based on the ruby on rails concept.
39 /// Each database driver is going to be allowed to have files in
40 /// Resources that specify the database migrations. They will be
41 /// of the form:
42 ///
43 /// 001_Users.sql
44 /// 002_Users.sql
45 /// 003_Users.sql
46 /// 001_Prims.sql
47 /// 002_Prims.sql
48 /// ...etc...
49 ///
50 /// When a database driver starts up, it specifies a resource that
51 /// needs to be brought up to the current revision. For instance:
52 ///
53 /// Migration um = new Migration("Users");
54 /// um.Upgrade(dbconnection);
55 ///
56 /// This works out which version Users is at, and applies all the
57 /// revisions past it to it. If there is no users table, all
58 /// revisions are applied in order. Consider each future
59 /// migration to be an incremental roll forward of the tables in
60 /// question.
61 ///
62 /// </summary>
63
64 public class Migration
65 {
66 private string _type;
67
68 public Migration(string type)
69 {
70 _type = type;
71 }
72
73
74 }
75
76
77} \ No newline at end of file
diff --git a/prebuild.xml b/prebuild.xml
index e5dd324..6257bad 100644
--- a/prebuild.xml
+++ b/prebuild.xml
@@ -196,6 +196,29 @@
196 </Files> 196 </Files>
197 </Project> 197 </Project>
198 198
199 <Project name="OpenSim.Data.Migrations" path="OpenSim/Data/Migrations" type="Library">
200 <Configuration name="Debug">
201 <Options>
202 <OutputPath>../../../bin/</OutputPath>
203 </Options>
204 </Configuration>
205 <Configuration name="Release">
206 <Options>
207 <OutputPath>../../../bin/</OutputPath>
208 </Options>
209 </Configuration>
210
211 <ReferencePath>../../../bin/</ReferencePath>
212 <Reference name="System" localCopy="false"/>
213 <Reference name="System.Data"/>
214 <Reference name="OpenSim.Framework"/>
215 <!-- needed for LLUUID types -->
216 <Reference name="libsecondlife.dll"/>
217 <Files>
218 <Match pattern="*.cs" recurse="true"/>
219 </Files>
220 </Project>
221
199 <Project name="OpenSim.Data" path="OpenSim/Data" type="Library"> 222 <Project name="OpenSim.Data" path="OpenSim/Data" type="Library">
200 <Configuration name="Debug"> 223 <Configuration name="Debug">
201 <Options> 224 <Options>