summaryrefslogtreecommitdiff
path: root/doc/source/historical/ProjectDesignDecisionsVersioning.trac
diff options
context:
space:
mode:
Diffstat (limited to 'doc/source/historical/ProjectDesignDecisionsVersioning.trac')
-rw-r--r--doc/source/historical/ProjectDesignDecisionsVersioning.trac10
1 files changed, 5 insertions, 5 deletions
diff --git a/doc/source/historical/ProjectDesignDecisionsVersioning.trac b/doc/source/historical/ProjectDesignDecisionsVersioning.trac
index f06ba18..9dcc803 100644
--- a/doc/source/historical/ProjectDesignDecisionsVersioning.trac
+++ b/doc/source/historical/ProjectDesignDecisionsVersioning.trac
@@ -7,7 +7,7 @@ An option not discussed below is "no versioning"; that is, simply apply any scri
A single integer version number would specify the version of each database. This is stored in the database in a table, let's call it "schema"; each migration script is associated with a certain database version number.
+ Simple implementation[[br]]
-Of the 3 solutions presented here, this one is by far the simplest.
+Of the 3 solutions presented here, this one is by far the simplest.
+ Past success[[br]]
Used in [http://www.rubyonrails.org/ Ruby on Rails' migrations].
@@ -32,13 +32,13 @@ Similar to the database-wide version number; the contents of the new table are m
- Determining the version of database-specific objects (ie. stored procedures, functions) is difficult.
- Ultimately gains nothing over the previous solution.[[br]]
-The intent here was to allow multiple people to write scripts for a single database, but if database-wide version numbers aren't assigned until the script is placed in the repository, we could already do this.
+The intent here was to allow multiple people to write scripts for a single database, but if database-wide version numbers aren't assigned until the script is placed in the repository, we could already do this.
=== Version determined via introspection ===
-Each script has a schema associated with it, rather than a version number. The database schema is loaded, analyzed, and compared to the schema expected by the script.
+Each script has a schema associated with it, rather than a version number. The database schema is loaded, analyzed, and compared to the schema expected by the script.
+ No modifications to the database are necessary for this versioning system.[[br]]
-The primary advantage here is that no changes to the database are required.
+The primary advantage here is that no changes to the database are required.
- Most difficult solution to implement, by far.[[br]]
Comparing the state of every schema object in the database is much more complex than simply comparing a version number, especially since we need to do it in a database-independent way (ie. we can't just diff the dump of each schema). SQLAlchemy's reflection would certainly be very helpful, but this remains the most complex solution.
@@ -53,4 +53,4 @@ When version numbers are stored in the database, you have some idea of where an
----
-'''Conclusion''': database-wide version numbers are the best way to go. \ No newline at end of file
+'''Conclusion''': database-wide version numbers are the best way to go. \ No newline at end of file