From e2c7371b4f54f4f778a61864342daa90a2d7fe5c Mon Sep 17 00:00:00 2001 From: "kay.one" Date: Thu, 23 Jun 2011 18:29:15 -0700 Subject: [PATCH] updated Migrator to add support for Indexes --- Libraries/Migrator.NET/Migrator.Framework.dll | Bin 27648 -> 28160 bytes Libraries/Migrator.NET/Migrator.Framework.xml | 486 +++++++++--------- Libraries/Migrator.NET/Migrator.Providers.dll | Bin 78336 -> 78848 bytes 3 files changed, 243 insertions(+), 243 deletions(-) diff --git a/Libraries/Migrator.NET/Migrator.Framework.dll b/Libraries/Migrator.NET/Migrator.Framework.dll index 97ceaeea3cc4f473fd4b6b754319d2f81462ae96..5d62387c9b1a9bbc49e2bac4db1c8379e5f7e8f4 100644 GIT binary patch literal 28160 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 Q_bvDGbp7Ag|927ie>snWc>n+a literal 27648 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 G;Qs)sz~h1d diff --git a/Libraries/Migrator.NET/Migrator.Framework.xml b/Libraries/Migrator.NET/Migrator.Framework.xml index 41fba991d..4002f9f26 100644 --- a/Libraries/Migrator.NET/Migrator.Framework.xml +++ b/Libraries/Migrator.NET/Migrator.Framework.xml @@ -4,123 +4,43 @@ Migrator.Framework - - - A migration is a group of transformation applied to the database schema - (or sometimes data) to port the database from one version to another. - The Up() method must apply the modifications (eg.: create a table) - and the Down() method must revert, or rollback the modifications - (eg.: delete a table). - - Each migration must be decorated with the [Migration(0)] attribute. - Each migration number (0) must be unique, or else a - DuplicatedVersionException will be trown. - - - All migrations are executed inside a transaction. If an exception is - thrown, the transaction will be rolledback and transformations wont be - applied. - - - It is best to keep a limited number of transformation inside a migration - so you can easely move from one version of to another with fine grain - modifications. - You should give meaningful name to the migration class and prepend the - migration number to the filename so they keep ordered, eg.: - 002_CreateTableTest.cs. - - - Use the Database property to apply transformation and the - Logger property to output informations in the console (or other). - For more details on transformations see - ITransformationProvider. - - - - The following migration creates a new Customer table. - (File 003_AddCustomerTable.cs) - - [Migration(3)] - public class AddCustomerTable : Migration - { - public override void Up() - { - Database.AddTable("Customer", - new Column("Name", typeof(string), 50), - new Column("Address", typeof(string), 100) - ); - } - public override void Down() - { - Database.RemoveTable("Customer"); - } - } - - - - - - Defines tranformations to port the database to the current version. - - - - - This is run after the Up transaction has been committed - - - - - Defines transformations to revert things done in Up. - - - - - This is run after the Down transaction has been committed - - - - - This gets called once on the first migration object. - - - - - Represents the database. - . - - Migration.Framework.ITransformationProvider - - + - Defines tranformations to port the database to the current version. + Describe a migration - + - This is run after the Up transaction has been committed + Describe the migration + The unique version of the migration. - + - Defines transformations to revert things done in Up. + The version reflected by the migration - + - This is run after the Down transaction has been committed + Set to true to ignore this migration. - + - This gets called once on the first migration object. + Convert a classname to something more readable. + ex.: CreateATable => Create a table + + - + - Represents the database. - . + - Migration.Framework.ITransformationProvider + + + + @@ -211,149 +131,6 @@ The format string ("{0}, blabla {1}"). Parameters to apply to the format string. - - - Base class for migration errors. - - - - - Return the plural of a word. - - The singular form - The plural form of - - - - Return the singular of a word. - - The plural form - The singular form of - - - - Capitalizes a word. - - The word to be capitalized. - capitalized. - - - - Convert a classname to something more readable. - ex.: CreateATable => Create a table - - - - - - - - - - - - - - - - Handles writing a message to the log medium (i.e. file, console) - - - - - Write this message - - - - - - - Write this message, as a line - - - - - - - Represents a table column properties. - - - - - Null is allowable - - - - - Null is not allowable - - - - - Identity column, autoinc - - - - - Unique Column - - - - - Indexed Column - - - - - Unsigned Column - - - - - Foreign Key - - - - - Primary Key - - - - - Primary key. Make the column a PrimaryKey and unsigned - - - - - A set of extension methods for the transformation provider to make it easier to - build many-to-many joining tables (takes care of adding the joining table and foreign - key constraints as necessary. - This functionality was useful when bootstrapping a number of projects a few years ago, but - now that most changes are brown-field I'm thinking of removing these methods as it's easier to maintain - code that creates the tables etc. directly within migration. - - - - - Describe a migration - - - - - Describe the migration - - The unique version of the migration. - - - - The version reflected by the migration - - - - - Set to true to ignore this migration. - - The main interface to use in Migrations to make changes on a database schema. @@ -853,6 +630,109 @@ Logger used to log details of operations performed during migration + + + Return the plural of a word. + + The singular form + The plural form of + + + + Return the singular of a word. + + The plural form + The singular form of + + + + Capitalizes a word. + + The word to be capitalized. + capitalized. + + + + Defines tranformations to port the database to the current version. + + + + + This is run after the Up transaction has been committed + + + + + Defines transformations to revert things done in Up. + + + + + This is run after the Down transaction has been committed + + + + + This gets called once on the first migration object. + + + + + Represents the database. + . + + Migration.Framework.ITransformationProvider + + + + Represents a table column properties. + + + + + Null is allowable + + + + + Null is not allowable + + + + + Identity column, autoinc + + + + + Unique Column + + + + + Indexed Column + + + + + Unsigned Column + + + + + Foreign Key + + + + + Primary Key + + + + + Primary key. Make the column a PrimaryKey and unsigned + + ILogger interface. @@ -877,6 +757,116 @@ Represents a table column. + + + Base class for migration errors. + + + + + Handles writing a message to the log medium (i.e. file, console) + + + + + Write this message + + + + + + + Write this message, as a line + + + + + + + A migration is a group of transformation applied to the database schema + (or sometimes data) to port the database from one version to another. + The Up() method must apply the modifications (eg.: create a table) + and the Down() method must revert, or rollback the modifications + (eg.: delete a table). + + Each migration must be decorated with the [Migration(0)] attribute. + Each migration number (0) must be unique, or else a + DuplicatedVersionException will be trown. + + + All migrations are executed inside a transaction. If an exception is + thrown, the transaction will be rolledback and transformations wont be + applied. + + + It is best to keep a limited number of transformation inside a migration + so you can easely move from one version of to another with fine grain + modifications. + You should give meaningful name to the migration class and prepend the + migration number to the filename so they keep ordered, eg.: + 002_CreateTableTest.cs. + + + Use the Database property to apply transformation and the + Logger property to output informations in the console (or other). + For more details on transformations see + ITransformationProvider. + + + + The following migration creates a new Customer table. + (File 003_AddCustomerTable.cs) + + [Migration(3)] + public class AddCustomerTable : Migration + { + public override void Up() + { + Database.AddTable("Customer", + new Column("Name", typeof(string), 50), + new Column("Address", typeof(string), 100) + ); + } + public override void Down() + { + Database.RemoveTable("Customer"); + } + } + + + + + + Defines tranformations to port the database to the current version. + + + + + This is run after the Up transaction has been committed + + + + + Defines transformations to revert things done in Up. + + + + + This is run after the Down transaction has been committed + + + + + This gets called once on the first migration object. + + + + + Represents the database. + . + + Migration.Framework.ITransformationProvider + Adds a Table to be created to the Schema @@ -905,6 +895,16 @@ Column name to be added IColumnOptions to restrict chaining + + + A set of extension methods for the transformation provider to make it easier to + build many-to-many joining tables (takes care of adding the joining table and foreign + key constraints as necessary. + This functionality was useful when bootstrapping a number of projects a few years ago, but + now that most changes are brown-field I'm thinking of removing these methods as it's easier to maintain + code that creates the tables etc. directly within migration. + + Text logger for the migration mediator diff --git a/Libraries/Migrator.NET/Migrator.Providers.dll b/Libraries/Migrator.NET/Migrator.Providers.dll index f9d6f65ecd20d2b87d1d20841bc08afc02ede5ce..89e3d810607d48a12a8fc84aa514dcea2869ec1d 100644 GIT binary patch literal 78848 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%0A($uw0iB+`m$L7sLu=A)9cBTE` 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 V1r|$TGkxB0vmIY)|Nnsk{|hO^qT>Jn