diff --git a/Libraries/Migrator.NET/Migrator.Framework.dll b/Libraries/Migrator.NET/Migrator.Framework.dll
index 5d62387c9..d007c6541 100644
Binary files a/Libraries/Migrator.NET/Migrator.Framework.dll and b/Libraries/Migrator.NET/Migrator.Framework.dll differ
diff --git a/Libraries/Migrator.NET/Migrator.Framework.xml b/Libraries/Migrator.NET/Migrator.Framework.xml
index 4002f9f26..b8e7f4d55 100644
--- a/Libraries/Migrator.NET/Migrator.Framework.xml
+++ b/Libraries/Migrator.NET/Migrator.Framework.xml
@@ -4,44 +4,6 @@
Migrator.Framework
-
-
- 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.
-
-
-
-
- Convert a classname to something more readable.
- ex.: CreateATable => Create a table
-
-
-
-
-
-
-
-
-
-
-
-
-
Log that we have started a migration
@@ -131,6 +93,56 @@
The format string ("{0}, blabla {1}").
Parameters to apply to the format string.
+
+
+ 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
+
+
The main interface to use in Migrations to make changes on a database schema.
@@ -625,112 +637,35 @@
The list of Migrations currently applied to the database.
+
+
+ Connection string to the database
+
+
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.
+ Describe a migration
-
+
- This is run after the Up transaction has been committed
+ Describe the migration
+
+ The unique version of the migration.
+
+
+
+ The version reflected by the migration
-
+
- 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
+ Set to true to ignore this migration.
@@ -752,35 +687,6 @@
-
-
- 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
@@ -835,6 +741,38 @@
+
+
+ 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.
@@ -867,6 +805,52 @@
Migration.Framework.ITransformationProvider
+
+
+ Text logger for the migration mediator
+
+
+
+
+ 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.
+
+
+
+
+ Convert a classname to something more readable.
+ ex.: CreateATable => Create a table
+
+
+
+
+
+
+
+
+
+
+
+
+
Adds a Table to be created to the Schema
@@ -895,6 +879,27 @@
Column name to be added
IColumnOptions to restrict chaining
+
+
+ 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.
+
A set of extension methods for the transformation provider to make it easier to
@@ -905,9 +910,9 @@
code that creates the tables etc. directly within migration.
-
+
- Text logger for the migration mediator
+ Base class for migration errors.
diff --git a/Libraries/Migrator.NET/Migrator.Providers.dll b/Libraries/Migrator.NET/Migrator.Providers.dll
index 89e3d8106..2d9627001 100644
Binary files a/Libraries/Migrator.NET/Migrator.Providers.dll and b/Libraries/Migrator.NET/Migrator.Providers.dll differ
diff --git a/Libraries/Migrator.NET/Migrator.Providers.xml b/Libraries/Migrator.NET/Migrator.Providers.xml
index 0dd21fc68..723c61879 100644
--- a/Libraries/Migrator.NET/Migrator.Providers.xml
+++ b/Libraries/Migrator.NET/Migrator.Providers.xml
@@ -4,6 +4,67 @@
Migrator.Providers
+
+
+ Defines the implementations specific details for a particular database.
+
+
+
+
+ Subclasses register a typename for the given type code and maximum
+ column length. $l in the type name will be replaced by the column
+ length (if appropriate)
+
+ The typecode
+ Maximum length of database type
+ The database type name
+
+
+
+ Suclasses register a typename for the given type code. $l in the
+ typename will be replaced by the column length (if appropriate).
+
+ The typecode
+ The database type name
+
+
+
+ Get the name of the database type associated with the given
+
+ The DbType
+ The database type name used by ddl.
+
+
+
+ Get the name of the database type associated with the given
+
+ The DbType
+ The database type name used by ddl.
+
+
+
+
+ Get the name of the database type associated with the given
+
+ The DbType
+ The database type name used by ddl.
+
+
+
+
+
+
+ Subclasses register which DbTypes are unsigned-compatible (ie, available in signed and unsigned variants)
+
+
+
+
+
+ Determine if a particular database type has an unsigned variant
+
+ The DbType
+ True if the database type has an unsigned variant, otherwise false
+
Migration transformations provider for Microsoft SQL Server Compact Edition.
@@ -190,70 +251,9 @@
The list of Migrations currently applied to the database.
-
+
- Defines the implementations specific details for a particular database.
-
-
-
-
- Subclasses register a typename for the given type code and maximum
- column length. $l in the type name will be replaced by the column
- length (if appropriate)
-
- The typecode
- Maximum length of database type
- The database type name
-
-
-
- Suclasses register a typename for the given type code. $l in the
- typename will be replaced by the column length (if appropriate).
-
- The typecode
- The database type name
-
-
-
- Get the name of the database type associated with the given
-
- The DbType
- The database type name used by ddl.
-
-
-
- Get the name of the database type associated with the given
-
- The DbType
- The database type name used by ddl.
-
-
-
-
- Get the name of the database type associated with the given
-
- The DbType
- The database type name used by ddl.
-
-
-
-
-
-
- Subclasses register which DbTypes are unsigned-compatible (ie, available in signed and unsigned variants)
-
-
-
-
-
- Determine if a particular database type has an unsigned variant
-
- The DbType
- True if the database type has an unsigned variant, otherwise false
-
-
-
- Migration transformations provider for PostgreSql (using NPGSql .Net driver)
+ No Op (Null Object Pattern) implementation of the ITransformationProvider
@@ -358,6 +358,11 @@
+
+
+ Migration transformations provider for PostgreSql (using NPGSql .Net driver)
+
+
Summary description for MySqlTransformationProvider.
@@ -380,10 +385,5 @@
-
-
- No Op (Null Object Pattern) implementation of the ITransformationProvider
-
-
diff --git a/Libraries/Migrator.NET/Migrator.XML b/Libraries/Migrator.NET/Migrator.XML
index 665acafbd..b88f07386 100644
--- a/Libraries/Migrator.NET/Migrator.XML
+++ b/Libraries/Migrator.NET/Migrator.XML
@@ -4,9 +4,19 @@
Migrator
-
+
- Comparer of Migration by their version attribute.
+ Exception thrown when a migration number is not unique.
+
+
+
+
+ Handles loading Provider implementations
+
+
+
+
+ Description of MigrateAnywhere.
@@ -23,6 +33,12 @@
The most recently applied Migration.
+
+
+ Exception thrown in a migration Down() method
+ when changes can't be undone.
+
+
Migrations mediator.
@@ -99,25 +115,9 @@
Returns the last version of the migrations.
-
+
- Exception thrown in a migration Down() method
- when changes can't be undone.
-
-
-
-
- Exception thrown when a migration number is not unique.
-
-
-
-
- Handles loading Provider implementations
-
-
-
-
- Description of MigrateAnywhere.
+ Comparer of Migration by their version attribute.
diff --git a/Libraries/Migrator.NET/Migrator.dll b/Libraries/Migrator.NET/Migrator.dll
index 88e7addb7..7409148b8 100644
Binary files a/Libraries/Migrator.NET/Migrator.dll and b/Libraries/Migrator.NET/Migrator.dll differ
diff --git a/Migrator.net/Migrator.Framework/Column.cs b/Migrator.net/Migrator.Framework/Column.cs
deleted file mode 100644
index 8542ecc8b..000000000
--- a/Migrator.net/Migrator.Framework/Column.cs
+++ /dev/null
@@ -1,126 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-using System.Data;
-
-namespace Migrator.Framework
-{
- ///
- /// Represents a table column.
- ///
- public class Column : IColumn
- {
- private string _name;
- private DbType _type;
- private int _size;
- private ColumnProperty _property;
- private object _defaultValue;
-
- public Column(string name)
- {
- Name = name;
- }
-
- public Column(string name, DbType type)
- {
- Name = name;
- Type = type;
- }
-
- public Column(string name, DbType type, int size)
- {
- Name = name;
- Type = type;
- Size = size;
- }
-
- public Column(string name, DbType type, object defaultValue)
- {
- Name = name;
- Type = type;
- DefaultValue = defaultValue;
- }
-
- public Column(string name, DbType type, ColumnProperty property)
- {
- Name = name;
- Type = type;
- ColumnProperty = property;
- }
-
- public Column(string name, DbType type, int size, ColumnProperty property)
- {
- Name = name;
- Type = type;
- Size = size;
- ColumnProperty = property;
- }
-
- public Column(string name, DbType type, int size, ColumnProperty property, object defaultValue)
- {
- Name = name;
- Type = type;
- Size = size;
- ColumnProperty = property;
- DefaultValue = defaultValue;
- }
-
- public Column(string name, DbType type, ColumnProperty property, object defaultValue)
- {
- Name = name;
- Type = type;
- ColumnProperty = property;
- DefaultValue = defaultValue;
- }
-
- public string Name
- {
- get { return _name; }
- set { _name = value; }
- }
-
- public DbType Type
- {
- get { return _type; }
- set { _type = value; }
- }
-
- public int Size
- {
- get { return _size; }
- set { _size = value; }
- }
-
- public ColumnProperty ColumnProperty
- {
- get { return _property; }
- set { _property = value; }
- }
-
- public object DefaultValue
- {
- get { return _defaultValue; }
- set { _defaultValue = value; }
- }
-
- public bool IsIdentity
- {
- get { return (ColumnProperty & ColumnProperty.Identity) == ColumnProperty.Identity; }
- }
-
- public bool IsPrimaryKey
- {
- get { return (ColumnProperty & ColumnProperty.PrimaryKey) == ColumnProperty.PrimaryKey; }
- }
- }
-}
diff --git a/Migrator.net/Migrator.Framework/ColumnProperty.cs b/Migrator.net/Migrator.Framework/ColumnProperty.cs
deleted file mode 100644
index 434f89f13..000000000
--- a/Migrator.net/Migrator.Framework/ColumnProperty.cs
+++ /dev/null
@@ -1,50 +0,0 @@
-using System;
-
-namespace Migrator.Framework
-{
-
- ///
- /// Represents a table column properties.
- ///
- [Flags]
- public enum ColumnProperty
- {
- None = 0,
- ///
- /// Null is allowable
- ///
- Null = 1,
- ///
- /// Null is not allowable
- ///
- NotNull = 2,
- ///
- /// Identity column, autoinc
- ///
- Identity = 4,
- ///
- /// Unique Column
- ///
- Unique = 8,
- ///
- /// Indexed Column
- ///
- Indexed = 16,
- ///
- /// Unsigned Column
- ///
- Unsigned = 32,
- ///
- /// Foreign Key
- ///
- ForeignKey = Unsigned | Null,
- ///
- /// Primary Key
- ///
- PrimaryKey = 64 | Unsigned | NotNull,
- ///
- /// Primary key. Make the column a PrimaryKey and unsigned
- ///
- PrimaryKeyWithIdentity = PrimaryKey | Identity
- }
-}
diff --git a/Migrator.net/Migrator.Framework/ForeignKeyConstraint.cs b/Migrator.net/Migrator.Framework/ForeignKeyConstraint.cs
deleted file mode 100644
index 26d29fbcd..000000000
--- a/Migrator.net/Migrator.Framework/ForeignKeyConstraint.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-namespace Migrator.Framework
-{
- public enum ForeignKeyConstraint
- {
- Cascade,
- SetNull,
- NoAction,
- Restrict,
- SetDefault
- }
-}
diff --git a/Migrator.net/Migrator.Framework/IColumn.cs b/Migrator.net/Migrator.Framework/IColumn.cs
deleted file mode 100644
index aa2a4d183..000000000
--- a/Migrator.net/Migrator.Framework/IColumn.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-using System.Data;
-
-namespace Migrator.Framework
-{
- public interface IColumn
- {
- ColumnProperty ColumnProperty { get; set; }
-
- string Name { get; set; }
-
- DbType Type { get; set; }
-
- int Size { get; set; }
-
- bool IsIdentity { get; }
-
- bool IsPrimaryKey { get; }
-
- object DefaultValue { get; set; }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/ILogger.cs b/Migrator.net/Migrator.Framework/ILogger.cs
deleted file mode 100644
index d6b0cee0e..000000000
--- a/Migrator.net/Migrator.Framework/ILogger.cs
+++ /dev/null
@@ -1,97 +0,0 @@
-using System;
-using System.Collections.Generic;
-
-namespace Migrator.Framework
-{
- public interface ILogger
- {
- ///
- /// Log that we have started a migration
- ///
- /// Start list of versions
- /// Final Version
- void Started(List currentVersion, long finalVersion);
-
- ///
- /// Log that we are migrating up
- ///
- /// Version we are migrating to
- /// Migration name
- void MigrateUp(long version, string migrationName);
-
- ///
- /// Log that we are migrating down
- ///
- /// Version we are migrating to
- /// Migration name
- void MigrateDown(long version, string migrationName);
-
- ///
- /// Inform that a migration corresponding to the number of
- /// version is untraceable (not found?) and will be ignored.
- ///
- /// Version we couldnt find
- void Skipping(long version);
-
- ///
- /// Log that we are rolling back to version
- ///
- ///
- /// version
- ///
- void RollingBack(long originalVersion);
-
- ///
- /// Log a Sql statement that changes the schema or content of the database as part of a migration
- ///
- ///
- /// SELECT statements should not be logged using this method as they do not alter the data or schema of the
- /// database.
- ///
- /// The Sql statement to log
- void ApplyingDBChange(string sql);
-
- ///
- /// Log that we had an exception on a migration
- ///
- /// The version of the migration that caused the exception.
- /// The name of the migration that caused the exception.
- /// The exception itself
- void Exception(long version, string migrationName, Exception ex);
-
- ///
- /// Log that we had an exception on a migration
- ///
- /// An informative message to show to the user.
- /// The exception itself
- void Exception(string message, Exception ex);
-
- ///
- /// Log that we have finished a migration
- ///
- /// List of versions with which we started
- /// Final Version
- void Finished(List currentVersion, long finalVersion);
-
- ///
- /// Log a message
- ///
- /// The format string ("{0}, blabla {1}").
- /// Parameters to apply to the format string.
- void Log(string format, params object[] args);
-
- ///
- /// Log a Warning
- ///
- /// The format string ("{0}, blabla {1}").
- /// Parameters to apply to the format string.
- void Warn(string format, params object[] args);
-
- ///
- /// Log a Trace Message
- ///
- /// The format string ("{0}, blabla {1}").
- /// Parameters to apply to the format string.
- void Trace(string format, params object[] args);
- }
-}
diff --git a/Migrator.net/Migrator.Framework/IMigration.cs b/Migrator.net/Migrator.Framework/IMigration.cs
deleted file mode 100644
index eb7a77509..000000000
--- a/Migrator.net/Migrator.Framework/IMigration.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-namespace Migrator.Framework
-{
- public interface IMigration
- {
- string Name { get; }
-
- ///
- /// Represents the database.
- /// .
- ///
- /// Migration.Framework.ITransformationProvider
- ITransformationProvider Database { get; set; }
-
- ///
- /// Defines tranformations to port the database to the current version.
- ///
- void Up();
-
- ///
- /// This is run after the Up transaction has been committed
- ///
- void AfterUp();
-
- ///
- /// Defines transformations to revert things done in Up.
- ///
- void Down();
-
- ///
- /// This is run after the Down transaction has been committed
- ///
- void AfterDown();
-
- ///
- /// This gets called once on the first migration object.
- ///
- void InitializeOnce(string[] args);
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/ITransformationProvider.cs b/Migrator.net/Migrator.Framework/ITransformationProvider.cs
deleted file mode 100644
index 30a9bf4fd..000000000
--- a/Migrator.net/Migrator.Framework/ITransformationProvider.cs
+++ /dev/null
@@ -1,485 +0,0 @@
-using System;
-using System.Data;
-using System.Collections.Generic;
-
-namespace Migrator.Framework
-{
- ///
- /// The main interface to use in Migrations to make changes on a database schema.
- ///
- public interface ITransformationProvider : IDisposable
- {
-
- ///
- /// Get this provider or a NoOp provider if you are not running in the context of 'provider'.
- ///
- ITransformationProvider this[string provider] { get; }
-
- ///
- /// The list of Migrations currently applied to the database.
- ///
- List AppliedMigrations { get; }
-
- ILogger Logger { get; set; }
-
- ///
- /// Add a column to an existing table
- ///
- /// The name of the table that will get the new column
- /// The name of the new column
- /// The data type for the new columnd
- /// The precision or size of the column
- /// Properties that can be ORed together
- /// The default value of the column if no value is given in a query
- void AddColumn(string table, string column, DbType type, int size, ColumnProperty property, object defaultValue);
-
- ///
- /// Add a column to an existing table
- ///
- /// The name of the table that will get the new column
- /// The name of the new column
- /// The data type for the new columnd
- void AddColumn(string table, string column, DbType type);
-
- ///
- /// Add a column to an existing table
- ///
- /// The name of the table that will get the new column
- /// The name of the new column
- /// The data type for the new columnd
- /// The precision or size of the column
- void AddColumn(string table, string column, DbType type, int size);
-
- ///
- /// Add a column to an existing table
- ///
- /// The name of the table that will get the new column
- /// The name of the new column
- /// The data type for the new columnd
- /// The precision or size of the column
- /// Properties that can be ORed together
- void AddColumn(string table, string column, DbType type, int size, ColumnProperty property);
-
- ///
- /// Add a column to an existing table
- ///
- /// The name of the table that will get the new column
- /// The name of the new column
- /// The data type for the new columnd
- /// Properties that can be ORed together
- void AddColumn(string table, string column, DbType type, ColumnProperty property);
-
- ///
- /// Add a column to an existing table with the default column size.
- ///
- /// The name of the table that will get the new column
- /// The name of the new column
- /// The data type for the new columnd
- /// The default value of the column if no value is given in a query
- void AddColumn(string table, string column, DbType type, object defaultValue);
-
- ///
- /// Add a column to an existing table
- ///
- /// The name of the table that will get the new column
- /// An instance of a Column with the specified properties
- void AddColumn(string table, Column column);
-
- ///
- /// Add a foreign key constraint
- ///
- /// The name of the foreign key. e.g. FK_TABLE_REF
- /// The table that the foreign key will be created in (eg. Table.FK_id)
- /// The columns that are the foreign keys (eg. FK_id)
- /// The table that holds the primary keys (eg. Table.PK_id)
- /// The columns that are the primary keys (eg. PK_id)
- void AddForeignKey(string name, string foreignTable, string[] foreignColumns, string primaryTable, string[] primaryColumns);
-
- ///
- /// Add a foreign key constraint
- ///
- /// The name of the foreign key. e.g. FK_TABLE_REF
- /// The table that the foreign key will be created in (eg. Table.FK_id)
- /// The columns that are the foreign keys (eg. FK_id)
- /// The table that holds the primary keys (eg. Table.PK_id)
- /// The columns that are the primary keys (eg. PK_id)
- /// Constraint parameters
- void AddForeignKey(string name, string foreignTable, string[] foreignColumns, string primaryTable, string[] primaryColumns, ForeignKeyConstraint constraint);
-
- ///
- /// Add a foreign key constraint
- ///
- ///
- /// The name of the foreign key. e.g. FK_TABLE_REF
- /// The table that the foreign key will be created in (eg. Table.FK_id)
- /// The column that is the foreign key (eg. FK_id)
- /// The table that holds the primary keys (eg. Table.PK_id)
- /// The column that is the primary key (eg. PK_id)
- void AddForeignKey(string name, string foreignTable, string foreignColumn, string primaryTable, string primaryColumn);
-
- ///
- /// Add a foreign key constraint
- ///
- /// The name of the foreign key. e.g. FK_TABLE_REF
- /// The table that the foreign key will be created in (eg. Table.FK_id)
- /// The column that is the foreign key (eg. FK_id)
- /// The table that holds the primary key (eg. Table.PK_id)
- /// The column that is the primary key (eg. PK_id)
- /// Constraint parameters
- void AddForeignKey(string name, string foreignTable, string foreignColumn, string primaryTable, string primaryColumn, ForeignKeyConstraint constraint);
-
- ///
- /// Add a foreign key constraint when you don't care about the name of the constraint.
- /// Warning: This will prevent you from dropping the constraint since you won't know the name.
- ///
- /// The table that the foreign key will be created in (eg. Table.FK_id)
- /// The column that is the foreign key (eg. FK_id)
- /// The table that holds the primary key (eg. Table.PK_id)
- /// The column that is the primary key (eg. PK_id)
- void GenerateForeignKey(string foreignTable, string foreignColumn, string primaryTable, string primaryColumn);
-
- ///
- /// Add a foreign key constraint when you don't care about the name of the constraint.
- /// Warning: This will prevent you from dropping the constraint since you won't know the name.
- ///
- /// The table that the foreign key will be created in (eg. Table.FK_id)
- /// The columns that are the foreign keys (eg. FK_id)
- /// The table that holds the primary key (eg. Table.PK_id)
- /// The column that is the primary key (eg. PK_id)
- void GenerateForeignKey(string foreignTable, string[] foreignColumns, string primaryTable, string[] primaryColumns);
-
- ///
- /// Add a foreign key constraint when you don't care about the name of the constraint.
- /// Warning: This will prevent you from dropping the constraint since you won't know the name.
- ///
- /// The table that the foreign key will be created in (eg. Table.FK_id)
- /// The columns that are the foreign keys (eg. FK_id)
- /// The table that holds the primary key (eg. Table.PK_id)
- /// The columns that are the primary keys (eg. PK_id)
- /// Constraint parameters
- void GenerateForeignKey(string foreignTable, string[] foreignColumns, string primaryTable, string[] primaryColumns, ForeignKeyConstraint constraint);
-
- ///
- /// Add a foreign key constraint when you don't care about the name of the constraint.
- /// Warning: This will prevent you from dropping the constraint since you won't know the name.
- ///
- /// The table that the foreign key will be created in (eg. Table.FK_id)
- /// The columns that are the foreign keys (eg. FK_id)
- /// The table that holds the primary key (eg. Table.PK_id)
- /// The column that is the primary key (eg. PK_id)
- /// Constraint parameters
- void GenerateForeignKey(string foreignTable, string foreignColumn, string primaryTable, string primaryColumn,
- ForeignKeyConstraint constraint);
-
- ///
- /// Add a foreign key constraint when you don't care about the name of the constraint.
- /// Warning: This will prevent you from dropping the constraint since you won't know the name.
- ///
- /// The current expectations are that there is a column named the same as the foreignTable present in
- /// the table. This is subject to change because I think it's not a good convention.
- ///
- /// The table that the foreign key will be created in (eg. Table.FK_id)
- /// The table that holds the primary key (eg. Table.PK_id)
- void GenerateForeignKey(string foreignTable, string primaryTable);
-
- ///
- /// Add a foreign key constraint when you don't care about the name of the constraint.
- /// Warning: This will prevent you from dropping the constraint since you won't know the name.
- ///
- /// The current expectations are that there is a column named the same as the foreignTable present in
- /// the table. This is subject to change because I think it's not a good convention.
- ///
- /// The table that the foreign key will be created in (eg. Table.FK_id)
- /// The table that holds the primary key (eg. Table.PK_id)
- ///
- void GenerateForeignKey(string foreignTable, string primaryTable, ForeignKeyConstraint constraint);
-
- ///
- /// Add an Index to a table
- ///
- /// The name of the index to add.
- /// The name of the table that will get the index.
- /// If the index will be unique
- /// The name of the column or columns that are in the index.
- void AddIndex(string name, string table, bool unique, params string[] columns);
-
- ///
- /// Add a primary key to a table
- ///
- /// The name of the primary key to add.
- /// The name of the table that will get the primary key.
- /// The name of the column or columns that are in the primary key.
- void AddPrimaryKey(string name, string table, params string[] columns);
-
- ///
- /// Add a constraint to a table
- ///
- /// The name of the constraint to add.
- /// The name of the table that will get the constraint
- /// The name of the column or columns that will get the constraint.
- void AddUniqueConstraint(string name, string table, params string[] columns);
-
- ///
- /// Add a constraint to a table
- ///
- /// The name of the constraint to add.
- /// The name of the table that will get the constraint
- /// The check constraint definition.
- void AddCheckConstraint(string name, string table, string checkSql);
-
- ///
- /// Add a table
- ///
- /// The name of the table to add.
- /// The columns that are part of the table.
- void AddTable(string name, params Column[] columns);
-
- ///
- /// Add a table
- ///
- /// The name of the table to add.
- /// The name of the database engine to use. (MySQL)
- /// The columns that are part of the table.
- void AddTable(string name, string engine, params Column[] columns);
-
- ///
- /// Start a transction
- ///
- void BeginTransaction();
-
- ///
- /// Change the definition of an existing column.
- ///
- /// The name of the table that will get the new column
- /// An instance of a Column with the specified properties and the name of an existing column
- void ChangeColumn(string table, Column column);
-
- ///
- /// Check to see if a column exists
- ///
- ///
- ///
- ///
- bool ColumnExists(string table, string column);
-
- ///
- /// Commit the running transction
- ///
- void Commit();
-
- ///
- /// Check to see if a constraint exists
- ///
- /// The name of the constraint
- /// The table that the constraint lives on.
- ///
- bool ConstraintExists(string table, string name);
-
- ///
- /// Check to see if a primary key constraint exists on the table
- ///
- /// The name of the primary key
- /// The table that the constraint lives on.
- ///
- bool PrimaryKeyExists(string table, string name);
-
- ///
- /// Execute an arbitrary SQL query
- ///
- /// The SQL to execute.
- ///
- int ExecuteNonQuery(string sql);
-
- ///
- /// Execute an arbitrary SQL query
- ///
- /// The SQL to execute.
- ///
- IDataReader ExecuteQuery(string sql);
-
- ///
- /// Execute an arbitrary SQL query
- ///
- /// The SQL to execute.
- /// A single value that is returned.
- object ExecuteScalar(string sql);
-
- ///
- /// Get the information about the columns in a table
- ///
- /// The table name that you want the columns for.
- ///
- Column[] GetColumns(string table);
-
- ///
- /// Get information about a single column in a table
- ///
- /// The table name that you want the columns for.
- /// The column name for which you want information.
- ///
- Column GetColumnByName(string table, string column);
-
- ///
- /// Get the names of all of the tables
- ///
- /// The names of all the tables.
- string[] GetTables();
-
- ///
- /// Insert data into a table
- ///
- /// The table that will get the new data
- /// The names of the columns
- /// The values in the same order as the columns
- ///
- int Insert(string table, string[] columns, string[] values);
-
- ///
- /// Delete data from a table
- ///
- /// The table that will have the data deleted
- /// The names of the columns used in a where clause
- /// The values in the same order as the columns
- ///
- int Delete(string table, string[] columns, string[] values);
-
- ///
- /// Delete data from a table
- ///
- /// The table that will have the data deleted
- /// The name of the column used in a where clause
- /// The value for the where clause
- ///
- int Delete(string table, string whereColumn, string whereValue);
-
- ///
- /// Marks a Migration version number as having been applied
- ///
- /// The version number of the migration that was applied
- void MigrationApplied(long version);
-
- ///
- /// Marks a Migration version number as having been rolled back from the database
- ///
- /// The version number of the migration that was removed
- void MigrationUnApplied(long version);
-
- ///
- /// Remove an existing column from a table
- ///
- /// The name of the table to remove the column from
- /// The column to remove
- void RemoveColumn(string table, string column);
-
- ///
- /// Remove an existing foreign key constraint
- ///
- /// The table that contains the foreign key.
- /// The name of the foreign key to remove
- void RemoveForeignKey(string table, string name);
-
- ///
- /// Remove an existing constraint
- ///
- /// The table that contains the foreign key.
- /// The name of the constraint to remove
- void RemoveConstraint(string table, string name);
-
- ///
- /// Remove an existing index
- ///
- /// The table that contains the index.
- /// The name of the index to remove
- void RemoveIndex(string table, string name);
-
- ///
- /// Remove an existing table
- ///
- /// The name of the table
- void RemoveTable(string tableName);
-
- ///
- /// Rename an existing table
- ///
- /// The old name of the table
- /// The new name of the table
- void RenameTable(string oldName, string newName);
-
- ///
- /// Rename an existing table
- ///
- /// The name of the table
- /// The old name of the column
- /// The new name of the column
- void RenameColumn(string tableName, string oldColumnName, string newColumnName);
-
- ///
- /// Rollback the currently running transaction.
- ///
- void Rollback();
-
- ///
- /// Get values from a table
- ///
- /// The columns to select
- /// The table to select from
- /// The where clause to limit the selection
- ///
- IDataReader Select(string what, string from, string where);
-
- ///
- /// Get values from a table
- ///
- /// The columns to select
- /// The table to select from
- ///
- IDataReader Select(string what, string from);
-
- ///
- /// Get a single value from a table
- ///
- /// The columns to select
- /// The table to select from
- ///
- ///
- object SelectScalar(string what, string from, string where);
-
- ///
- /// Get a single value from a table
- ///
- /// The columns to select
- /// The table to select from
- ///
- object SelectScalar(string what, string from);
-
- ///
- /// Check if a table already exists
- ///
- /// The name of the table that you want to check on.
- ///
- bool TableExists(string tableName);
-
- ///
- /// Update the values in a table
- ///
- /// The name of the table to update
- /// The names of the columns.
- /// The values for the columns in the same order as the names.
- ///
- int Update(string table, string[] columns, string[] columnValues);
-
- ///
- /// Update the values in a table
- ///
- /// The name of the table to update
- /// The names of the columns.
- /// The values for the columns in the same order as the names.
- /// A where clause to limit the update
- ///
- int Update(string table, string[] columns, string[] values, string where);
-
- IDbCommand GetCommand();
-
- void ExecuteSchemaBuilder(SchemaBuilder.SchemaBuilder schemaBuilder);
- }
-}
diff --git a/Migrator.net/Migrator.Framework/Loggers/.svn/all-wcprops b/Migrator.net/Migrator.Framework/Loggers/.svn/all-wcprops
deleted file mode 100644
index 1d7a4067b..000000000
--- a/Migrator.net/Migrator.Framework/Loggers/.svn/all-wcprops
+++ /dev/null
@@ -1,35 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 54
-/svn/!svn/ver/120/trunk/src/Migrator.Framework/Loggers
-END
-Logger.cs
-K 25
-svn:wc:ra_dav:version-url
-V 64
-/svn/!svn/ver/120/trunk/src/Migrator.Framework/Loggers/Logger.cs
-END
-ConsoleWriter.cs
-K 25
-svn:wc:ra_dav:version-url
-V 70
-/svn/!svn/ver/73/trunk/src/Migrator.Framework/Loggers/ConsoleWriter.cs
-END
-IAttachableLogger.cs
-K 25
-svn:wc:ra_dav:version-url
-V 75
-/svn/!svn/ver/120/trunk/src/Migrator.Framework/Loggers/IAttachableLogger.cs
-END
-SqlScriptFileLogger.cs
-K 25
-svn:wc:ra_dav:version-url
-V 77
-/svn/!svn/ver/120/trunk/src/Migrator.Framework/Loggers/SqlScriptFileLogger.cs
-END
-ILogWriter.cs
-K 25
-svn:wc:ra_dav:version-url
-V 68
-/svn/!svn/ver/120/trunk/src/Migrator.Framework/Loggers/ILogWriter.cs
-END
diff --git a/Migrator.net/Migrator.Framework/Loggers/.svn/entries b/Migrator.net/Migrator.Framework/Loggers/.svn/entries
deleted file mode 100644
index ebffeac65..000000000
--- a/Migrator.net/Migrator.Framework/Loggers/.svn/entries
+++ /dev/null
@@ -1,198 +0,0 @@
-10
-
-dir
-147
-http://migratordotnet.googlecode.com/svn/trunk/src/Migrator.Framework/Loggers
-http://migratordotnet.googlecode.com/svn
-
-
-
-2008-09-11T21:48:32.631850Z
-120
-geofflane
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-8c3eb3c4-eb3a-0410-862c-73fa8ce6028b
-
-Logger.cs
-file
-
-
-
-
-2011-05-23T18:17:16.585003Z
-24718815685110ea98d3f4207a358907
-2008-09-11T21:48:32.631850Z
-120
-geofflane
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4456
-
-ConsoleWriter.cs
-file
-
-
-
-
-2011-05-23T18:17:16.587003Z
-32bbf60aa8f07bbc281ac3be2da2a214
-2008-04-24T03:58:41.677562Z
-43
-dkode8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-838
-
-IAttachableLogger.cs
-file
-
-
-
-
-2011-05-23T18:17:16.587003Z
-e0226db3d0d21f0b59d7593f76835e9f
-2008-09-11T21:48:32.631850Z
-120
-geofflane
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1114
-
-SqlScriptFileLogger.cs
-file
-
-
-
-
-2011-05-23T18:17:16.589003Z
-bb2a95971af988525878e60b8cdb21a7
-2008-09-11T21:48:32.631850Z
-120
-geofflane
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2527
-
-ILogWriter.cs
-file
-
-
-
-
-2011-05-23T18:17:16.590003Z
-53fd3ec26d0d191e9d4ae77530e5d928
-2008-09-11T21:48:32.631850Z
-120
-geofflane
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1088
-
diff --git a/Migrator.net/Migrator.Framework/Loggers/.svn/text-base/ConsoleWriter.cs.svn-base b/Migrator.net/Migrator.Framework/Loggers/.svn/text-base/ConsoleWriter.cs.svn-base
deleted file mode 100644
index 8c93ec371..000000000
--- a/Migrator.net/Migrator.Framework/Loggers/.svn/text-base/ConsoleWriter.cs.svn-base
+++ /dev/null
@@ -1,28 +0,0 @@
-#region License
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-#endregion
-
-using System;
-
-namespace Migrator.Framework.Loggers
-{
- public class ConsoleWriter : ILogWriter
- {
- public void Write(string message, params object[] args)
- {
- Console.Write(message, args);
- }
-
- public void WriteLine(string message, params object[] args)
- {
- Console.WriteLine(message, args);
- }
- }
-}
diff --git a/Migrator.net/Migrator.Framework/Loggers/.svn/text-base/IAttachableLogger.cs.svn-base b/Migrator.net/Migrator.Framework/Loggers/.svn/text-base/IAttachableLogger.cs.svn-base
deleted file mode 100644
index 24b09a352..000000000
--- a/Migrator.net/Migrator.Framework/Loggers/.svn/text-base/IAttachableLogger.cs.svn-base
+++ /dev/null
@@ -1,33 +0,0 @@
-#region License
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-#endregion
-
-namespace Migrator.Framework.Loggers
-{
- ///
- /// ILogger interface.
- /// Implicit in this interface is that the logger will delegate actual
- /// logging to the (s) that have been attached
- ///
- public interface IAttachableLogger: ILogger
- {
- ///
- /// Attach an
- ///
- ///
- void Attach(ILogWriter writer);
-
- ///
- /// Detach an
- ///
- ///
- void Detach(ILogWriter writer);
- }
-}
diff --git a/Migrator.net/Migrator.Framework/Loggers/.svn/text-base/ILogWriter.cs.svn-base b/Migrator.net/Migrator.Framework/Loggers/.svn/text-base/ILogWriter.cs.svn-base
deleted file mode 100644
index 298f53dce..000000000
--- a/Migrator.net/Migrator.Framework/Loggers/.svn/text-base/ILogWriter.cs.svn-base
+++ /dev/null
@@ -1,33 +0,0 @@
-#region License
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-#endregion
-
-namespace Migrator.Framework.Loggers
-{
- ///
- /// Handles writing a message to the log medium (i.e. file, console)
- ///
- public interface ILogWriter
- {
- ///
- /// Write this message
- ///
- ///
- ///
- void Write(string message, params object[] args);
-
- ///
- /// Write this message, as a line
- ///
- ///
- ///
- void WriteLine(string message, params object[] args);
- }
-}
diff --git a/Migrator.net/Migrator.Framework/Loggers/.svn/text-base/Logger.cs.svn-base b/Migrator.net/Migrator.Framework/Loggers/.svn/text-base/Logger.cs.svn-base
deleted file mode 100644
index 4f27b1a7d..000000000
--- a/Migrator.net/Migrator.Framework/Loggers/.svn/text-base/Logger.cs.svn-base
+++ /dev/null
@@ -1,169 +0,0 @@
-#region License
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-#endregion
-
-using System;
-using System.Collections.Generic;
-
-namespace Migrator.Framework.Loggers
-{
- ///
- /// Text logger for the migration mediator
- ///
- public class Logger : IAttachableLogger
- {
- private readonly bool _trace;
- private readonly List _writers = new List();
-
- public Logger(bool trace)
- {
- _trace = trace;
- }
-
- public Logger(bool trace, params ILogWriter[] writers)
- : this(trace)
- {
- _writers.AddRange(writers);
- }
-
- public void Attach(ILogWriter writer)
- {
- _writers.Add(writer);
- }
-
- public void Detach(ILogWriter writer)
- {
- _writers.Remove(writer);
- }
-
- public void Started(long currentVersion, long finalVersion)
- {
- WriteLine("Current version : {0}. Target version : {1}", currentVersion, finalVersion);
- }
-
- public void Started(List currentVersions, long finalVersion)
- {
- WriteLine("Latest version applied : {0}. Target version : {1}", LatestVersion(currentVersions), finalVersion);
- }
-
- public void MigrateUp(long version, string migrationName)
- {
- WriteLine("Applying {0}: {1}", version.ToString(), migrationName);
- }
-
- public void MigrateDown(long version, string migrationName)
- {
- WriteLine("Removing {0}: {1}", version.ToString(), migrationName);
- }
-
- public void Skipping(long version)
- {
- WriteLine("{0} {1}", version.ToString(), "");
- }
-
- public void RollingBack(long originalVersion)
- {
- WriteLine("Rolling back to migration {0}", originalVersion);
- }
-
- public void ApplyingDBChange(string sql)
- {
- Log(sql);
- }
-
- public void Exception(long version, string migrationName, Exception ex)
- {
- WriteLine("============ Error Detail ============");
- WriteLine("Error in migration: {0}", version);
- LogExceptionDetails(ex);
- WriteLine("======================================");
- }
-
- public void Exception(string message, Exception ex)
- {
- WriteLine("============ Error Detail ============");
- WriteLine("Error: {0}", message);
- LogExceptionDetails(ex);
- WriteLine("======================================");
- }
-
- private void LogExceptionDetails(Exception ex)
- {
- WriteLine("{0}", ex.Message);
- WriteLine("{0}", ex.StackTrace);
- Exception iex = ex.InnerException;
- while (iex != null)
- {
- WriteLine("Caused by: {0}", iex);
- WriteLine("{0}", ex.StackTrace);
- iex = iex.InnerException;
- }
- }
-
- public void Finished(long originalVersion, long currentVersion)
- {
- WriteLine("Migrated to version {0}", currentVersion);
- }
-
- public void Finished(List originalVersions, long currentVersion)
- {
- WriteLine("Migrated to version {0}", currentVersion);
- }
-
- public void Log(string format, params object[] args)
- {
- WriteLine(format, args);
- }
-
- public void Warn(string format, params object[] args)
- {
- Write("Warning! : ");
- WriteLine(format, args);
- }
-
- public void Trace(string format, params object[] args)
- {
- if (_trace)
- {
- Log(format, args);
- }
- }
-
- private void Write(string message, params object[] args)
- {
- foreach (ILogWriter writer in _writers)
- {
- writer.Write(message, args);
- }
- }
-
- private void WriteLine(string message, params object[] args)
- {
- foreach (ILogWriter writer in _writers)
- {
- writer.WriteLine(message, args);
- }
- }
-
- public static ILogger ConsoleLogger()
- {
- return new Logger(false, new ConsoleWriter());
- }
-
- private string LatestVersion(List versions)
- {
- if (versions.Count > 0)
- {
- return versions[versions.Count - 1].ToString();
- }
- return "No migrations applied yet!";
- }
- }
-}
diff --git a/Migrator.net/Migrator.Framework/Loggers/.svn/text-base/SqlScriptFileLogger.cs.svn-base b/Migrator.net/Migrator.Framework/Loggers/.svn/text-base/SqlScriptFileLogger.cs.svn-base
deleted file mode 100644
index de70868f4..000000000
--- a/Migrator.net/Migrator.Framework/Loggers/.svn/text-base/SqlScriptFileLogger.cs.svn-base
+++ /dev/null
@@ -1,93 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-
-namespace Migrator.Framework.Loggers
-{
- public class SqlScriptFileLogger : ILogger, IDisposable
- {
- private readonly ILogger _innerLogger;
- private TextWriter _streamWriter;
-
- public SqlScriptFileLogger(ILogger logger, TextWriter streamWriter)
- {
- _innerLogger = logger;
- _streamWriter = streamWriter;
- }
-
- #region IDisposable Members
-
- public void Dispose()
- {
- if (_streamWriter != null)
- {
- _streamWriter.Dispose();
- _streamWriter = null;
- }
- }
-
- #endregion
-
- public void Log(string format, params object[] args)
- {
- _innerLogger.Log(format, args);
- }
-
- public void Warn(string format, params object[] args)
- {
- _innerLogger.Warn(format, args);
- }
-
- public void Trace(string format, params object[] args)
- {
- _innerLogger.Trace(format, args);
- }
-
- public void ApplyingDBChange(string sql)
- {
- _innerLogger.ApplyingDBChange(sql);
- _streamWriter.WriteLine(sql);
- }
-
- public void Started(List appliedVersions, long finalVersion)
- {
- _innerLogger.Started(appliedVersions, finalVersion);
- }
-
- public void MigrateUp(long version, string migrationName)
- {
- _innerLogger.MigrateUp(version, migrationName);
- }
-
- public void MigrateDown(long version, string migrationName)
- {
- _innerLogger.MigrateDown(version, migrationName);
- }
-
- public void Skipping(long version)
- {
- _innerLogger.Skipping(version);
- }
-
- public void RollingBack(long originalVersion)
- {
- _innerLogger.RollingBack(originalVersion);
- }
-
- public void Exception(long version, string migrationName, Exception ex)
- {
- _innerLogger.Exception(version, migrationName, ex);
- }
-
- public void Exception(string message, Exception ex)
- {
- _innerLogger.Exception(message, ex);
- }
-
- public void Finished(List appliedVersions, long currentVersion)
- {
- _innerLogger.Finished(appliedVersions, currentVersion);
- _streamWriter.Close();
- }
- }
-}
diff --git a/Migrator.net/Migrator.Framework/Loggers/ConsoleWriter.cs b/Migrator.net/Migrator.Framework/Loggers/ConsoleWriter.cs
deleted file mode 100644
index 8c93ec371..000000000
--- a/Migrator.net/Migrator.Framework/Loggers/ConsoleWriter.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-#region License
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-#endregion
-
-using System;
-
-namespace Migrator.Framework.Loggers
-{
- public class ConsoleWriter : ILogWriter
- {
- public void Write(string message, params object[] args)
- {
- Console.Write(message, args);
- }
-
- public void WriteLine(string message, params object[] args)
- {
- Console.WriteLine(message, args);
- }
- }
-}
diff --git a/Migrator.net/Migrator.Framework/Loggers/IAttachableLogger.cs b/Migrator.net/Migrator.Framework/Loggers/IAttachableLogger.cs
deleted file mode 100644
index 24b09a352..000000000
--- a/Migrator.net/Migrator.Framework/Loggers/IAttachableLogger.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-#region License
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-#endregion
-
-namespace Migrator.Framework.Loggers
-{
- ///
- /// ILogger interface.
- /// Implicit in this interface is that the logger will delegate actual
- /// logging to the (s) that have been attached
- ///
- public interface IAttachableLogger: ILogger
- {
- ///
- /// Attach an
- ///
- ///
- void Attach(ILogWriter writer);
-
- ///
- /// Detach an
- ///
- ///
- void Detach(ILogWriter writer);
- }
-}
diff --git a/Migrator.net/Migrator.Framework/Loggers/ILogWriter.cs b/Migrator.net/Migrator.Framework/Loggers/ILogWriter.cs
deleted file mode 100644
index 298f53dce..000000000
--- a/Migrator.net/Migrator.Framework/Loggers/ILogWriter.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-#region License
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-#endregion
-
-namespace Migrator.Framework.Loggers
-{
- ///
- /// Handles writing a message to the log medium (i.e. file, console)
- ///
- public interface ILogWriter
- {
- ///
- /// Write this message
- ///
- ///
- ///
- void Write(string message, params object[] args);
-
- ///
- /// Write this message, as a line
- ///
- ///
- ///
- void WriteLine(string message, params object[] args);
- }
-}
diff --git a/Migrator.net/Migrator.Framework/Loggers/Logger.cs b/Migrator.net/Migrator.Framework/Loggers/Logger.cs
deleted file mode 100644
index 4f27b1a7d..000000000
--- a/Migrator.net/Migrator.Framework/Loggers/Logger.cs
+++ /dev/null
@@ -1,169 +0,0 @@
-#region License
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-#endregion
-
-using System;
-using System.Collections.Generic;
-
-namespace Migrator.Framework.Loggers
-{
- ///
- /// Text logger for the migration mediator
- ///
- public class Logger : IAttachableLogger
- {
- private readonly bool _trace;
- private readonly List _writers = new List();
-
- public Logger(bool trace)
- {
- _trace = trace;
- }
-
- public Logger(bool trace, params ILogWriter[] writers)
- : this(trace)
- {
- _writers.AddRange(writers);
- }
-
- public void Attach(ILogWriter writer)
- {
- _writers.Add(writer);
- }
-
- public void Detach(ILogWriter writer)
- {
- _writers.Remove(writer);
- }
-
- public void Started(long currentVersion, long finalVersion)
- {
- WriteLine("Current version : {0}. Target version : {1}", currentVersion, finalVersion);
- }
-
- public void Started(List currentVersions, long finalVersion)
- {
- WriteLine("Latest version applied : {0}. Target version : {1}", LatestVersion(currentVersions), finalVersion);
- }
-
- public void MigrateUp(long version, string migrationName)
- {
- WriteLine("Applying {0}: {1}", version.ToString(), migrationName);
- }
-
- public void MigrateDown(long version, string migrationName)
- {
- WriteLine("Removing {0}: {1}", version.ToString(), migrationName);
- }
-
- public void Skipping(long version)
- {
- WriteLine("{0} {1}", version.ToString(), "");
- }
-
- public void RollingBack(long originalVersion)
- {
- WriteLine("Rolling back to migration {0}", originalVersion);
- }
-
- public void ApplyingDBChange(string sql)
- {
- Log(sql);
- }
-
- public void Exception(long version, string migrationName, Exception ex)
- {
- WriteLine("============ Error Detail ============");
- WriteLine("Error in migration: {0}", version);
- LogExceptionDetails(ex);
- WriteLine("======================================");
- }
-
- public void Exception(string message, Exception ex)
- {
- WriteLine("============ Error Detail ============");
- WriteLine("Error: {0}", message);
- LogExceptionDetails(ex);
- WriteLine("======================================");
- }
-
- private void LogExceptionDetails(Exception ex)
- {
- WriteLine("{0}", ex.Message);
- WriteLine("{0}", ex.StackTrace);
- Exception iex = ex.InnerException;
- while (iex != null)
- {
- WriteLine("Caused by: {0}", iex);
- WriteLine("{0}", ex.StackTrace);
- iex = iex.InnerException;
- }
- }
-
- public void Finished(long originalVersion, long currentVersion)
- {
- WriteLine("Migrated to version {0}", currentVersion);
- }
-
- public void Finished(List originalVersions, long currentVersion)
- {
- WriteLine("Migrated to version {0}", currentVersion);
- }
-
- public void Log(string format, params object[] args)
- {
- WriteLine(format, args);
- }
-
- public void Warn(string format, params object[] args)
- {
- Write("Warning! : ");
- WriteLine(format, args);
- }
-
- public void Trace(string format, params object[] args)
- {
- if (_trace)
- {
- Log(format, args);
- }
- }
-
- private void Write(string message, params object[] args)
- {
- foreach (ILogWriter writer in _writers)
- {
- writer.Write(message, args);
- }
- }
-
- private void WriteLine(string message, params object[] args)
- {
- foreach (ILogWriter writer in _writers)
- {
- writer.WriteLine(message, args);
- }
- }
-
- public static ILogger ConsoleLogger()
- {
- return new Logger(false, new ConsoleWriter());
- }
-
- private string LatestVersion(List versions)
- {
- if (versions.Count > 0)
- {
- return versions[versions.Count - 1].ToString();
- }
- return "No migrations applied yet!";
- }
- }
-}
diff --git a/Migrator.net/Migrator.Framework/Loggers/SqlScriptFileLogger.cs b/Migrator.net/Migrator.Framework/Loggers/SqlScriptFileLogger.cs
deleted file mode 100644
index de70868f4..000000000
--- a/Migrator.net/Migrator.Framework/Loggers/SqlScriptFileLogger.cs
+++ /dev/null
@@ -1,93 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-
-namespace Migrator.Framework.Loggers
-{
- public class SqlScriptFileLogger : ILogger, IDisposable
- {
- private readonly ILogger _innerLogger;
- private TextWriter _streamWriter;
-
- public SqlScriptFileLogger(ILogger logger, TextWriter streamWriter)
- {
- _innerLogger = logger;
- _streamWriter = streamWriter;
- }
-
- #region IDisposable Members
-
- public void Dispose()
- {
- if (_streamWriter != null)
- {
- _streamWriter.Dispose();
- _streamWriter = null;
- }
- }
-
- #endregion
-
- public void Log(string format, params object[] args)
- {
- _innerLogger.Log(format, args);
- }
-
- public void Warn(string format, params object[] args)
- {
- _innerLogger.Warn(format, args);
- }
-
- public void Trace(string format, params object[] args)
- {
- _innerLogger.Trace(format, args);
- }
-
- public void ApplyingDBChange(string sql)
- {
- _innerLogger.ApplyingDBChange(sql);
- _streamWriter.WriteLine(sql);
- }
-
- public void Started(List appliedVersions, long finalVersion)
- {
- _innerLogger.Started(appliedVersions, finalVersion);
- }
-
- public void MigrateUp(long version, string migrationName)
- {
- _innerLogger.MigrateUp(version, migrationName);
- }
-
- public void MigrateDown(long version, string migrationName)
- {
- _innerLogger.MigrateDown(version, migrationName);
- }
-
- public void Skipping(long version)
- {
- _innerLogger.Skipping(version);
- }
-
- public void RollingBack(long originalVersion)
- {
- _innerLogger.RollingBack(originalVersion);
- }
-
- public void Exception(long version, string migrationName, Exception ex)
- {
- _innerLogger.Exception(version, migrationName, ex);
- }
-
- public void Exception(string message, Exception ex)
- {
- _innerLogger.Exception(message, ex);
- }
-
- public void Finished(List appliedVersions, long currentVersion)
- {
- _innerLogger.Finished(appliedVersions, currentVersion);
- _streamWriter.Close();
- }
- }
-}
diff --git a/Migrator.net/Migrator.Framework/Migration.cs b/Migrator.net/Migrator.Framework/Migration.cs
deleted file mode 100644
index 5150e1cef..000000000
--- a/Migrator.net/Migrator.Framework/Migration.cs
+++ /dev/null
@@ -1,119 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-namespace 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");
- /// }
- /// }
- ///
- ///
- public abstract class Migration : IMigration
- {
- private ITransformationProvider _transformationProvider;
-
- public string Name
- {
- get { return StringUtils.ToHumanName(GetType().Name); }
- }
-
- ///
- /// Defines tranformations to port the database to the current version.
- ///
- public abstract void Up();
-
- ///
- /// This is run after the Up transaction has been committed
- ///
- public virtual void AfterUp()
- {
- }
-
- ///
- /// Defines transformations to revert things done in Up.
- ///
- public abstract void Down();
-
- ///
- /// This is run after the Down transaction has been committed
- ///
- public virtual void AfterDown()
- {
- }
-
- ///
- /// Represents the database.
- /// .
- ///
- /// Migration.Framework.ITransformationProvider
- public ITransformationProvider Database
- {
- get { return _transformationProvider; }
- set { _transformationProvider = value; }
- }
-
- ///
- /// This gets called once on the first migration object.
- ///
- public virtual void InitializeOnce(string[] args)
- {
- }
- }
-}
diff --git a/Migrator.net/Migrator.Framework/MigrationAttribute.cs b/Migrator.net/Migrator.Framework/MigrationAttribute.cs
deleted file mode 100644
index c424dac14..000000000
--- a/Migrator.net/Migrator.Framework/MigrationAttribute.cs
+++ /dev/null
@@ -1,53 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-using System;
-
-namespace Migrator.Framework
-{
- ///
- /// Describe a migration
- ///
- public class MigrationAttribute : Attribute
- {
- private long _version;
- private bool _ignore = false;
-
- ///
- /// Describe the migration
- ///
- /// The unique version of the migration.
- public MigrationAttribute(long version)
- {
- Version = version;
- }
-
- ///
- /// The version reflected by the migration
- ///
- public long Version
- {
- get { return _version; }
- private set { _version = value; }
- }
-
- ///
- /// Set to true to ignore this migration.
- ///
- public bool Ignore
- {
- get { return _ignore; }
- set { _ignore = value; }
- }
- }
-}
diff --git a/Migrator.net/Migrator.Framework/MigrationException.cs b/Migrator.net/Migrator.Framework/MigrationException.cs
deleted file mode 100644
index e88ea4a8c..000000000
--- a/Migrator.net/Migrator.Framework/MigrationException.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-#region License
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-#endregion
-
-using System;
-
-namespace Migrator.Framework
-{
- ///
- /// Base class for migration errors.
- ///
- public class MigrationException : Exception
- {
- public MigrationException(string message)
- : base(message) {}
-
- public MigrationException(string message, Exception cause)
- : base(message, cause) {}
-
- public MigrationException(string migration, int version, Exception innerException)
- : base(String.Format("Exception in migration {0} (#{1})", migration, version), innerException) {}
- }
-}
diff --git a/Migrator.net/Migrator.Framework/Migrator.Framework.csproj b/Migrator.net/Migrator.Framework/Migrator.Framework.csproj
deleted file mode 100644
index 809a986e8..000000000
--- a/Migrator.net/Migrator.Framework/Migrator.Framework.csproj
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-
- Debug
- AnyCPU
- 9.0.30729
- 2.0
- {5270F048-E580-486C-B14C-E5B9F6E539D4}
- Library
- Migrator.Framework
- Migrator.Framework
-
-
- 3.5
-
-
- true
- MigratorDotNet.snk
- v2.0
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
- x86
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/MigratorDotNet.snk b/Migrator.net/Migrator.Framework/MigratorDotNet.snk
deleted file mode 100644
index 5032d709b..000000000
Binary files a/Migrator.net/Migrator.Framework/MigratorDotNet.snk and /dev/null differ
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/all-wcprops b/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/all-wcprops
deleted file mode 100644
index ea94932b1..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/all-wcprops
+++ /dev/null
@@ -1,77 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 60
-/svn/!svn/ver/124/trunk/src/Migrator.Framework/SchemaBuilder
-END
-FluentColumn.cs
-K 25
-svn:wc:ra_dav:version-url
-V 76
-/svn/!svn/ver/124/trunk/src/Migrator.Framework/SchemaBuilder/FluentColumn.cs
-END
-IDeleteTableOptions.cs
-K 25
-svn:wc:ra_dav:version-url
-V 83
-/svn/!svn/ver/122/trunk/src/Migrator.Framework/SchemaBuilder/IDeleteTableOptions.cs
-END
-RenameTableExpression.cs
-K 25
-svn:wc:ra_dav:version-url
-V 85
-/svn/!svn/ver/124/trunk/src/Migrator.Framework/SchemaBuilder/RenameTableExpression.cs
-END
-AddTableExpression.cs
-K 25
-svn:wc:ra_dav:version-url
-V 82
-/svn/!svn/ver/124/trunk/src/Migrator.Framework/SchemaBuilder/AddTableExpression.cs
-END
-ISchemaBuilderExpression.cs
-K 25
-svn:wc:ra_dav:version-url
-V 88
-/svn/!svn/ver/124/trunk/src/Migrator.Framework/SchemaBuilder/ISchemaBuilderExpression.cs
-END
-IColumnOptions.cs
-K 25
-svn:wc:ra_dav:version-url
-V 78
-/svn/!svn/ver/124/trunk/src/Migrator.Framework/SchemaBuilder/IColumnOptions.cs
-END
-ForeignKey.cs
-K 25
-svn:wc:ra_dav:version-url
-V 74
-/svn/!svn/ver/122/trunk/src/Migrator.Framework/SchemaBuilder/ForeignKey.cs
-END
-IFluentColumn.cs
-K 25
-svn:wc:ra_dav:version-url
-V 77
-/svn/!svn/ver/124/trunk/src/Migrator.Framework/SchemaBuilder/IFluentColumn.cs
-END
-AddColumnExpression.cs
-K 25
-svn:wc:ra_dav:version-url
-V 83
-/svn/!svn/ver/124/trunk/src/Migrator.Framework/SchemaBuilder/AddColumnExpression.cs
-END
-SchemaBuilder.cs
-K 25
-svn:wc:ra_dav:version-url
-V 77
-/svn/!svn/ver/124/trunk/src/Migrator.Framework/SchemaBuilder/SchemaBuilder.cs
-END
-IForeignKeyOptions.cs
-K 25
-svn:wc:ra_dav:version-url
-V 82
-/svn/!svn/ver/122/trunk/src/Migrator.Framework/SchemaBuilder/IForeignKeyOptions.cs
-END
-DeleteTableExpression.cs
-K 25
-svn:wc:ra_dav:version-url
-V 85
-/svn/!svn/ver/124/trunk/src/Migrator.Framework/SchemaBuilder/DeleteTableExpression.cs
-END
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/entries b/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/entries
deleted file mode 100644
index 4b47ae201..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/entries
+++ /dev/null
@@ -1,436 +0,0 @@
-10
-
-dir
-147
-http://migratordotnet.googlecode.com/svn/trunk/src/Migrator.Framework/SchemaBuilder
-http://migratordotnet.googlecode.com/svn
-
-
-
-2008-12-22T16:27:00.481752Z
-124
-geofflane
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-8c3eb3c4-eb3a-0410-862c-73fa8ce6028b
-
-FluentColumn.cs
-file
-
-
-
-
-2011-05-23T18:17:16.661007Z
-530a5a0d558d87b32e4a9681f0066bfb
-2008-12-22T16:27:00.481752Z
-124
-geofflane
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1746
-
-IDeleteTableOptions.cs
-file
-
-
-
-
-2011-05-23T18:17:16.662007Z
-ca7d7dcec6bf029e9d68f797d12a0b23
-2008-12-17T03:32:49.850862Z
-122
-dkode8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-748
-
-RenameTableExpression.cs
-file
-
-
-
-
-2011-05-23T18:17:16.663007Z
-09ce9cc03039ba2986e97bf91babb390
-2008-12-22T16:27:00.481752Z
-124
-geofflane
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-927
-
-AddTableExpression.cs
-file
-
-
-
-
-2011-05-23T18:17:16.665007Z
-5021cf7ddfeaf239e49f0cc34d912972
-2008-12-22T16:27:00.481752Z
-124
-geofflane
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-843
-
-ISchemaBuilderExpression.cs
-file
-
-
-
-
-2011-05-23T18:17:16.665007Z
-5edc417b65a8294e9c701da78a2a0fd0
-2008-12-22T16:27:00.481752Z
-124
-geofflane
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-665
-
-IColumnOptions.cs
-file
-
-
-
-
-2011-05-23T18:17:16.666007Z
-725aafda14fca858a75392468e46912d
-2008-12-22T16:27:00.481752Z
-124
-geofflane
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-231
-
-ForeignKey.cs
-file
-
-
-
-
-2011-05-23T18:17:16.668007Z
-dfb33fc890b6aaabfcbfbb9a55c8f628
-2008-12-17T03:32:49.850862Z
-122
-dkode8
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1014
-
-IFluentColumn.cs
-file
-
-
-
-
-2011-05-23T18:17:16.670007Z
-0da0bc3bfc129443966847f12f24fec4
-2008-12-22T16:27:00.481752Z
-124
-geofflane
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-706
-
-AddColumnExpression.cs
-file
-
-
-
-
-2011-05-23T18:17:16.671007Z
-a28232c3bc6fe16fe65fff83b1327ac3
-2008-12-22T16:27:00.481752Z
-124
-geofflane
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1334
-
-SchemaBuilder.cs
-file
-
-
-
-
-2011-05-23T18:17:16.672008Z
-28742d9b060cf61f51534d162246e764
-2008-12-22T16:27:00.481752Z
-124
-geofflane
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4441
-
-IForeignKeyOptions.cs
-file
-
-
-
-
-2011-05-23T18:17:16.673008Z
-67796061d9ed8701e6df79e76657ab92
-2008-12-17T03:32:49.850862Z
-122
-dkode8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-689
-
-DeleteTableExpression.cs
-file
-
-
-
-
-2011-05-23T18:17:16.674008Z
-99d55609a1311b914534e6d16d0064b2
-2008-12-22T16:27:00.481752Z
-124
-geofflane
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-857
-
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/prop-base/ForeignKey.cs.svn-base b/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/prop-base/ForeignKey.cs.svn-base
deleted file mode 100644
index 316065866..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/prop-base/ForeignKey.cs.svn-base
+++ /dev/null
@@ -1,5 +0,0 @@
-K 13
-svn:mergeinfo
-V 0
-
-END
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/prop-base/IFluentColumn.cs.svn-base b/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/prop-base/IFluentColumn.cs.svn-base
deleted file mode 100644
index 316065866..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/prop-base/IFluentColumn.cs.svn-base
+++ /dev/null
@@ -1,5 +0,0 @@
-K 13
-svn:mergeinfo
-V 0
-
-END
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/AddColumnExpression.cs.svn-base b/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/AddColumnExpression.cs.svn-base
deleted file mode 100644
index 0bcbc9433..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/AddColumnExpression.cs.svn-base
+++ /dev/null
@@ -1,40 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public class AddColumnExpression : ISchemaBuilderExpression
- {
- private IFluentColumn _column;
- private string _toTable;
-
-
- public AddColumnExpression(string toTable, IFluentColumn column)
- {
- _column = column;
- _toTable = toTable;
- }
- public void Create(ITransformationProvider provider)
- {
- provider.AddColumn(_toTable, _column.Name, _column.Type, _column.Size, _column.ColumnProperty, _column.DefaultValue);
-
- if (_column.ForeignKey != null)
- {
- provider.AddForeignKey(
- "FK_" + _toTable + "_" + _column.Name + "_" + _column.ForeignKey.PrimaryTable + "_" +
- _column.ForeignKey.PrimaryKey,
- _toTable, _column.Name, _column.ForeignKey.PrimaryTable, _column.ForeignKey.PrimaryKey, _column.Constraint);
- }
- }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/AddTableExpression.cs.svn-base b/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/AddTableExpression.cs.svn-base
deleted file mode 100644
index 1bb3360c5..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/AddTableExpression.cs.svn-base
+++ /dev/null
@@ -1,28 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public class AddTableExpression : ISchemaBuilderExpression
- {
- private string _newTable;
- public AddTableExpression(string newTable)
- {
- _newTable = newTable;
- }
- public void Create(ITransformationProvider provider)
- {
- provider.AddTable(_newTable);
- }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/DeleteTableExpression.cs.svn-base b/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/DeleteTableExpression.cs.svn-base
deleted file mode 100644
index 82666ee5d..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/DeleteTableExpression.cs.svn-base
+++ /dev/null
@@ -1,28 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public class DeleteTableExpression : ISchemaBuilderExpression
- {
- private string _tableName;
- public DeleteTableExpression(string tableName)
- {
- _tableName = tableName;
- }
- public void Create(ITransformationProvider provider)
- {
- provider.RemoveTable(_tableName);
- }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/FluentColumn.cs.svn-base b/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/FluentColumn.cs.svn-base
deleted file mode 100644
index e1cc1ca02..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/FluentColumn.cs.svn-base
+++ /dev/null
@@ -1,80 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-using System.Data;
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public class FluentColumn : IFluentColumn
- {
- private Column _inner;
- private ForeignKeyConstraint _constraint;
- private ForeignKey _fk;
-
- public FluentColumn(string columnName)
- {
- _inner = new Column(columnName);
- }
-
- public ColumnProperty ColumnProperty
- {
- get { return _inner.ColumnProperty; }
- set { _inner.ColumnProperty = value; }
- }
-
- public string Name
- {
- get { return _inner.Name; }
- set { _inner.Name = value; }
- }
-
- public DbType Type
- {
- get { return _inner.Type; }
- set { _inner.Type = value; }
- }
-
- public int Size
- {
- get { return _inner.Size; }
- set { _inner.Size = value; }
- }
-
- public bool IsIdentity
- {
- get { return _inner.IsIdentity; }
- }
-
- public bool IsPrimaryKey
- {
- get { return _inner.IsPrimaryKey; }
- }
-
- public object DefaultValue
- {
- get { return _inner.DefaultValue; }
- set { _inner.DefaultValue = value; }
- }
-
- public ForeignKeyConstraint Constraint
- {
- get { return _constraint; }
- set { _constraint = value; }
- }
- public ForeignKey ForeignKey
- {
- get { return _fk; }
- set { _fk = value; }
- }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/ForeignKey.cs.svn-base b/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/ForeignKey.cs.svn-base
deleted file mode 100644
index 095b0948a..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/ForeignKey.cs.svn-base
+++ /dev/null
@@ -1,39 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public class ForeignKey
- {
- private string _primaryTable;
- private string _primaryKey;
-
- public ForeignKey(string primaryTable, string primaryKey)
- {
- _primaryTable = primaryTable;
- _primaryKey = primaryKey;
- }
-
- public string PrimaryTable
- {
- get { return _primaryTable; }
- set { _primaryTable = value; }
- }
-
- public string PrimaryKey
- {
- get { return _primaryKey; }
- set { _primaryKey = value; }
- }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/IColumnOptions.cs.svn-base b/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/IColumnOptions.cs.svn-base
deleted file mode 100644
index 8fd8cb32d..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/IColumnOptions.cs.svn-base
+++ /dev/null
@@ -1,13 +0,0 @@
-using System.Data;
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public interface IColumnOptions
- {
- SchemaBuilder OfType(DbType dbType);
-
- SchemaBuilder WithSize(int size);
-
- IForeignKeyOptions AsForeignKey();
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/IDeleteTableOptions.cs.svn-base b/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/IDeleteTableOptions.cs.svn-base
deleted file mode 100644
index 4d4152519..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/IDeleteTableOptions.cs.svn-base
+++ /dev/null
@@ -1,24 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public interface IDeleteTableOptions
- {
- SchemaBuilder WithTable(string name);
-
- SchemaBuilder AddTable(string name);
-
- IDeleteTableOptions DeleteTable(string name);
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/IFluentColumn.cs.svn-base b/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/IFluentColumn.cs.svn-base
deleted file mode 100644
index 6500ba948..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/IFluentColumn.cs.svn-base
+++ /dev/null
@@ -1,22 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public interface IFluentColumn : IColumn
- {
- ForeignKeyConstraint Constraint { get; set; }
-
- ForeignKey ForeignKey { get; set; }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/IForeignKeyOptions.cs.svn-base b/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/IForeignKeyOptions.cs.svn-base
deleted file mode 100644
index 3cb52cbf1..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/IForeignKeyOptions.cs.svn-base
+++ /dev/null
@@ -1,20 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public interface IForeignKeyOptions
- {
- SchemaBuilder ReferencedTo(string primaryKeyTable, string primaryKeyColumn);
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/ISchemaBuilderExpression.cs.svn-base b/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/ISchemaBuilderExpression.cs.svn-base
deleted file mode 100644
index 0db89f886..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/ISchemaBuilderExpression.cs.svn-base
+++ /dev/null
@@ -1,20 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public interface ISchemaBuilderExpression
- {
- void Create(ITransformationProvider provider);
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/RenameTableExpression.cs.svn-base b/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/RenameTableExpression.cs.svn-base
deleted file mode 100644
index 7880618a9..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/RenameTableExpression.cs.svn-base
+++ /dev/null
@@ -1,31 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public class RenameTableExpression : ISchemaBuilderExpression
- {
- private string _oldName;
- private string _newName;
-
- public RenameTableExpression(string oldName, string newName)
- {
- _oldName = oldName;
- _newName = newName;
- }
- public void Create(ITransformationProvider provider)
- {
- provider.RenameTable(_oldName, _newName);
- }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/SchemaBuilder.cs.svn-base b/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/SchemaBuilder.cs.svn-base
deleted file mode 100644
index a02c4fe6d..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/.svn/text-base/SchemaBuilder.cs.svn-base
+++ /dev/null
@@ -1,169 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Data;
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public class SchemaBuilder : IColumnOptions, IForeignKeyOptions, IDeleteTableOptions
- {
- private string _currentTable;
- private IFluentColumn _currentColumn;
- private IList _exprs;
-
- public SchemaBuilder()
- {
- _exprs = new List();
- }
-
- public IEnumerable Expressions
- {
- get { return _exprs; }
- }
-
- ///
- /// Adds a Table to be created to the Schema
- ///
- /// Table name to be created
- /// SchemaBuilder for chaining
- public SchemaBuilder AddTable(string name)
- {
- if (string.IsNullOrEmpty(name))
- throw new ArgumentNullException("name");
-
- _exprs.Add(new AddTableExpression(name));
- _currentTable = name;
-
- return this;
- }
-
- public IDeleteTableOptions DeleteTable(string name)
- {
- if (string.IsNullOrEmpty(name))
- throw new ArgumentNullException("name");
- _currentTable = "";
- _currentColumn = null;
-
- _exprs.Add(new DeleteTableExpression(name));
-
- return this;
- }
-
- ///
- /// Reference an existing table.
- ///
- /// Table to reference
- /// SchemaBuilder for chaining
- public SchemaBuilder RenameTable(string newName)
- {
- if (string.IsNullOrEmpty(newName))
- throw new ArgumentNullException("newName");
-
- _exprs.Add(new RenameTableExpression(_currentTable, newName));
- _currentTable = newName;
-
- return this;
- }
-
- ///
- /// Reference an existing table.
- ///
- /// Table to reference
- /// SchemaBuilder for chaining
- public SchemaBuilder WithTable(string name)
- {
- if (string.IsNullOrEmpty(name))
- throw new ArgumentNullException("name");
-
- _currentTable = name;
-
- return this;
- }
-
- ///
- /// Adds a Column to be created
- ///
- /// Column name to be added
- /// IColumnOptions to restrict chaining
- public IColumnOptions AddColumn(string name)
- {
- if (string.IsNullOrEmpty(name))
- throw new ArgumentNullException("name");
- if (string.IsNullOrEmpty(_currentTable))
- throw new ArgumentException("missing referenced table");
-
- IFluentColumn column = new FluentColumn(name);
- _currentColumn = column;
-
- _exprs.Add(new AddColumnExpression(_currentTable, column));
- return this;
- }
-
- public SchemaBuilder OfType(DbType columnType)
- {
- _currentColumn.Type = columnType;
-
- return this;
- }
-
- public SchemaBuilder WithProperty(ColumnProperty columnProperty)
- {
- _currentColumn.ColumnProperty = columnProperty;
-
- return this;
- }
-
- public SchemaBuilder WithSize(int size)
- {
- if (size == 0)
- throw new ArgumentNullException("size", "Size must be greater than zero");
-
- _currentColumn.Size = size;
-
- return this;
- }
-
- public SchemaBuilder WithDefaultValue(object defaultValue)
- {
- if (defaultValue == null)
- throw new ArgumentNullException("defaultValue", "DefaultValue cannot be null or empty");
-
- _currentColumn.DefaultValue = defaultValue;
-
- return this;
- }
-
- public IForeignKeyOptions AsForeignKey()
- {
- _currentColumn.ColumnProperty = ColumnProperty.ForeignKey;
-
- return this;
- }
-
- public SchemaBuilder ReferencedTo(string primaryKeyTable, string primaryKeyColumn)
- {
- _currentColumn.Constraint = ForeignKeyConstraint.NoAction;
- _currentColumn.ForeignKey = new ForeignKey(primaryKeyTable, primaryKeyColumn);
- return this;
- }
-
- public SchemaBuilder WithConstraint(ForeignKeyConstraint action)
- {
- _currentColumn.Constraint = action;
-
- return this;
- }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/AddColumnExpression.cs b/Migrator.net/Migrator.Framework/SchemaBuilder/AddColumnExpression.cs
deleted file mode 100644
index 0bcbc9433..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/AddColumnExpression.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public class AddColumnExpression : ISchemaBuilderExpression
- {
- private IFluentColumn _column;
- private string _toTable;
-
-
- public AddColumnExpression(string toTable, IFluentColumn column)
- {
- _column = column;
- _toTable = toTable;
- }
- public void Create(ITransformationProvider provider)
- {
- provider.AddColumn(_toTable, _column.Name, _column.Type, _column.Size, _column.ColumnProperty, _column.DefaultValue);
-
- if (_column.ForeignKey != null)
- {
- provider.AddForeignKey(
- "FK_" + _toTable + "_" + _column.Name + "_" + _column.ForeignKey.PrimaryTable + "_" +
- _column.ForeignKey.PrimaryKey,
- _toTable, _column.Name, _column.ForeignKey.PrimaryTable, _column.ForeignKey.PrimaryKey, _column.Constraint);
- }
- }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/AddTableExpression.cs b/Migrator.net/Migrator.Framework/SchemaBuilder/AddTableExpression.cs
deleted file mode 100644
index 1bb3360c5..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/AddTableExpression.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public class AddTableExpression : ISchemaBuilderExpression
- {
- private string _newTable;
- public AddTableExpression(string newTable)
- {
- _newTable = newTable;
- }
- public void Create(ITransformationProvider provider)
- {
- provider.AddTable(_newTable);
- }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/DeleteTableExpression.cs b/Migrator.net/Migrator.Framework/SchemaBuilder/DeleteTableExpression.cs
deleted file mode 100644
index 82666ee5d..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/DeleteTableExpression.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public class DeleteTableExpression : ISchemaBuilderExpression
- {
- private string _tableName;
- public DeleteTableExpression(string tableName)
- {
- _tableName = tableName;
- }
- public void Create(ITransformationProvider provider)
- {
- provider.RemoveTable(_tableName);
- }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/FluentColumn.cs b/Migrator.net/Migrator.Framework/SchemaBuilder/FluentColumn.cs
deleted file mode 100644
index e1cc1ca02..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/FluentColumn.cs
+++ /dev/null
@@ -1,80 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-using System.Data;
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public class FluentColumn : IFluentColumn
- {
- private Column _inner;
- private ForeignKeyConstraint _constraint;
- private ForeignKey _fk;
-
- public FluentColumn(string columnName)
- {
- _inner = new Column(columnName);
- }
-
- public ColumnProperty ColumnProperty
- {
- get { return _inner.ColumnProperty; }
- set { _inner.ColumnProperty = value; }
- }
-
- public string Name
- {
- get { return _inner.Name; }
- set { _inner.Name = value; }
- }
-
- public DbType Type
- {
- get { return _inner.Type; }
- set { _inner.Type = value; }
- }
-
- public int Size
- {
- get { return _inner.Size; }
- set { _inner.Size = value; }
- }
-
- public bool IsIdentity
- {
- get { return _inner.IsIdentity; }
- }
-
- public bool IsPrimaryKey
- {
- get { return _inner.IsPrimaryKey; }
- }
-
- public object DefaultValue
- {
- get { return _inner.DefaultValue; }
- set { _inner.DefaultValue = value; }
- }
-
- public ForeignKeyConstraint Constraint
- {
- get { return _constraint; }
- set { _constraint = value; }
- }
- public ForeignKey ForeignKey
- {
- get { return _fk; }
- set { _fk = value; }
- }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/ForeignKey.cs b/Migrator.net/Migrator.Framework/SchemaBuilder/ForeignKey.cs
deleted file mode 100644
index 095b0948a..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/ForeignKey.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public class ForeignKey
- {
- private string _primaryTable;
- private string _primaryKey;
-
- public ForeignKey(string primaryTable, string primaryKey)
- {
- _primaryTable = primaryTable;
- _primaryKey = primaryKey;
- }
-
- public string PrimaryTable
- {
- get { return _primaryTable; }
- set { _primaryTable = value; }
- }
-
- public string PrimaryKey
- {
- get { return _primaryKey; }
- set { _primaryKey = value; }
- }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/IColumnOptions.cs b/Migrator.net/Migrator.Framework/SchemaBuilder/IColumnOptions.cs
deleted file mode 100644
index 8fd8cb32d..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/IColumnOptions.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using System.Data;
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public interface IColumnOptions
- {
- SchemaBuilder OfType(DbType dbType);
-
- SchemaBuilder WithSize(int size);
-
- IForeignKeyOptions AsForeignKey();
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/IDeleteTableOptions.cs b/Migrator.net/Migrator.Framework/SchemaBuilder/IDeleteTableOptions.cs
deleted file mode 100644
index 4d4152519..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/IDeleteTableOptions.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public interface IDeleteTableOptions
- {
- SchemaBuilder WithTable(string name);
-
- SchemaBuilder AddTable(string name);
-
- IDeleteTableOptions DeleteTable(string name);
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/IFluentColumn.cs b/Migrator.net/Migrator.Framework/SchemaBuilder/IFluentColumn.cs
deleted file mode 100644
index 6500ba948..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/IFluentColumn.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public interface IFluentColumn : IColumn
- {
- ForeignKeyConstraint Constraint { get; set; }
-
- ForeignKey ForeignKey { get; set; }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/IForeignKeyOptions.cs b/Migrator.net/Migrator.Framework/SchemaBuilder/IForeignKeyOptions.cs
deleted file mode 100644
index 3cb52cbf1..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/IForeignKeyOptions.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public interface IForeignKeyOptions
- {
- SchemaBuilder ReferencedTo(string primaryKeyTable, string primaryKeyColumn);
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/ISchemaBuilderExpression.cs b/Migrator.net/Migrator.Framework/SchemaBuilder/ISchemaBuilderExpression.cs
deleted file mode 100644
index 0db89f886..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/ISchemaBuilderExpression.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public interface ISchemaBuilderExpression
- {
- void Create(ITransformationProvider provider);
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/RenameTableExpression.cs b/Migrator.net/Migrator.Framework/SchemaBuilder/RenameTableExpression.cs
deleted file mode 100644
index 7880618a9..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/RenameTableExpression.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public class RenameTableExpression : ISchemaBuilderExpression
- {
- private string _oldName;
- private string _newName;
-
- public RenameTableExpression(string oldName, string newName)
- {
- _oldName = oldName;
- _newName = newName;
- }
- public void Create(ITransformationProvider provider)
- {
- provider.RenameTable(_oldName, _newName);
- }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/SchemaBuilder/SchemaBuilder.cs b/Migrator.net/Migrator.Framework/SchemaBuilder/SchemaBuilder.cs
deleted file mode 100644
index a02c4fe6d..000000000
--- a/Migrator.net/Migrator.Framework/SchemaBuilder/SchemaBuilder.cs
+++ /dev/null
@@ -1,169 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Data;
-
-namespace Migrator.Framework.SchemaBuilder
-{
- public class SchemaBuilder : IColumnOptions, IForeignKeyOptions, IDeleteTableOptions
- {
- private string _currentTable;
- private IFluentColumn _currentColumn;
- private IList _exprs;
-
- public SchemaBuilder()
- {
- _exprs = new List();
- }
-
- public IEnumerable Expressions
- {
- get { return _exprs; }
- }
-
- ///
- /// Adds a Table to be created to the Schema
- ///
- /// Table name to be created
- /// SchemaBuilder for chaining
- public SchemaBuilder AddTable(string name)
- {
- if (string.IsNullOrEmpty(name))
- throw new ArgumentNullException("name");
-
- _exprs.Add(new AddTableExpression(name));
- _currentTable = name;
-
- return this;
- }
-
- public IDeleteTableOptions DeleteTable(string name)
- {
- if (string.IsNullOrEmpty(name))
- throw new ArgumentNullException("name");
- _currentTable = "";
- _currentColumn = null;
-
- _exprs.Add(new DeleteTableExpression(name));
-
- return this;
- }
-
- ///
- /// Reference an existing table.
- ///
- /// Table to reference
- /// SchemaBuilder for chaining
- public SchemaBuilder RenameTable(string newName)
- {
- if (string.IsNullOrEmpty(newName))
- throw new ArgumentNullException("newName");
-
- _exprs.Add(new RenameTableExpression(_currentTable, newName));
- _currentTable = newName;
-
- return this;
- }
-
- ///
- /// Reference an existing table.
- ///
- /// Table to reference
- /// SchemaBuilder for chaining
- public SchemaBuilder WithTable(string name)
- {
- if (string.IsNullOrEmpty(name))
- throw new ArgumentNullException("name");
-
- _currentTable = name;
-
- return this;
- }
-
- ///
- /// Adds a Column to be created
- ///
- /// Column name to be added
- /// IColumnOptions to restrict chaining
- public IColumnOptions AddColumn(string name)
- {
- if (string.IsNullOrEmpty(name))
- throw new ArgumentNullException("name");
- if (string.IsNullOrEmpty(_currentTable))
- throw new ArgumentException("missing referenced table");
-
- IFluentColumn column = new FluentColumn(name);
- _currentColumn = column;
-
- _exprs.Add(new AddColumnExpression(_currentTable, column));
- return this;
- }
-
- public SchemaBuilder OfType(DbType columnType)
- {
- _currentColumn.Type = columnType;
-
- return this;
- }
-
- public SchemaBuilder WithProperty(ColumnProperty columnProperty)
- {
- _currentColumn.ColumnProperty = columnProperty;
-
- return this;
- }
-
- public SchemaBuilder WithSize(int size)
- {
- if (size == 0)
- throw new ArgumentNullException("size", "Size must be greater than zero");
-
- _currentColumn.Size = size;
-
- return this;
- }
-
- public SchemaBuilder WithDefaultValue(object defaultValue)
- {
- if (defaultValue == null)
- throw new ArgumentNullException("defaultValue", "DefaultValue cannot be null or empty");
-
- _currentColumn.DefaultValue = defaultValue;
-
- return this;
- }
-
- public IForeignKeyOptions AsForeignKey()
- {
- _currentColumn.ColumnProperty = ColumnProperty.ForeignKey;
-
- return this;
- }
-
- public SchemaBuilder ReferencedTo(string primaryKeyTable, string primaryKeyColumn)
- {
- _currentColumn.Constraint = ForeignKeyConstraint.NoAction;
- _currentColumn.ForeignKey = new ForeignKey(primaryKeyTable, primaryKeyColumn);
- return this;
- }
-
- public SchemaBuilder WithConstraint(ForeignKeyConstraint action)
- {
- _currentColumn.Constraint = action;
-
- return this;
- }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Framework/StringUtils.cs b/Migrator.net/Migrator.Framework/StringUtils.cs
deleted file mode 100644
index 4d91d4305..000000000
--- a/Migrator.net/Migrator.Framework/StringUtils.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-using System.Text;
-using System.Text.RegularExpressions;
-
-namespace Migrator.Framework
-{
- public class StringUtils
- {
- ///
- /// Convert a classname to something more readable.
- /// ex.: CreateATable => Create a table
- ///
- ///
- ///
- public static string ToHumanName(string className)
- {
- string name = Regex.Replace(className, "([A-Z])", " $1").Substring(1);
- return name.Substring(0, 1).ToUpper() + name.Substring(1).ToLower();
- }
-
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public static string ReplaceOnce(string template, string placeholder, string replacement)
- {
- int loc = template.IndexOf(placeholder);
- if (loc < 0)
- {
- return template;
- }
- else
- {
- return new StringBuilder(template.Substring(0, loc))
- .Append(replacement)
- .Append(template.Substring(loc + placeholder.Length))
- .ToString();
- }
- }
- }
-}
diff --git a/Migrator.net/Migrator.Providers/ColumnPropertiesMapper.cs b/Migrator.net/Migrator.Providers/ColumnPropertiesMapper.cs
deleted file mode 100644
index 8682a2c29..000000000
--- a/Migrator.net/Migrator.Providers/ColumnPropertiesMapper.cs
+++ /dev/null
@@ -1,119 +0,0 @@
-using System;
-using System.Collections.Generic;
-using Migrator.Framework;
-
-namespace Migrator.Providers
-{
- ///
- /// This is basically a just a helper base class
- /// per-database implementors may want to override ColumnSql
- ///
- public class ColumnPropertiesMapper
- {
- protected Dialect dialect;
-
- /// The SQL type
- protected string type;
-
- /// The name of the column
- protected string name;
-
- ///
- /// the type of the column
- ///
- protected string columnSql;
-
- ///
- /// Sql if This column is Indexed
- ///
- protected bool indexed = false;
-
- ///
- /// Sql if this column has a default value
- ///
- protected object defaultVal;
-
- public ColumnPropertiesMapper(Dialect dialect, string type)
- {
- this.dialect = dialect;
- this.type = type;
- }
-
- ///
- /// The sql for this column, override in database-specific implementation classes
- ///
- public virtual string ColumnSql
- {
- get { return columnSql; }
- }
-
- public string Name
- {
- get { return name; }
- set { name = value; }
- }
-
- public object Default
- {
- get { return defaultVal; }
- set { defaultVal = value; }
- }
-
- public string QuotedName
- {
- get { return dialect.Quote(Name); }
- }
-
- public string IndexSql
- {
- get
- {
- if (dialect.SupportsIndex && indexed)
- return String.Format("INDEX({0})", dialect.Quote(name));
- return null;
- }
- }
-
- public void MapColumnProperties(Column column)
- {
- Name = column.Name;
- indexed = PropertySelected(column.ColumnProperty, ColumnProperty.Indexed);
-
- List vals = new List();
- vals.Add(dialect.ColumnNameNeedsQuote ? QuotedName : Name);
-
- vals.Add(type);
-
- if (! dialect.IdentityNeedsType)
- AddValueIfSelected(column, ColumnProperty.Identity, vals);
-
- AddValueIfSelected(column, ColumnProperty.Unsigned, vals);
- if (! PropertySelected(column.ColumnProperty, ColumnProperty.PrimaryKey) || dialect.NeedsNotNullForIdentity)
- AddValueIfSelected(column, ColumnProperty.NotNull, vals);
-
- AddValueIfSelected(column, ColumnProperty.PrimaryKey, vals);
-
- if (dialect.IdentityNeedsType)
- AddValueIfSelected(column, ColumnProperty.Identity, vals);
-
- AddValueIfSelected(column, ColumnProperty.Unique, vals);
- AddValueIfSelected(column, ColumnProperty.ForeignKey, vals);
-
- if (column.DefaultValue != null)
- vals.Add(dialect.Default(column.DefaultValue));
-
- columnSql = String.Join(" ", vals.ToArray());
- }
-
- private void AddValueIfSelected(Column column, ColumnProperty property, ICollection vals)
- {
- if (PropertySelected(column.ColumnProperty, property))
- vals.Add(dialect.SqlForProperty(property));
- }
-
- public static bool PropertySelected(ColumnProperty source, ColumnProperty comparison)
- {
- return (source & comparison) == comparison;
- }
- }
-}
diff --git a/Migrator.net/Migrator.Providers/Dialect.cs b/Migrator.net/Migrator.Providers/Dialect.cs
deleted file mode 100644
index 16f4426a6..000000000
--- a/Migrator.net/Migrator.Providers/Dialect.cs
+++ /dev/null
@@ -1,193 +0,0 @@
-
-using System;
-using System.Data;
-using System.Collections.Generic;
-using Migrator.Framework;
-
-namespace Migrator.Providers
-{
- ///
- /// Defines the implementations specific details for a particular database.
- ///
- public abstract class Dialect
- {
- private readonly Dictionary propertyMap = new Dictionary();
- private readonly TypeNames typeNames = new TypeNames();
-
- protected Dialect()
- {
- RegisterProperty(ColumnProperty.Null, "NULL");
- RegisterProperty(ColumnProperty.NotNull, "NOT NULL");
- RegisterProperty(ColumnProperty.Unique, "UNIQUE");
- RegisterProperty(ColumnProperty.PrimaryKey, "PRIMARY KEY");
- }
-
- public abstract Type TransformationProvider { get; }
-
- public ITransformationProvider NewProviderForDialect(string connectionString)
- {
- return (ITransformationProvider)Activator.CreateInstance(TransformationProvider, this, connectionString);
- }
-
- ///
- /// Subclasses register a typename for the given type code and maximum
- /// column length. $l in the type name will be replaced by the column
- /// length (if appropriate)
- ///
- /// The typecode
- /// Maximum length of database type
- /// The database type name
- protected void RegisterColumnType(DbType code, int capacity, string name)
- {
- typeNames.Put(code, capacity, name);
- }
-
- ///
- /// Suclasses register a typename for the given type code. $l in the
- /// typename will be replaced by the column length (if appropriate).
- ///
- /// The typecode
- /// The database type name
- protected void RegisterColumnType(DbType code, string name)
- {
- typeNames.Put(code, name);
- }
-
- public ColumnPropertiesMapper GetColumnMapper(Column column)
- {
- string type = column.Size > 0 ? GetTypeName(column.Type, column.Size) : GetTypeName(column.Type);
- if (!IdentityNeedsType && column.IsIdentity)
- type = String.Empty;
-
- return new ColumnPropertiesMapper(this, type);
- }
-
- ///
- /// Get the name of the database type associated with the given
- ///
- /// The DbType
- /// The database type name used by ddl.
- public virtual string GetTypeName(DbType type)
- {
- string result = typeNames.Get(type);
- if (result == null)
- {
- throw new Exception(string.Format("No default type mapping for DbType {0}", type));
- }
-
- return result;
- }
-
- ///
- /// Get the name of the database type associated with the given
- ///
- /// The DbType
- /// The database type name used by ddl.
- ///
- public virtual string GetTypeName(DbType type, int length)
- {
- return GetTypeName(type, length, 0, 0);
- }
-
- ///
- /// Get the name of the database type associated with the given
- ///
- /// The DbType
- /// The database type name used by ddl.
- ///
- ///
- ///
- public virtual string GetTypeName(DbType type, int length, int precision, int scale)
- {
- string resultWithLength = typeNames.Get(type, length, precision, scale);
- if (resultWithLength != null)
- return resultWithLength;
-
- return GetTypeName(type);
- }
-
- public void RegisterProperty(ColumnProperty property, string sql)
- {
- if (!propertyMap.ContainsKey(property))
- {
- propertyMap.Add(property, sql);
- }
- propertyMap[property] = sql;
- }
-
- public string SqlForProperty(ColumnProperty property)
- {
- if (propertyMap.ContainsKey(property))
- {
- return propertyMap[property];
- }
- return String.Empty;
- }
-
- public virtual bool ColumnNameNeedsQuote
- {
- get { return false; }
- }
-
- public virtual bool TableNameNeedsQuote
- {
- get { return false; }
- }
-
- public virtual bool ConstraintNameNeedsQuote
- {
- get { return false; }
- }
-
- public virtual bool IdentityNeedsType
- {
- get { return true; }
- }
-
- public virtual bool NeedsNotNullForIdentity
- {
- get { return true; }
- }
-
- public virtual bool SupportsIndex
- {
- get { return true; }
- }
-
- public virtual string Quote(string value)
- {
- return String.Format(QuoteTemplate, value);
- }
-
- public virtual string QuoteTemplate
- {
- get { return "\"{0}\""; }
- }
-
- public virtual string Default(object defaultValue)
- {
- if (defaultValue is String && defaultValue.ToString() == String.Empty)
- {
- defaultValue = "''";
- }
-
- return String.Format("DEFAULT {0}", defaultValue);
- }
-
- public ColumnPropertiesMapper GetAndMapColumnProperties(Column column)
- {
- ColumnPropertiesMapper mapper = GetColumnMapper(column);
- mapper.MapColumnProperties(column);
- if (column.DefaultValue != null)
- {
- if (column.DefaultValue is String && column.DefaultValue.ToString() == string.Empty)
- {
- column.DefaultValue = @"''";
- }
-
- mapper.Default = column.DefaultValue;
- }
- return mapper;
- }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Providers/ForeignKeyConstraintMapper.cs b/Migrator.net/Migrator.Providers/ForeignKeyConstraintMapper.cs
deleted file mode 100644
index 35c4a8e93..000000000
--- a/Migrator.net/Migrator.Providers/ForeignKeyConstraintMapper.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using Migrator.Framework;
-
-namespace Migrator.Providers
-{
- public class ForeignKeyConstraintMapper
- {
- public string SqlForConstraint(ForeignKeyConstraint constraint)
- {
- switch(constraint)
- {
- case ForeignKeyConstraint.Cascade:
- return "CASCADE";
- case ForeignKeyConstraint.Restrict:
- return "RESTRICT";
- case ForeignKeyConstraint.SetDefault:
- return "SET DEFAULT";
- case ForeignKeyConstraint.SetNull:
- return "SET NULL";
- default:
- return "NO ACTION";
- }
- }
- }
-}
diff --git a/Migrator.net/Migrator.Providers/Impl/.svn/all-wcprops b/Migrator.net/Migrator.Providers/Impl/.svn/all-wcprops
deleted file mode 100644
index 2ad37dc87..000000000
--- a/Migrator.net/Migrator.Providers/Impl/.svn/all-wcprops
+++ /dev/null
@@ -1,5 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 51
-/svn/!svn/ver/144/trunk/src/Migrator.Providers/Impl
-END
diff --git a/Migrator.net/Migrator.Providers/Impl/.svn/entries b/Migrator.net/Migrator.Providers/Impl/.svn/entries
deleted file mode 100644
index 2b80596b8..000000000
--- a/Migrator.net/Migrator.Providers/Impl/.svn/entries
+++ /dev/null
@@ -1,43 +0,0 @@
-10
-
-dir
-147
-http://migratordotnet.googlecode.com/svn/trunk/src/Migrator.Providers/Impl
-http://migratordotnet.googlecode.com/svn
-
-
-
-2010-03-25T22:27:09.529568Z
-144
-geofflane
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-8c3eb3c4-eb3a-0410-862c-73fa8ce6028b
-
-SQLite
-dir
-
-PostgreSQL
-dir
-
-Oracle
-dir
-
-Mysql
-dir
-
-SqlServer
-dir
-
diff --git a/Migrator.net/Migrator.Providers/Impl/SQLite/.svn/all-wcprops b/Migrator.net/Migrator.Providers/Impl/SQLite/.svn/all-wcprops
deleted file mode 100644
index cd10a5fe9..000000000
--- a/Migrator.net/Migrator.Providers/Impl/SQLite/.svn/all-wcprops
+++ /dev/null
@@ -1,17 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 58
-/svn/!svn/ver/108/trunk/src/Migrator.Providers/Impl/SQLite
-END
-SQLiteTransformationProvider.cs
-K 25
-svn:wc:ra_dav:version-url
-V 90
-/svn/!svn/ver/108/trunk/src/Migrator.Providers/Impl/SQLite/SQLiteTransformationProvider.cs
-END
-SQLiteDialect.cs
-K 25
-svn:wc:ra_dav:version-url
-V 74
-/svn/!svn/ver/87/trunk/src/Migrator.Providers/Impl/SQLite/SQLiteDialect.cs
-END
diff --git a/Migrator.net/Migrator.Providers/Impl/SQLite/.svn/entries b/Migrator.net/Migrator.Providers/Impl/SQLite/.svn/entries
deleted file mode 100644
index bbb0295b3..000000000
--- a/Migrator.net/Migrator.Providers/Impl/SQLite/.svn/entries
+++ /dev/null
@@ -1,96 +0,0 @@
-10
-
-dir
-147
-http://migratordotnet.googlecode.com/svn/trunk/src/Migrator.Providers/Impl/SQLite
-http://migratordotnet.googlecode.com/svn
-
-
-
-2008-08-04T22:56:23.283456Z
-108
-geofflane
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-8c3eb3c4-eb3a-0410-862c-73fa8ce6028b
-
-SQLiteTransformationProvider.cs
-file
-
-
-
-
-2011-05-23T18:17:16.308987Z
-1a5895030f84893a6051489dcd1958d2
-2008-08-04T22:56:23.283456Z
-108
-geofflane
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-8486
-
-SQLiteDialect.cs
-file
-
-
-
-
-2011-05-23T18:17:16.309987Z
-4dc0c91dddefbb5ec3c85037f025f3f3
-2008-06-12T19:25:48.586161Z
-87
-geofflane
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1786
-
diff --git a/Migrator.net/Migrator.Providers/Impl/SQLite/.svn/text-base/SQLiteDialect.cs.svn-base b/Migrator.net/Migrator.Providers/Impl/SQLite/.svn/text-base/SQLiteDialect.cs.svn-base
deleted file mode 100644
index 0731f79ef..000000000
--- a/Migrator.net/Migrator.Providers/Impl/SQLite/.svn/text-base/SQLiteDialect.cs.svn-base
+++ /dev/null
@@ -1,44 +0,0 @@
-
-using System;
-using System.Data;
-using Migrator.Framework;
-
-namespace Migrator.Providers.SQLite
-{
- public class SQLiteDialect : Dialect
- {
- public SQLiteDialect()
- {
- RegisterColumnType(DbType.Binary, "BLOB");
- RegisterColumnType(DbType.Byte, "INTEGER");
- RegisterColumnType(DbType.Int16, "INTEGER");
- RegisterColumnType(DbType.Int32, "INTEGER");
- RegisterColumnType(DbType.Int64, "INTEGER");
- RegisterColumnType(DbType.SByte, "INTEGER");
- RegisterColumnType(DbType.UInt16, "INTEGER");
- RegisterColumnType(DbType.UInt32, "INTEGER");
- RegisterColumnType(DbType.UInt64, "INTEGER");
- RegisterColumnType(DbType.Currency, "NUMERIC");
- RegisterColumnType(DbType.Decimal, "NUMERIC");
- RegisterColumnType(DbType.Double, "NUMERIC");
- RegisterColumnType(DbType.Single, "NUMERIC");
- RegisterColumnType(DbType.VarNumeric, "NUMERIC");
- RegisterColumnType(DbType.String, "TEXT");
- RegisterColumnType(DbType.AnsiStringFixedLength, "TEXT");
- RegisterColumnType(DbType.StringFixedLength, "TEXT");
- RegisterColumnType(DbType.DateTime, "DATETIME");
- RegisterColumnType(DbType.Time, "DATETIME");
- RegisterColumnType(DbType.Boolean, "INTEGER");
- RegisterColumnType(DbType.Guid, "UNIQUEIDENTIFIER");
-
- RegisterProperty(ColumnProperty.Identity, "AUTOINCREMENT");
- }
-
- public override Type TransformationProvider { get { return typeof(SQLiteTransformationProvider); } }
-
- public override bool NeedsNotNullForIdentity
- {
- get { return false; }
- }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Providers/Impl/SQLite/.svn/text-base/SQLiteTransformationProvider.cs.svn-base b/Migrator.net/Migrator.Providers/Impl/SQLite/.svn/text-base/SQLiteTransformationProvider.cs.svn-base
deleted file mode 100644
index ad6f3cc31..000000000
--- a/Migrator.net/Migrator.Providers/Impl/SQLite/.svn/text-base/SQLiteTransformationProvider.cs.svn-base
+++ /dev/null
@@ -1,232 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Data;
-using Migrator.Framework;
-using ForeignKeyConstraint=Migrator.Framework.ForeignKeyConstraint;
-#if DOTNET2
-using SqliteConnection=System.Data.SQLite.SQLiteConnection;
-#else
-using Mono.Data.Sqlite;
-#endif
-
-namespace Migrator.Providers.SQLite
-{
- ///
- /// Summary description for SQLiteTransformationProvider.
- ///
- public class SQLiteTransformationProvider : TransformationProvider
- {
- public SQLiteTransformationProvider(Dialect dialect, string connectionString)
- : base(dialect, connectionString)
- {
- _connection = new SqliteConnection(_connectionString);
- _connection.ConnectionString = _connectionString;
- _connection.Open();
- }
-
- public override void AddForeignKey(string name, string primaryTable, string[] primaryColumns, string refTable,
- string[] refColumns, ForeignKeyConstraint constraint)
- {
- // NOOP Because SQLite doesn't support foreign keys
- }
-
- public override void RemoveForeignKey(string name, string table)
- {
- // NOOP Because SQLite doesn't support foreign keys
- }
-
- public override void RemoveColumn(string table, string column)
- {
- if (! (TableExists(table) && ColumnExists(table, column)))
- return;
-
- string[] origColDefs = GetColumnDefs(table);
- List colDefs = new List();
-
- foreach (string origdef in origColDefs)
- {
- if (! ColumnMatch(column, origdef))
- colDefs.Add(origdef);
- }
-
- string[] newColDefs = colDefs.ToArray();
- string colDefsSql = String.Join(",", newColDefs);
-
- string[] colNames = ParseSqlForColumnNames(newColDefs);
- string colNamesSql = String.Join(",", colNames);
-
- AddTable(table + "_temp", null, colDefsSql);
- ExecuteQuery(String.Format("INSERT INTO {0}_temp SELECT {1} FROM {0}", table, colNamesSql));
- RemoveTable(table);
- ExecuteQuery(String.Format("ALTER TABLE {0}_temp RENAME TO {0}", table));
- }
-
- public override void RenameColumn(string tableName, string oldColumnName, string newColumnName)
- {
- if (ColumnExists(tableName, newColumnName))
- throw new MigrationException(String.Format("Table '{0}' has column named '{1}' already", tableName, newColumnName));
-
- if (ColumnExists(tableName, oldColumnName))
- {
- string[] columnDefs = GetColumnDefs(tableName);
- string columnDef = Array.Find(columnDefs, delegate(string col) { return ColumnMatch(oldColumnName, col); });
-
- string newColumnDef = columnDef.Replace(oldColumnName, newColumnName);
-
- AddColumn(tableName, newColumnDef);
- ExecuteQuery(String.Format("UPDATE {0} SET {1}={2}", tableName, newColumnName, oldColumnName));
- RemoveColumn(tableName, oldColumnName);
- }
- }
-
- public override void ChangeColumn(string table, Column column)
- {
- if (! ColumnExists(table, column.Name))
- {
- Logger.Warn("Column {0}.{1} does not exist", table, column.Name);
- return;
- }
-
- string tempColumn = "temp_" + column.Name;
- RenameColumn(table, column.Name, tempColumn);
- AddColumn(table, column);
- ExecuteQuery(String.Format("UPDATE {0} SET {1}={2}", table, column.Name, tempColumn));
- RemoveColumn(table, tempColumn);
- }
-
- public override bool TableExists(string table)
- {
- using (IDataReader reader =
- ExecuteQuery(String.Format("SELECT name FROM sqlite_master WHERE type='table' and name='{0}'",table)))
- {
- return reader.Read();
- }
- }
-
- public override bool ConstraintExists(string table, string name)
- {
- return false;
- }
-
- public override string[] GetTables()
- {
- List tables = new List();
-
- using (IDataReader reader = ExecuteQuery("SELECT name FROM sqlite_master WHERE type='table' AND name <> 'sqlite_sequence' ORDER BY name"))
- {
- while (reader.Read())
- {
- tables.Add((string) reader[0]);
- }
- }
-
- return tables.ToArray();
- }
-
- public override Column[] GetColumns(string table)
- {
- List columns = new List();
- foreach (string columnDef in GetColumnDefs(table))
- {
- string name = ExtractNameFromColumnDef(columnDef);
- // FIXME: Need to get the real type information
- Column column = new Column(name, DbType.String);
- bool isNullable = IsNullable(columnDef);
- column.ColumnProperty |= isNullable ? ColumnProperty.Null : ColumnProperty.NotNull;
- columns.Add(column);
- }
- return columns.ToArray();
- }
-
- public string GetSqlDefString(string table)
- {
- string sqldef = null;
- using (IDataReader reader = ExecuteQuery(String.Format("SELECT sql FROM sqlite_master WHERE type='table' AND name='{0}'",table)))
- {
- if (reader.Read())
- {
- sqldef = (string) reader[0];
- }
- }
- return sqldef;
- }
-
- public string[] GetColumnNames(string table)
- {
- return ParseSqlForColumnNames(GetSqlDefString(table));
- }
-
- public string[] GetColumnDefs(string table)
- {
- return ParseSqlColumnDefs(GetSqlDefString(table));
- }
-
- ///
- /// Turn something like 'columnName INTEGER NOT NULL' into just 'columnName'
- ///
- public string[] ParseSqlForColumnNames(string sqldef)
- {
- string[] parts = ParseSqlColumnDefs(sqldef);
- return ParseSqlForColumnNames(parts);
- }
-
- public string[] ParseSqlForColumnNames(string[] parts)
- {
- if (null == parts)
- return null;
-
- for (int i = 0; i < parts.Length; i ++)
- {
- parts[i] = ExtractNameFromColumnDef(parts[i]);
- }
- return parts;
- }
-
- ///
- /// Name is the first value before the space.
- ///
- ///
- ///
- public string ExtractNameFromColumnDef(string columnDef)
- {
- int idx = columnDef.IndexOf(" ");
- if (idx > 0)
- {
- return columnDef.Substring(0, idx);
- }
- return null;
- }
-
- public bool IsNullable(string columnDef)
- {
- return ! columnDef.Contains("NOT NULL");
- }
-
- public string[] ParseSqlColumnDefs(string sqldef)
- {
- if (String.IsNullOrEmpty(sqldef))
- {
- return null;
- }
-
- sqldef = sqldef.Replace(Environment.NewLine, " ");
- int start = sqldef.IndexOf("(");
- int end = sqldef.IndexOf(")");
-
- sqldef = sqldef.Substring(0, end);
- sqldef = sqldef.Substring(start + 1);
-
- string[] cols = sqldef.Split(new char[]{','});
- for (int i = 0; i < cols.Length; i ++)
- {
- cols[i] = cols[i].Trim();
- }
- return cols;
- }
-
- public bool ColumnMatch(string column, string columnDef)
- {
- return columnDef.StartsWith(column + " ") || columnDef.StartsWith(_dialect.Quote(column));
- }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Providers/Impl/SQLite/SQLiteDialect.cs b/Migrator.net/Migrator.Providers/Impl/SQLite/SQLiteDialect.cs
deleted file mode 100644
index 0731f79ef..000000000
--- a/Migrator.net/Migrator.Providers/Impl/SQLite/SQLiteDialect.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-
-using System;
-using System.Data;
-using Migrator.Framework;
-
-namespace Migrator.Providers.SQLite
-{
- public class SQLiteDialect : Dialect
- {
- public SQLiteDialect()
- {
- RegisterColumnType(DbType.Binary, "BLOB");
- RegisterColumnType(DbType.Byte, "INTEGER");
- RegisterColumnType(DbType.Int16, "INTEGER");
- RegisterColumnType(DbType.Int32, "INTEGER");
- RegisterColumnType(DbType.Int64, "INTEGER");
- RegisterColumnType(DbType.SByte, "INTEGER");
- RegisterColumnType(DbType.UInt16, "INTEGER");
- RegisterColumnType(DbType.UInt32, "INTEGER");
- RegisterColumnType(DbType.UInt64, "INTEGER");
- RegisterColumnType(DbType.Currency, "NUMERIC");
- RegisterColumnType(DbType.Decimal, "NUMERIC");
- RegisterColumnType(DbType.Double, "NUMERIC");
- RegisterColumnType(DbType.Single, "NUMERIC");
- RegisterColumnType(DbType.VarNumeric, "NUMERIC");
- RegisterColumnType(DbType.String, "TEXT");
- RegisterColumnType(DbType.AnsiStringFixedLength, "TEXT");
- RegisterColumnType(DbType.StringFixedLength, "TEXT");
- RegisterColumnType(DbType.DateTime, "DATETIME");
- RegisterColumnType(DbType.Time, "DATETIME");
- RegisterColumnType(DbType.Boolean, "INTEGER");
- RegisterColumnType(DbType.Guid, "UNIQUEIDENTIFIER");
-
- RegisterProperty(ColumnProperty.Identity, "AUTOINCREMENT");
- }
-
- public override Type TransformationProvider { get { return typeof(SQLiteTransformationProvider); } }
-
- public override bool NeedsNotNullForIdentity
- {
- get { return false; }
- }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Providers/Impl/SQLite/SQLiteTransformationProvider.cs b/Migrator.net/Migrator.Providers/Impl/SQLite/SQLiteTransformationProvider.cs
deleted file mode 100644
index d4731d218..000000000
--- a/Migrator.net/Migrator.Providers/Impl/SQLite/SQLiteTransformationProvider.cs
+++ /dev/null
@@ -1,232 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Data;
-using Migrator.Framework;
-using ForeignKeyConstraint=Migrator.Framework.ForeignKeyConstraint;
-#if DOTNET2
-using SqliteConnection=System.Data.SQLite.SQLiteConnection;
-#else
-using Mono.Data.Sqlite;
-#endif
-
-namespace Migrator.Providers.SQLite
-{
- ///
- /// Summary description for SQLiteTransformationProvider.
- ///
- public class SQLiteTransformationProvider : TransformationProvider
- {
- public SQLiteTransformationProvider(Dialect dialect, string connectionString)
- : base(dialect, connectionString)
- {
- _connection = new SqliteConnection(_connectionString);
- _connection.ConnectionString = _connectionString;
- _connection.Open();
- }
-
- public override void AddForeignKey(string name, string primaryTable, string[] primaryColumns, string refTable,
- string[] refColumns, ForeignKeyConstraint constraint)
- {
- // NOOP Because SQLite doesn't support foreign keys
- }
-
- public override void RemoveForeignKey(string name, string table)
- {
- // NOOP Because SQLite doesn't support foreign keys
- }
-
- public override void RemoveColumn(string table, string column)
- {
- if (! (TableExists(table) && ColumnExists(table, column)))
- return;
-
- string[] origColDefs = GetColumnDefs(table);
- List colDefs = new List();
-
- foreach (string origdef in origColDefs)
- {
- if (! ColumnMatch(column, origdef))
- colDefs.Add(origdef);
- }
-
- string[] newColDefs = colDefs.ToArray();
- string colDefsSql = String.Join(",", newColDefs);
-
- string[] colNames = ParseSqlForColumnNames(newColDefs);
- string colNamesSql = String.Join(",", colNames);
-
- AddTable(table + "_temp", null, colDefsSql);
- ExecuteQuery(String.Format("INSERT INTO {0}_temp SELECT {1} FROM {0}", table, colNamesSql));
- RemoveTable(table);
- ExecuteQuery(String.Format("ALTER TABLE {0}_temp RENAME TO {0}", table));
- }
-
- public override void RenameColumn(string tableName, string oldColumnName, string newColumnName)
- {
- if (ColumnExists(tableName, newColumnName))
- throw new MigrationException(String.Format("Table '{0}' has column named '{1}' already", tableName, newColumnName));
-
- if (ColumnExists(tableName, oldColumnName))
- {
- string[] columnDefs = GetColumnDefs(tableName);
- string columnDef = Array.Find(columnDefs, delegate(string col) { return ColumnMatch(oldColumnName, col); });
-
- string newColumnDef = columnDef.Replace(oldColumnName, newColumnName);
-
- AddColumn(tableName, newColumnDef);
- ExecuteQuery(String.Format("UPDATE {0} SET {1}={2}", tableName, newColumnName, oldColumnName));
- RemoveColumn(tableName, oldColumnName);
- }
- }
-
- public override void ChangeColumn(string table, Column column)
- {
- if (! ColumnExists(table, column.Name))
- {
- Logger.Warn("Column {0}.{1} does not exist", table, column.Name);
- return;
- }
-
- string tempColumn = "temp_" + column.Name;
- RenameColumn(table, column.Name, tempColumn);
- AddColumn(table, column);
- ExecuteQuery(String.Format("UPDATE {0} SET {1}={2}", table, column.Name, tempColumn));
- RemoveColumn(table, tempColumn);
- }
-
- public override bool TableExists(string table)
- {
- using (IDataReader reader =
- ExecuteQuery(String.Format("SELECT name FROM sqlite_master WHERE type='table' and name='{0}'",table)))
- {
- return reader.Read();
- }
- }
-
- public override bool ConstraintExists(string table, string name)
- {
- return false;
- }
-
- public override string[] GetTables()
- {
- List tables = new List();
-
- using (IDataReader reader = ExecuteQuery("SELECT name FROM sqlite_master WHERE type='table' AND name <> 'sqlite_sequence' ORDER BY name"))
- {
- while (reader.Read())
- {
- tables.Add((string) reader[0]);
- }
- }
-
- return tables.ToArray();
- }
-
- public override Column[] GetColumns(string table)
- {
- List columns = new List();
- foreach (string columnDef in GetColumnDefs(table))
- {
- string name = ExtractNameFromColumnDef(columnDef);
- // FIXME: Need to get the real type information
- Column column = new Column(name, DbType.String);
- bool isNullable = IsNullable(columnDef);
- column.ColumnProperty |= isNullable ? ColumnProperty.Null : ColumnProperty.NotNull;
- columns.Add(column);
- }
- return columns.ToArray();
- }
-
- public string GetSqlDefString(string table)
- {
- string sqldef = null;
- using (IDataReader reader = ExecuteQuery(String.Format("SELECT sql FROM sqlite_master WHERE type='table' AND name='{0}'",table)))
- {
- if (reader.Read())
- {
- sqldef = (string) reader[0];
- }
- }
- return sqldef;
- }
-
- public string[] GetColumnNames(string table)
- {
- return ParseSqlForColumnNames(GetSqlDefString(table));
- }
-
- public string[] GetColumnDefs(string table)
- {
- return ParseSqlColumnDefs(GetSqlDefString(table));
- }
-
- ///
- /// Turn something like 'columnName INTEGER NOT NULL' into just 'columnName'
- ///
- public string[] ParseSqlForColumnNames(string sqldef)
- {
- string[] parts = ParseSqlColumnDefs(sqldef);
- return ParseSqlForColumnNames(parts);
- }
-
- public string[] ParseSqlForColumnNames(string[] parts)
- {
- if (null == parts)
- return null;
-
- for (int i = 0; i < parts.Length; i ++)
- {
- parts[i] = ExtractNameFromColumnDef(parts[i]);
- }
- return parts;
- }
-
- ///
- /// Name is the first value before the space.
- ///
- ///
- ///
- public string ExtractNameFromColumnDef(string columnDef)
- {
- int idx = columnDef.IndexOf(" ");
- if (idx > 0)
- {
- return columnDef.Substring(0, idx);
- }
- return null;
- }
-
- public bool IsNullable(string columnDef)
- {
- return ! columnDef.Contains("NOT NULL");
- }
-
- public string[] ParseSqlColumnDefs(string sqldef)
- {
- if (String.IsNullOrEmpty(sqldef))
- {
- return null;
- }
-
- sqldef = sqldef.Replace(Environment.NewLine, " ");
- int start = sqldef.IndexOf("(");
- int end = sqldef.LastIndexOf(")");
-
- sqldef = sqldef.Substring(0, end);
- sqldef = sqldef.Substring(start + 1);
-
- string[] cols = sqldef.Split(new char[]{','});
- for (int i = 0; i < cols.Length; i ++)
- {
- cols[i] = cols[i].Trim();
- }
- return cols;
- }
-
- public bool ColumnMatch(string column, string columnDef)
- {
- return columnDef.StartsWith(column + " ") || columnDef.StartsWith(_dialect.Quote(column));
- }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Providers/Migrator.Providers.csproj b/Migrator.net/Migrator.Providers/Migrator.Providers.csproj
deleted file mode 100644
index 93786bb95..000000000
--- a/Migrator.net/Migrator.Providers/Migrator.Providers.csproj
+++ /dev/null
@@ -1,119 +0,0 @@
-
-
-
- Debug
- AnyCPU
- 9.0.30729
- 2.0
- {D58C68E4-D789-40F7-9078-C9F587D4363C}
- Library
- Migrator.Providers
- Migrator.Providers
-
-
- 3.5
-
-
- false
- true
- MigratorDotNet.snk
- v2.0
- publish\
- true
- Disk
- false
- Foreground
- 7
- Days
- false
- false
- true
- 0
- 1.0.0.%2a
- false
- true
-
-
- true
- full
- false
- bin\Debug\
- TRACE;DEBUG;DOTNET2
- prompt
- 4
-
-
- pdbonly
- true
- bin\Release\
- TRACE;DOTNET2
- prompt
- 4
- x86
-
-
-
-
-
- ..\..\Libraries\System.Data.SQLite.dll
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- False
- .NET Framework 3.5 SP1 Client Profile
- false
-
-
- False
- .NET Framework 2.0 %28x86%29
- true
-
-
- False
- .NET Framework 3.0 %28x86%29
- false
-
-
- False
- .NET Framework 3.5
- false
-
-
- False
- .NET Framework 3.5 SP1
- false
-
-
-
-
-
-
-
- {5270F048-E580-486C-B14C-E5B9F6E539D4}
- Migrator.Framework
-
-
-
-
-
\ No newline at end of file
diff --git a/Migrator.net/Migrator.Providers/MigratorDotNet.snk b/Migrator.net/Migrator.Providers/MigratorDotNet.snk
deleted file mode 100644
index 5032d709b..000000000
Binary files a/Migrator.net/Migrator.Providers/MigratorDotNet.snk and /dev/null differ
diff --git a/Migrator.net/Migrator.Providers/NoOpTransformationProvider.cs b/Migrator.net/Migrator.Providers/NoOpTransformationProvider.cs
deleted file mode 100644
index 4b7903605..000000000
--- a/Migrator.net/Migrator.Providers/NoOpTransformationProvider.cs
+++ /dev/null
@@ -1,352 +0,0 @@
-using System;
-using System.Data;
-using Migrator.Framework;
-using ForeignKeyConstraint=Migrator.Framework.ForeignKeyConstraint;
-using System.Collections.Generic;
-
-namespace Migrator.Providers
-{
- ///
- /// No Op (Null Object Pattern) implementation of the ITransformationProvider
- ///
- public class NoOpTransformationProvider : ITransformationProvider
- {
-
- public static readonly NoOpTransformationProvider Instance = new NoOpTransformationProvider();
-
- private NoOpTransformationProvider()
- {
-
- }
-
- public virtual ILogger Logger
- {
- get { return null; }
- set { }
- }
-
- public Dialect Dialect
- {
- get { return null; }
- }
-
- public string[] GetTables()
- {
- return null;
- }
-
- public Column[] GetColumns(string table)
- {
- return null;
- }
-
- public Column GetColumnByName(string table, string column)
- {
- return null;
- }
-
- public void RemoveForeignKey(string table, string name)
- {
- // No Op
- }
-
- public void RemoveConstraint(string table, string name)
- {
- // No Op
- }
-
- public void RemoveIndex(string table, string name)
- {
- // No Op
- }
-
- public void AddTable(string name, params Column[] columns)
- {
- // No Op
- }
-
- public void AddTable(string name, string engine, params Column[] columns)
- {
- // No Op
- }
-
- public void RemoveTable(string name)
- {
- // No Op
- }
-
- public void RenameTable(string oldName, string newName)
- {
- // No Op
- }
-
- public void RenameColumn(string tableName, string oldColumnName, string newColumnName)
- {
- // No Op
- }
-
- public void AddColumn(string table, string sqlColumn)
- {
- // No Op
- }
-
- public void RemoveColumn(string table, string column)
- {
- // No Op
- }
-
- public bool ColumnExists(string table, string column)
- {
- return false;
- }
-
- public bool TableExists(string table)
- {
- return false;
- }
-
- public void AddColumn(string table, string column, DbType type, int size, ColumnProperty property, object defaultValue)
- {
- // No Op
- }
-
- public void AddColumn(string table, string column, DbType type)
- {
- // No Op
- }
-
- public void AddColumn(string table, string column, DbType type, object defaultValue)
- {
- // No Op
- }
-
- public void AddColumn(string table, string column, DbType type, int size)
- {
- // No Op
- }
-
- public void AddColumn(string table, string column, DbType type, ColumnProperty property)
- {
- // No Op
- }
-
- public void AddColumn(string table, string column, DbType type, int size, ColumnProperty property)
- {
- // No Op
- }
-
- public void AddIndex(string name, string table, params string[] columns)
- {
- //No Op
- }
-
- public void AddIndex(string name, string table, bool unique, params string[] columns)
- {
- //No Op
- }
-
- public void AddPrimaryKey(string name, string table, params string[] columns)
- {
- // No Op
- }
-
- public void GenerateForeignKey(string primaryTable, string primaryColumn, string refTable, string refColumn)
- {
- // No Op
- }
-
- public void GenerateForeignKey(string primaryTable, string[] primaryColumns, string refTable, string[] refColumns)
- {
- // No Op
- }
-
- public void GenerateForeignKey(string primaryTable, string primaryColumn, string refTable, string refColumn, ForeignKeyConstraint constraint)
- {
- // No Op
- }
-
- public void GenerateForeignKey(string primaryTable, string[] primaryColumns, string refTable,
- string[] refColumns, ForeignKeyConstraint constraint)
- {
- // No Op
- }
-
- public void AddForeignKey(string name, string primaryTable, string primaryColumn, string refTable,
- string refColumn)
- {
- // No Op
- }
-
- public void AddForeignKey(string name, string primaryTable, string[] primaryColumns, string refTable, string[] refColumns)
- {
- // No Op
- }
-
- public void AddForeignKey(string name, string primaryTable, string primaryColumn, string refTable, string refColumn, ForeignKeyConstraint constraint)
- {
- // No Op
- }
-
- public void AddForeignKey(string name, string primaryTable, string[] primaryColumns, string refTable,
- string[] refColumns, ForeignKeyConstraint constraint)
- {
- // No Op
- }
-
- public void AddUniqueConstraint(string name, string table, params string[] columns)
- {
- // No Op
- }
-
- public void AddCheckConstraint(string name, string table, string checkSql)
- {
- // No Op
- }
-
- public bool ConstraintExists(string table, string name)
- {
- return false;
- }
-
- public void ChangeColumn(string table, Column column)
- {
- // No Op
- }
-
-
- public bool PrimaryKeyExists(string table, string name)
- {
- return false;
- }
-
- public int ExecuteNonQuery(string sql)
- {
- return 0;
- }
-
- public IDataReader ExecuteQuery(string sql)
- {
- return null;
- }
-
- public object ExecuteScalar(string sql)
- {
- return null;
- }
-
- public IDataReader Select(string what, string from)
- {
- return null;
- }
-
- public IDataReader Select(string what, string from, string where)
- {
- return null;
- }
-
- public object SelectScalar(string what, string from)
- {
- return null;
- }
-
- public object SelectScalar(string what, string from, string where)
- {
- return null;
- }
-
- public int Update(string table, string[] columns, string[] columnValues)
- {
- return 0;
- }
-
- public int Update(string table, string[] columns, string[] columnValues, string where)
- {
- return 0;
- }
-
- public int Insert(string table, string[] columns, string[] columnValues)
- {
- return 0;
- }
-
- public int Delete(string table, string[] columns, string[] columnValues)
- {
- return 0;
- }
-
- public int Delete(string table, string column, string value)
- {
- return 0;
- }
-
- public void BeginTransaction()
- {
- // No Op
- }
-
- public void Rollback()
- {
- // No Op
- }
-
- public void Commit()
- {
- // No Op
- }
-
- public ITransformationProvider this[string provider]
- {
- get { return this; }
- }
-
- public void MigrationApplied(long version)
- {
- //no op
- }
-
- public void MigrationUnApplied(long version)
- {
- //no op
- }
-
- public List AppliedMigrations
- {
- get { return new List(); }
- }
-
- protected void CreateSchemaInfoTable()
- {
-
- }
-
- public void AddColumn(string table, Column column)
- {
- // No Op
- }
-
- public void GenerateForeignKey(string primaryTable, string refTable)
- {
- // No Op
- }
-
- public void GenerateForeignKey(string primaryTable, string refTable, ForeignKeyConstraint constraint)
- {
- // No Op
- }
-
- public IDbCommand GetCommand()
- {
- return null;
- }
-
- public void ExecuteSchemaBuilder(Migrator.Framework.SchemaBuilder.SchemaBuilder schemaBuilder)
- {
- // No Op
- }
-
- public void Dispose()
- {
- //No Op
- }
- }
-}
diff --git a/Migrator.net/Migrator.Providers/TransformationProvider.cs b/Migrator.net/Migrator.Providers/TransformationProvider.cs
deleted file mode 100644
index 8ee5c718f..000000000
--- a/Migrator.net/Migrator.Providers/TransformationProvider.cs
+++ /dev/null
@@ -1,881 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Data;
-using Migrator.Framework;
-using Migrator.Framework.SchemaBuilder;
-using ForeignKeyConstraint = Migrator.Framework.ForeignKeyConstraint;
-using Migrator.Framework.Loggers;
-
-namespace Migrator.Providers
-{
- ///
- /// Base class for every transformation providers.
- /// A 'tranformation' is an operation that modifies the database.
- ///
- public abstract class TransformationProvider : ITransformationProvider
- {
- private ILogger _logger;
- protected IDbConnection _connection;
- private IDbTransaction _transaction;
- private List _appliedMigrations;
-
- protected readonly string _connectionString;
- protected Dialect _dialect;
-
- private readonly ForeignKeyConstraintMapper constraintMapper = new ForeignKeyConstraintMapper();
-
- protected TransformationProvider(Dialect dialect, string connectionString)
- {
- _dialect = dialect;
- _connectionString = connectionString;
- _logger = new Logger(false);
- }
-
- ///
- /// Returns the event logger
- ///
- public virtual ILogger Logger
- {
- get { return _logger; }
- set { _logger = value; }
- }
-
- public Dialect Dialect
- {
- get { return _dialect; }
- }
-
- public ITransformationProvider this[string provider]
- {
- get
- {
- if (null != provider && IsThisProvider(provider))
- return this;
-
- return NoOpTransformationProvider.Instance;
- }
- }
-
- public bool IsThisProvider(string provider)
- {
- // XXX: This might need to be more sophisticated. Currently just a convention
- return GetType().Name.ToLower().StartsWith(provider.ToLower());
- }
-
- public virtual Column[] GetColumns(string table)
- {
- List columns = new List();
- using (
- IDataReader reader =
- ExecuteQuery(
- String.Format("select COLUMN_NAME, IS_NULLABLE from information_schema.columns where table_name = '{0}'", table)))
- {
- while (reader.Read())
- {
- Column column = new Column(reader.GetString(0), DbType.String);
- string nullableStr = reader.GetString(1);
- bool isNullable = nullableStr == "YES";
- column.ColumnProperty |= isNullable ? ColumnProperty.Null : ColumnProperty.NotNull;
-
- columns.Add(column);
- }
- }
-
- return columns.ToArray();
- }
-
- public virtual Column GetColumnByName(string table, string columnName)
- {
- return Array.Find(GetColumns(table),
- delegate(Column column)
- {
- return column.Name == columnName;
- });
- }
-
- public virtual string[] GetTables()
- {
- List tables = new List();
- using (IDataReader reader = ExecuteQuery("SELECT table_name FROM information_schema.tables"))
- {
- while (reader.Read())
- {
- tables.Add((string)reader[0]);
- }
- }
- return tables.ToArray();
- }
-
- public virtual void RemoveForeignKey(string table, string name)
- {
- RemoveConstraint(table, name);
- }
-
- public virtual void RemoveConstraint(string table, string name)
- {
- if (TableExists(table) && ConstraintExists(table, name))
- {
- table = _dialect.TableNameNeedsQuote ? _dialect.Quote(table) : table;
- name = _dialect.ConstraintNameNeedsQuote ? _dialect.Quote(name) : name;
- ExecuteNonQuery(String.Format("ALTER TABLE {0} DROP CONSTRAINT {1}", table, name));
- }
- }
-
- public void RemoveIndex(string table, string name)
- {
- throw new NotImplementedException();
- }
-
- public virtual void AddTable(string table, string engine, string columns)
- {
- table = _dialect.TableNameNeedsQuote ? _dialect.Quote(table) : table;
- string sqlCreate = String.Format("CREATE TABLE {0} ({1})", table, columns);
- ExecuteNonQuery(sqlCreate);
- }
-
- ///
- /// Add a new table
- ///
- /// Table name
- /// Columns
- ///
- /// Adds the Test table with two columns:
- ///
- /// Database.AddTable("Test",
- /// new Column("Id", typeof(int), ColumnProperty.PrimaryKey),
- /// new Column("Title", typeof(string), 100)
- /// );
- ///
- ///
- public virtual void AddTable(string name, params Column[] columns)
- {
- // Most databases don't have the concept of a storage engine, so default is to not use it.
- AddTable(name, null, columns);
- }
-
- ///
- /// Add a new table
- ///
- /// Table name
- /// Columns
- /// the database storage engine to use
- ///
- /// Adds the Test table with two columns:
- ///
- /// Database.AddTable("Test", "INNODB",
- /// new Column("Id", typeof(int), ColumnProperty.PrimaryKey),
- /// new Column("Title", typeof(string), 100)
- /// );
- ///
- ///
- public virtual void AddTable(string name, string engine, params Column[] columns)
- {
-
- if (TableExists(name))
- {
- Logger.Warn("Table {0} already exists", name);
- return;
- }
-
- List pks = GetPrimaryKeys(columns);
- bool compoundPrimaryKey = pks.Count > 1;
-
- List columnProviders = new List(columns.Length);
- foreach (Column column in columns)
- {
- // Remove the primary key notation if compound primary key because we'll add it back later
- if (compoundPrimaryKey && column.IsPrimaryKey)
- column.ColumnProperty = ColumnProperty.Unsigned | ColumnProperty.NotNull;
-
- ColumnPropertiesMapper mapper = _dialect.GetAndMapColumnProperties(column);
- columnProviders.Add(mapper);
- }
-
- string columnsAndIndexes = JoinColumnsAndIndexes(columnProviders);
- AddTable(name, engine, columnsAndIndexes);
-
- if (compoundPrimaryKey)
- {
- AddPrimaryKey(String.Format("PK_{0}", name), name, pks.ToArray());
- }
- }
-
- public List GetPrimaryKeys(IEnumerable columns)
- {
- List pks = new List();
- foreach (Column col in columns)
- {
- if (col.IsPrimaryKey)
- pks.Add(col.Name);
- }
- return pks;
- }
-
- public virtual void RemoveTable(string name)
- {
- if (TableExists(name))
- ExecuteNonQuery(String.Format("DROP TABLE {0}", name));
- }
-
- public virtual void RenameTable(string oldName, string newName)
- {
- if (TableExists(newName))
- throw new MigrationException(String.Format("Table with name '{0}' already exists", newName));
-
- if (TableExists(oldName))
- ExecuteNonQuery(String.Format("ALTER TABLE {0} RENAME TO {1}", oldName, newName));
- }
-
- public virtual void RenameColumn(string tableName, string oldColumnName, string newColumnName)
- {
- if (ColumnExists(tableName, newColumnName))
- throw new MigrationException(String.Format("Table '{0}' has column named '{1}' already", tableName, newColumnName));
-
- if (ColumnExists(tableName, oldColumnName))
- ExecuteNonQuery(String.Format("ALTER TABLE {0} RENAME COLUMN {1} TO {2}", tableName, oldColumnName, newColumnName));
- }
-
- public virtual void AddColumn(string table, string sqlColumn)
- {
- ExecuteNonQuery(String.Format("ALTER TABLE {0} ADD COLUMN {1}", table, sqlColumn));
- }
-
- public virtual void RemoveColumn(string table, string column)
- {
- if (ColumnExists(table, column))
- {
- ExecuteNonQuery(String.Format("ALTER TABLE {0} DROP COLUMN {1} ", table, column));
- }
- }
-
- public virtual bool ColumnExists(string table, string column)
- {
- try
- {
- ExecuteNonQuery(String.Format("SELECT {0} FROM {1}", column, table));
- return true;
- }
- catch (Exception)
- {
- return false;
- }
- }
-
- public virtual void ChangeColumn(string table, Column column)
- {
- if (!ColumnExists(table, column.Name))
- {
- Logger.Warn("Column {0}.{1} does not exist", table, column.Name);
- return;
- }
-
- ColumnPropertiesMapper mapper = _dialect.GetAndMapColumnProperties(column);
- ChangeColumn(table, mapper.ColumnSql);
- }
-
- public virtual void ChangeColumn(string table, string sqlColumn)
- {
- ExecuteNonQuery(String.Format("ALTER TABLE {0} ALTER COLUMN {1}", table, sqlColumn));
- }
-
- public virtual bool TableExists(string table)
- {
- try
- {
- ExecuteNonQuery("SELECT COUNT(*) FROM " + table);
- return true;
- }
- catch (Exception)
- {
- return false;
- }
- }
-
- protected virtual string JoinColumnsAndIndexes(IEnumerable columns)
- {
- string indexes = JoinIndexes(columns);
- string columnsAndIndexes = JoinColumns(columns) + (indexes != null ? "," + indexes : String.Empty);
- return columnsAndIndexes;
- }
-
- protected virtual string JoinIndexes(IEnumerable columns)
- {
- List indexes = new List();
- foreach (ColumnPropertiesMapper column in columns)
- {
- string indexSql = column.IndexSql;
- if (indexSql != null)
- indexes.Add(indexSql);
- }
-
- if (indexes.Count == 0)
- return null;
-
- return String.Join(", ", indexes.ToArray());
- }
-
- protected virtual string JoinColumns(IEnumerable columns)
- {
- List columnStrings = new List();
- foreach (ColumnPropertiesMapper column in columns)
- columnStrings.Add(column.ColumnSql);
- return String.Join(", ", columnStrings.ToArray());
- }
-
- ///
- /// Add a new column to an existing table.
- ///
- /// Table to which to add the column
- /// Column name
- /// Date type of the column
- /// Max length of the column
- /// Properties of the column, see ColumnProperty,
- /// Default value
- public virtual void AddColumn(string table, string column, DbType type, int size, ColumnProperty property,
- object defaultValue)
- {
- if (ColumnExists(table, column))
- {
- Logger.Warn("Column {0}.{1} already exists", table, column);
- return;
- }
-
- ColumnPropertiesMapper mapper =
- _dialect.GetAndMapColumnProperties(new Column(column, type, size, property, defaultValue));
-
- AddColumn(table, mapper.ColumnSql);
- }
-
- ///
- ///
- /// AddColumn(string, string, Type, int, ColumnProperty, object)
- ///
- ///
- public virtual void AddColumn(string table, string column, DbType type)
- {
- AddColumn(table, column, type, 0, ColumnProperty.Null, null);
- }
-
- ///
- ///
- /// AddColumn(string, string, Type, int, ColumnProperty, object)
- ///
- ///
- public virtual void AddColumn(string table, string column, DbType type, int size)
- {
- AddColumn(table, column, type, size, ColumnProperty.Null, null);
- }
-
- public void AddColumn(string table, string column, DbType type, object defaultValue)
- {
- if (ColumnExists(table, column))
- {
- Logger.Warn("Column {0}.{1} already exists", table, column);
- return;
- }
-
- ColumnPropertiesMapper mapper =
- _dialect.GetAndMapColumnProperties(new Column(column, type, defaultValue));
-
- AddColumn(table, mapper.ColumnSql);
-
- }
-
- ///
- ///
- /// AddColumn(string, string, Type, int, ColumnProperty, object)
- ///
- ///
- public virtual void AddColumn(string table, string column, DbType type, ColumnProperty property)
- {
- AddColumn(table, column, type, 0, property, null);
- }
-
- ///
- ///
- /// AddColumn(string, string, Type, int, ColumnProperty, object)
- ///
- ///
- public virtual void AddColumn(string table, string column, DbType type, int size, ColumnProperty property)
- {
- AddColumn(table, column, type, size, property, null);
- }
-
- public void AddIndex(string name, string table, bool unique, params string[] columns)
- {
- try
- {
- var uniqueText = "";
- if (unique) uniqueText = "UNIQUE";
-
- var command = String.Format("CREATE {0} INDEX {1} ON {2} ({3})", uniqueText, name, table, String.Join(",", columns));
-
- ExecuteNonQuery(command);
- }
- catch (Exception e)
- {
- Logger.Exception("Unable to add index", e);
- }
- }
-
- ///
- /// Append a primary key to a table.
- ///
- /// Constraint name
- /// Table name
- /// Primary column names
- public virtual void AddPrimaryKey(string name, string table, params string[] columns)
- {
- if (ConstraintExists(table, name))
- {
- Logger.Warn("Primary key {0} already exists", name);
- return;
- }
- ExecuteNonQuery(
- String.Format("ALTER TABLE {0} ADD CONSTRAINT {1} PRIMARY KEY ({2}) ", table, name,
- String.Join(",", columns)));
- }
-
- public virtual void AddUniqueConstraint(string name, string table, params string[] columns)
- {
- if (ConstraintExists(table, name))
- {
- Logger.Warn("Constraint {0} already exists", name);
- return;
- }
- ExecuteNonQuery(String.Format("ALTER TABLE {0} ADD CONSTRAINT {1} UNIQUE({2}) ", table, name, string.Join(", ", columns)));
- }
-
- public virtual void AddCheckConstraint(string name, string table, string checkSql)
- {
- if (ConstraintExists(table, name))
- {
- Logger.Warn("Constraint {0} already exists", name);
- return;
- }
- ExecuteNonQuery(String.Format("ALTER TABLE {0} ADD CONSTRAINT {1} CHECK ({2}) ", table, name, checkSql));
- }
-
- ///
- /// Guesses the name of the foreign key and add it
- ///
- public virtual void GenerateForeignKey(string primaryTable, string primaryColumn, string refTable, string refColumn)
- {
- AddForeignKey("FK_" + primaryTable + "_" + refTable, primaryTable, primaryColumn, refTable, refColumn);
- }
-
- ///
- /// Guesses the name of the foreign key and add it
- ///
- ///
- public virtual void GenerateForeignKey(string primaryTable, string[] primaryColumns, string refTable,
- string[] refColumns)
- {
- AddForeignKey("FK_" + primaryTable + "_" + refTable, primaryTable, primaryColumns, refTable, refColumns);
- }
-
- ///
- /// Guesses the name of the foreign key and add it
- ///
- public virtual void GenerateForeignKey(string primaryTable, string primaryColumn, string refTable,
- string refColumn, ForeignKeyConstraint constraint)
- {
- AddForeignKey("FK_" + primaryTable + "_" + refTable, primaryTable, primaryColumn, refTable, refColumn,
- constraint);
- }
-
- ///
- /// Guesses the name of the foreign key and add it
- ///
- ///
- public virtual void GenerateForeignKey(string primaryTable, string[] primaryColumns, string refTable,
- string[] refColumns, ForeignKeyConstraint constraint)
- {
- AddForeignKey("FK_" + primaryTable + "_" + refTable, primaryTable, primaryColumns, refTable, refColumns,
- constraint);
- }
-
- ///
- /// Append a foreign key (relation) between two tables.
- /// tables.
- ///
- /// Constraint name
- /// Table name containing the primary key
- /// Primary key column name
- /// Foreign table name
- /// Foreign column name
- public virtual void AddForeignKey(string name, string primaryTable, string primaryColumn, string refTable,
- string refColumn)
- {
- AddForeignKey(name, primaryTable, new string[] { primaryColumn }, refTable, new string[] { refColumn });
- }
-
- ///
- ///
- /// AddForeignKey(string, string, string, string, string)
- ///
- ///
- public virtual void AddForeignKey(string name, string primaryTable, string[] primaryColumns, string refTable, string[] refColumns)
- {
- AddForeignKey(name, primaryTable, primaryColumns, refTable, refColumns, ForeignKeyConstraint.NoAction);
- }
-
- public virtual void AddForeignKey(string name, string primaryTable, string primaryColumn, string refTable, string refColumn, ForeignKeyConstraint constraint)
- {
- AddForeignKey(name, primaryTable, new string[] { primaryColumn }, refTable, new string[] { refColumn },
- constraint);
- }
-
- public virtual void AddForeignKey(string name, string primaryTable, string[] primaryColumns, string refTable,
- string[] refColumns, ForeignKeyConstraint constraint)
- {
- if (ConstraintExists(primaryTable, name))
- {
- Logger.Warn("Constraint {0} already exists", name);
- return;
- }
-
- string constraintResolved = constraintMapper.SqlForConstraint(constraint);
- ExecuteNonQuery(
- String.Format(
- "ALTER TABLE {0} ADD CONSTRAINT {1} FOREIGN KEY ({2}) REFERENCES {3} ({4}) ON UPDATE {5} ON DELETE {6}",
- primaryTable, name, String.Join(",", primaryColumns),
- refTable, String.Join(",", refColumns), constraintResolved, constraintResolved));
- }
-
- ///
- /// Determines if a constraint exists.
- ///
- /// Constraint name
- /// Table owning the constraint
- /// true if the constraint exists.
- public abstract bool ConstraintExists(string table, string name);
-
- public virtual bool PrimaryKeyExists(string table, string name)
- {
- return ConstraintExists(table, name);
- }
-
- public int ExecuteNonQuery(string sql)
- {
- Logger.Trace(sql);
- Logger.ApplyingDBChange(sql);
- using (IDbCommand cmd = BuildCommand(sql))
- {
- try
- {
- return cmd.ExecuteNonQuery();
- }
- catch (Exception ex)
- {
- Logger.Warn(ex.Message);
- throw;
- }
- }
- }
-
- private IDbCommand BuildCommand(string sql)
- {
- IDbCommand cmd = _connection.CreateCommand();
- cmd.CommandText = sql;
- cmd.CommandType = CommandType.Text;
- if (_transaction != null)
- {
- cmd.Transaction = _transaction;
- }
- return cmd;
- }
-
- ///
- /// Execute an SQL query returning results.
- ///
- /// The SQL command.
- /// A data iterator, IDataReader.
- public IDataReader ExecuteQuery(string sql)
- {
- Logger.Trace(sql);
- using (IDbCommand cmd = BuildCommand(sql))
- {
- try
- {
- return cmd.ExecuteReader();
- }
- catch
- {
- Logger.Warn("query failed: {0}", cmd.CommandText);
- throw;
- }
- }
- }
-
- public object ExecuteScalar(string sql)
- {
- Logger.Trace(sql);
- using (IDbCommand cmd = BuildCommand(sql))
- {
- try
- {
- return cmd.ExecuteScalar();
- }
- catch
- {
- Logger.Warn("Query failed: {0}", cmd.CommandText);
- throw;
- }
- }
- }
-
- public IDataReader Select(string what, string from)
- {
- return Select(what, from, "1=1");
- }
-
- public virtual IDataReader Select(string what, string from, string where)
- {
- return ExecuteQuery(String.Format("SELECT {0} FROM {1} WHERE {2}", what, from, where));
- }
-
- public object SelectScalar(string what, string from)
- {
- return SelectScalar(what, from, "1=1");
- }
-
- public virtual object SelectScalar(string what, string from, string where)
- {
- return ExecuteScalar(String.Format("SELECT {0} FROM {1} WHERE {2}", what, from, where));
- }
-
- public virtual int Update(string table, string[] columns, string[] values)
- {
- return Update(table, columns, values, null);
- }
-
- public virtual int Update(string table, string[] columns, string[] values, string where)
- {
- string namesAndValues = JoinColumnsAndValues(columns, values);
-
- string query = "UPDATE {0} SET {1}";
- if (!String.IsNullOrEmpty(where))
- {
- query += " WHERE " + where;
- }
-
- return ExecuteNonQuery(String.Format(query, table, namesAndValues));
- }
-
- public virtual int Insert(string table, string[] columns, string[] values)
- {
- return ExecuteNonQuery(String.Format("INSERT INTO {0} ({1}) VALUES ({2})", table, String.Join(", ", columns), String.Join(", ", QuoteValues(values))));
- }
-
- public virtual int Delete(string table)
- {
- return Delete(table, (string[])null, (string[])null);
- }
-
- public virtual int Delete(string table, string[] columns, string[] values)
- {
- if (null == columns || null == values)
- {
- return ExecuteNonQuery(String.Format("DELETE FROM {0}", table));
- }
- else
- {
- return ExecuteNonQuery(String.Format("DELETE FROM {0} WHERE ({1})", table, JoinColumnsAndValues(columns, values)));
- }
- }
-
- public virtual int Delete(string table, string wherecolumn, string wherevalue)
- {
- return ExecuteNonQuery(String.Format("DELETE FROM {0} WHERE {1} = {2}", table, wherecolumn, QuoteValues(wherevalue)));
- }
-
- ///
- /// Starts a transaction. Called by the migration mediator.
- ///
- public void BeginTransaction()
- {
- if (_transaction == null && _connection != null)
- {
- EnsureHasConnection();
- _transaction = _connection.BeginTransaction(IsolationLevel.ReadCommitted);
- }
- }
-
- protected void EnsureHasConnection()
- {
- if (_connection.State != ConnectionState.Open)
- {
- _connection.Open();
- }
- }
-
- ///
- /// Rollback the current migration. Called by the migration mediator.
- ///
- public virtual void Rollback()
- {
- if (_transaction != null && _connection != null && _connection.State == ConnectionState.Open)
- {
- try
- {
- _transaction.Rollback();
- }
- finally
- {
- _connection.Close();
- }
- }
- _transaction = null;
- }
-
- ///
- /// Commit the current transaction. Called by the migrations mediator.
- ///
- public void Commit()
- {
- if (_transaction != null && _connection != null && _connection.State == ConnectionState.Open)
- {
- try
- {
- _transaction.Commit();
- }
- finally
- {
- _connection.Close();
- }
- }
- _transaction = null;
- }
-
- ///
- /// The list of Migrations currently applied to the database.
- ///
- public List AppliedMigrations
- {
- get
- {
- if (_appliedMigrations == null)
- {
- _appliedMigrations = new List();
- CreateSchemaInfoTable();
- using (IDataReader reader = Select("version", "SchemaInfo"))
- {
- while (reader.Read())
- {
- _appliedMigrations.Add(Convert.ToInt64(reader.GetValue(0)));
- }
- }
- }
- return _appliedMigrations;
- }
- }
-
- ///
- /// Marks a Migration version number as having been applied
- ///
- /// The version number of the migration that was applied
- public void MigrationApplied(long version)
- {
- CreateSchemaInfoTable();
- Insert("SchemaInfo", new string[] { "version" }, new string[] { version.ToString() });
- _appliedMigrations.Add(version);
- }
-
- ///
- /// Marks a Migration version number as having been rolled back from the database
- ///
- /// The version number of the migration that was removed
- public void MigrationUnApplied(long version)
- {
- CreateSchemaInfoTable();
- Delete("SchemaInfo", "version", version.ToString());
- _appliedMigrations.Remove(version);
- }
-
- protected void CreateSchemaInfoTable()
- {
- EnsureHasConnection();
- if (!TableExists("SchemaInfo"))
- {
- AddTable("SchemaInfo", new Column("Version", DbType.Int64, ColumnProperty.PrimaryKey));
- }
- }
-
- public void AddColumn(string table, Column column)
- {
- AddColumn(table, column.Name, column.Type, column.Size, column.ColumnProperty, column.DefaultValue);
- }
-
- public void GenerateForeignKey(string primaryTable, string refTable)
- {
- GenerateForeignKey(primaryTable, refTable, ForeignKeyConstraint.NoAction);
- }
-
- public void GenerateForeignKey(string primaryTable, string refTable, ForeignKeyConstraint constraint)
- {
- GenerateForeignKey(primaryTable, refTable + "Id", refTable, "Id", constraint);
- }
-
- public IDbCommand GetCommand()
- {
- return BuildCommand(null);
- }
-
- public void ExecuteSchemaBuilder(SchemaBuilder builder)
- {
- foreach (ISchemaBuilderExpression expr in builder.Expressions)
- expr.Create(this);
- }
-
- public virtual string QuoteValues(string values)
- {
- return QuoteValues(new string[] { values })[0];
- }
-
- public virtual string[] QuoteValues(string[] values)
- {
- return Array.ConvertAll(values,
- delegate(string val)
- {
- if (null == val)
- return "null";
- else
- return String.Format("'{0}'", val.Replace("'", "''"));
- });
- }
-
- public string JoinColumnsAndValues(string[] columns, string[] values)
- {
- string[] quotedValues = QuoteValues(values);
- string[] namesAndValues = new string[columns.Length];
- for (int i = 0; i < columns.Length; i++)
- {
- namesAndValues[i] = String.Format("{0}={1}", columns[i], quotedValues[i]);
- }
-
- return String.Join(", ", namesAndValues);
- }
-
- public void Dispose()
- {
- if (_connection != null && _connection.State == ConnectionState.Open)
- {
- _connection.Close();
- }
- }
- }
-}
diff --git a/Migrator.net/Migrator.Providers/TypeNames.cs b/Migrator.net/Migrator.Providers/TypeNames.cs
deleted file mode 100644
index 60d11603d..000000000
--- a/Migrator.net/Migrator.Providers/TypeNames.cs
+++ /dev/null
@@ -1,130 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Data;
-using Migrator.Framework;
-
-namespace Migrator.Providers
-{
- ///
- /// This class maps a DbType to names.
- ///
- ///
- /// Associations may be marked with a capacity. Calling the Get()
- /// method with a type and actual size n will return the associated
- /// name with smallest capacity >= n, if available and an unmarked
- /// default type otherwise.
- /// Eg, setting
- ///
- /// Names.Put(DbType, "TEXT" );
- /// Names.Put(DbType, 255, "VARCHAR($l)" );
- /// Names.Put(DbType, 65534, "LONGVARCHAR($l)" );
- ///
- /// will give you back the following:
- ///
- /// Names.Get(DbType) // --> "TEXT" (default)
- /// Names.Get(DbType,100) // --> "VARCHAR(100)" (100 is in [0:255])
- /// Names.Get(DbType,1000) // --> "LONGVARCHAR(1000)" (100 is in [256:65534])
- /// Names.Get(DbType,100000) // --> "TEXT" (default)
- ///
- /// On the other hand, simply putting
- ///
- /// Names.Put(DbType, "VARCHAR($l)" );
- ///
- /// would result in
- ///
- /// Names.Get(DbType) // --> "VARCHAR($l)" (will cause trouble)
- /// Names.Get(DbType,100) // --> "VARCHAR(100)"
- /// Names.Get(DbType,1000) // --> "VARCHAR(1000)"
- /// Names.Get(DbType,10000) // --> "VARCHAR(10000)"
- ///
- ///
- public class TypeNames
- {
- public const string LengthPlaceHolder = "$l";
- public const string PrecisionPlaceHolder = "$p";
- public const string ScalePlaceHolder = "$s";
-
- private readonly Dictionary> weighted =
- new Dictionary>();
-
- private readonly Dictionary defaults = new Dictionary();
-
- ///
- /// Get default type name for specified type
- ///
- /// the type key
- /// the default type name associated with the specified key
- public string Get(DbType typecode)
- {
- string result;
- if (!defaults.TryGetValue(typecode, out result))
- {
- throw new ArgumentException("Dialect does not support DbType." + typecode, "typecode");
- }
- return result;
- }
-
- ///
- /// Get the type name specified type and size
- ///
- /// the type key
- /// the SQL length
- /// the SQL scale
- /// the SQL precision
- ///
- /// The associated name with smallest capacity >= size if available and the
- /// default type name otherwise
- ///
- public string Get(DbType typecode, int size, int precision, int scale)
- {
- SortedList map;
- weighted.TryGetValue(typecode, out map);
- if (map != null && map.Count > 0)
- {
- foreach (KeyValuePair entry in map)
- {
- if (size <= entry.Key)
- {
- return Replace(entry.Value, size, precision, scale);
- }
- }
- }
- //Could not find a specific type for the size, using the default
- return Replace(Get(typecode), size, precision, scale);
- }
-
- private static string Replace(string type, int size, int precision, int scale)
- {
- type = StringUtils.ReplaceOnce(type, LengthPlaceHolder, size.ToString());
- type = StringUtils.ReplaceOnce(type, ScalePlaceHolder, scale.ToString());
- return StringUtils.ReplaceOnce(type, PrecisionPlaceHolder, precision.ToString());
- }
-
- ///
- /// Set a type name for specified type key and capacity
- ///
- /// the type key
- /// the (maximum) type size/length
- /// The associated name
- public void Put(DbType typecode, int capacity, string value)
- {
- SortedList map;
- if (!weighted.TryGetValue(typecode, out map))
- {
- // add new ordered map
- weighted[typecode] = map = new SortedList();
- }
- map[capacity] = value;
- }
-
- ///
- ///
- ///
- ///
- ///
- public void Put(DbType typecode, string value)
- {
- defaults[typecode] = value;
- }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator/BaseMigrate.cs b/Migrator.net/Migrator/BaseMigrate.cs
deleted file mode 100644
index 5d1847c48..000000000
--- a/Migrator.net/Migrator/BaseMigrate.cs
+++ /dev/null
@@ -1,110 +0,0 @@
-using Migrator.Framework;
-using System.Collections.Generic;
-
-namespace Migrator
-{
- public abstract class BaseMigrate
- {
- protected readonly ITransformationProvider _provider;
- protected ILogger _logger;
- protected List _availableMigrations;
- protected List _original;
- protected long _current;
- protected bool _dryrun;
-
- protected BaseMigrate(List availableMigrations, ITransformationProvider provider, ILogger logger)
- {
- _provider = provider;
- _availableMigrations = availableMigrations;
- _original = new List (_provider.AppliedMigrations.ToArray()); //clone
- _logger = logger;
- }
-
- public static BaseMigrate GetInstance(List availableMigrations, ITransformationProvider provider, ILogger logger)
- {
- return new MigrateAnywhere(availableMigrations, provider, logger);
- }
-
- public List AppliedVersions
- {
- get { return _original; }
- }
-
- public virtual long Current
- {
- get { return _current; }
- protected set { _current = value; }
- }
-
- public virtual bool DryRun
- {
- get { return _dryrun; }
- set { _dryrun = value; }
- }
-
- public abstract long Previous { get; }
- public abstract long Next { get; }
-
- public void Iterate()
- {
- Current = Next;
- }
-
- public abstract bool Continue(long targetVersion);
-
- public abstract void Migrate(IMigration migration);
-
- ///
- /// Finds the next migration available to be applied. Only returns
- /// migrations that have NOT already been applied.
- ///
- /// The migration number of the next available Migration.
- protected long NextMigration()
- {
- // Start searching at the current index
- int migrationSearch = _availableMigrations.IndexOf(Current)+1;
-
- // See if we can find a migration that matches the requirement
- while(migrationSearch < _availableMigrations.Count
- && _provider.AppliedMigrations.Contains(_availableMigrations[migrationSearch]))
- {
- migrationSearch++;
- }
-
- // did we exhaust the list?
- if(migrationSearch == _availableMigrations.Count){
- // we're at the last one. Done!
- return _availableMigrations[migrationSearch-1]+1;
- }
- // found one.
- return _availableMigrations[migrationSearch];
- }
-
- ///
- /// Finds the previous migration that has been applied. Only returns
- /// migrations that HAVE already been applied.
- ///
- /// The most recently applied Migration.
- protected long PreviousMigration()
- {
- // Start searching at the current index
- int migrationSearch = _availableMigrations.IndexOf(Current)-1;
-
- // See if we can find a migration that matches the requirement
- while(migrationSearch > -1
- && !_provider.AppliedMigrations.Contains(_availableMigrations[migrationSearch]))
- {
- migrationSearch--;
- }
-
- // did we exhaust the list?
- if(migrationSearch < 0){
- // we're at the first one. Done!
- return 0;
- }
-
- // found one.
- return _availableMigrations[migrationSearch];
- }
- }
-}
diff --git a/Migrator.net/Migrator/Compile/ScriptEngine.cs b/Migrator.net/Migrator/Compile/ScriptEngine.cs
deleted file mode 100644
index f9629ba48..000000000
--- a/Migrator.net/Migrator/Compile/ScriptEngine.cs
+++ /dev/null
@@ -1,118 +0,0 @@
-using System;
-using System.CodeDom.Compiler;
-using System.Collections.Generic;
-using System.IO;
-using System.Reflection;
-using Migrator.Framework;
-
-namespace Migrator.Compile
-{
- public class ScriptEngine
- {
- public readonly string[] extraReferencedAssemblies;
-
- private readonly CodeDomProvider _provider;
- private string _codeType = "csharp";
-
- public ScriptEngine() : this(null, null)
- {
- }
-
- public ScriptEngine(string[] extraReferencedAssemblies)
- : this(null, extraReferencedAssemblies)
- {
- }
-
- public ScriptEngine(string codeType, string[] extraReferencedAssemblies)
- {
- if (!String.IsNullOrEmpty(codeType))
- _codeType = codeType;
- this.extraReferencedAssemblies = extraReferencedAssemblies;
-
- // There is currently no way to generically create a CodeDomProvider and have it work with .NET 3.5
- _provider = CodeDomProvider.CreateProvider(_codeType);
- }
-
- public Assembly Compile(string directory)
- {
- string[] files = GetFilesRecursive(directory);
- Console.Out.WriteLine("Compiling:");
- Array.ForEach(files, delegate(String file) { Console.Out.WriteLine(file); });
-
- return Compile(files);
- }
-
- private string[] GetFilesRecursive(string directory)
- {
- FileInfo[] files = GetFilesRecursive(new DirectoryInfo(directory));
- string[] fileNames = new string[files.Length];
- for (int i = 0; i < files.Length; i ++)
- {
- fileNames[i] = files[i].FullName;
- }
- return fileNames;
- }
-
- private FileInfo[] GetFilesRecursive(DirectoryInfo d)
- {
- List files = new List();
- files.AddRange(d.GetFiles(String.Format("*.{0}", _provider.FileExtension)));
- DirectoryInfo[] subDirs = d.GetDirectories();
- if (subDirs.Length > 0)
- {
- foreach (DirectoryInfo subDir in subDirs)
- {
- files.AddRange(GetFilesRecursive(subDir));
- }
- }
-
- return files.ToArray();
- }
-
- public Assembly Compile(params string[] files)
- {
- CompilerParameters parms = SetupCompilerParams();
-
- CompilerResults compileResult = _provider.CompileAssemblyFromFile(parms, files);
- if (compileResult.Errors.Count != 0)
- {
- foreach (CompilerError err in compileResult.Errors)
- {
- Console.Error.WriteLine("{0} ({1}:{2}) {3}", err.FileName, err.Line, err.Column, err.ErrorText);
- }
- }
- return compileResult.CompiledAssembly;
- }
-
- private CompilerParameters SetupCompilerParams()
- {
- string migrationFrameworkPath = FrameworkAssemblyPath();
- CompilerParameters parms = new CompilerParameters();
- parms.CompilerOptions = "/t:library";
- parms.GenerateInMemory = true;
- parms.IncludeDebugInformation = true;
- parms.OutputAssembly = Path.Combine(Path.GetDirectoryName(migrationFrameworkPath), "MyMigrations.dll");
-
- Console.Out.WriteLine("Output assembly: " + parms.OutputAssembly);
-
- // Add Default referenced assemblies
- parms.ReferencedAssemblies.Add("mscorlib.dll");
- parms.ReferencedAssemblies.Add("System.dll");
- parms.ReferencedAssemblies.Add("System.Data.dll");
- parms.ReferencedAssemblies.Add(FrameworkAssemblyPath());
- if (null != extraReferencedAssemblies && extraReferencedAssemblies.Length > 0)
- {
- Array.ForEach(extraReferencedAssemblies,
- delegate(String assemb) { parms.ReferencedAssemblies.Add(assemb); });
- }
- return parms;
- }
-
- private static string FrameworkAssemblyPath()
- {
- string path = typeof (MigrationAttribute).Module.FullyQualifiedName;
- Console.Out.WriteLine("Framework DLL: " + path);
- return path;
- }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/Migrator/DuplicatedVersionException.cs b/Migrator.net/Migrator/DuplicatedVersionException.cs
deleted file mode 100644
index 511888fee..000000000
--- a/Migrator.net/Migrator/DuplicatedVersionException.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-#region License
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-#endregion
-
-using System;
-
-namespace Migrator
-{
- ///
- /// Exception thrown when a migration number is not unique.
- ///
- public class DuplicatedVersionException : Exception
- {
- public DuplicatedVersionException(long version)
- : base(String.Format("Migration version #{0} is duplicated", version))
- {
- }
- }
-}
diff --git a/Migrator.net/Migrator/IrreversibleMigrationException.cs b/Migrator.net/Migrator/IrreversibleMigrationException.cs
deleted file mode 100644
index 06b960763..000000000
--- a/Migrator.net/Migrator/IrreversibleMigrationException.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-#region License
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-#endregion
-
-using System;
-
-namespace Migrator
-{
- ///
- /// Exception thrown in a migration Down() method
- /// when changes can't be undone.
- ///
- public class IrreversibleMigrationException : Exception
- {
- public IrreversibleMigrationException() : base("Irreversible migration")
- {
- }
- }
-}
diff --git a/Migrator.net/Migrator/MigrateAnywhere.cs b/Migrator.net/Migrator/MigrateAnywhere.cs
deleted file mode 100644
index eb1bde01e..000000000
--- a/Migrator.net/Migrator/MigrateAnywhere.cs
+++ /dev/null
@@ -1,99 +0,0 @@
-using System;
-using System.Collections.Generic;
-using Migrator.Framework;
-
-namespace Migrator
-{
- ///
- /// Description of MigrateAnywhere.
- ///
- public class MigrateAnywhere : BaseMigrate
- {
- private bool _goForward;
-
- public MigrateAnywhere(List availableMigrations, ITransformationProvider provider, ILogger logger)
- : base(availableMigrations, provider, logger)
- {
- _current = 0;
- if (provider.AppliedMigrations.Count > 0) {
- _current = provider.AppliedMigrations[provider.AppliedMigrations.Count - 1];
- }
- _goForward = false;
- }
-
- public override long Next
- {
- get
- {
- return _goForward
- ? NextMigration()
- : PreviousMigration();
- }
- }
-
- public override long Previous
- {
- get
- {
- return _goForward
- ? PreviousMigration()
- : NextMigration();
- }
- }
-
- public override bool Continue(long version)
- {
- // If we're going backwards and our current is less than the target,
- // reverse direction. Also, start over at zero to make sure we catch
- // any merged migrations that are less than the current target.
- if (!_goForward && version >= Current)
- {
- _goForward = true;
- Current = 0;
- Iterate();
- }
-
- // We always finish on going forward. So continue if we're still
- // going backwards, or if there are no migrations left in the forward direction.
- return !_goForward || Current <= version;
- }
-
- public override void Migrate(IMigration migration)
- {
- _provider.BeginTransaction();
- MigrationAttribute attr = (MigrationAttribute)Attribute.GetCustomAttribute(migration.GetType(), typeof(MigrationAttribute));
-
- if (_provider.AppliedMigrations.Contains(attr.Version)) {
- RemoveMigration(migration, attr);
- } else {
- ApplyMigration(migration, attr);
- }
- }
-
- private void ApplyMigration(IMigration migration, MigrationAttribute attr)
- {
- // we're adding this one
- _logger.MigrateUp(Current, migration.Name);
- if(! DryRun)
- {
- migration.Up();
- _provider.MigrationApplied(attr.Version);
- _provider.Commit();
- migration.AfterUp();
- }
- }
-
- private void RemoveMigration(IMigration migration, MigrationAttribute attr)
- {
- // we're removing this one
- _logger.MigrateDown(Current, migration.Name);
- if (! DryRun)
- {
- migration.Down();
- _provider.MigrationUnApplied(attr.Version);
- _provider.Commit();
- migration.AfterDown();
- }
- }
- }
-}
diff --git a/Migrator.net/Migrator/MigrateDown.cs b/Migrator.net/Migrator/MigrateDown.cs
deleted file mode 100644
index e69de29bb..000000000
diff --git a/Migrator.net/Migrator/MigrateUp.cs b/Migrator.net/Migrator/MigrateUp.cs
deleted file mode 100644
index e69de29bb..000000000
diff --git a/Migrator.net/Migrator/MigrationComparer.cs b/Migrator.net/Migrator/MigrationComparer.cs
deleted file mode 100644
index a1f7281f3..000000000
--- a/Migrator.net/Migrator/MigrationComparer.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-#region License
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-#endregion
-
-using System;
-using System.Collections.Generic;
-using Migrator.Framework;
-
-namespace Migrator
-{
- ///
- /// Comparer of Migration by their version attribute.
- ///
- public class MigrationTypeComparer : IComparer
- {
- private readonly bool _ascending = true;
-
- public MigrationTypeComparer(bool ascending)
- {
- _ascending = ascending;
- }
-
- public int Compare(Type x, Type y)
- {
- MigrationAttribute attribOfX = (MigrationAttribute) Attribute.GetCustomAttribute(x, typeof(MigrationAttribute));
- MigrationAttribute attribOfY = (MigrationAttribute) Attribute.GetCustomAttribute(y, typeof(MigrationAttribute));
-
- if (_ascending)
- return attribOfX.Version.CompareTo(attribOfY.Version);
- else
- return attribOfY.Version.CompareTo(attribOfX.Version);
-
-
- }
- }
-}
diff --git a/Migrator.net/Migrator/MigrationLoader.cs b/Migrator.net/Migrator/MigrationLoader.cs
deleted file mode 100644
index 397ed43c7..000000000
--- a/Migrator.net/Migrator/MigrationLoader.cs
+++ /dev/null
@@ -1,136 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Reflection;
-using Migrator.Framework;
-
-namespace Migrator
-{
- ///
- /// Handles inspecting code to find all of the Migrations in assemblies and reading
- /// other metadata such as the last revision, etc.
- ///
- public class MigrationLoader
- {
- private readonly ITransformationProvider _provider;
- private readonly List _migrationsTypes = new List();
-
- public MigrationLoader(ITransformationProvider provider, Assembly migrationAssembly, bool trace)
- {
- _provider = provider;
- AddMigrations(migrationAssembly);
-
- if (trace)
- {
- provider.Logger.Trace("Loaded migrations:");
- foreach (Type t in _migrationsTypes)
- {
- provider.Logger.Trace("{0} {1}", GetMigrationVersion(t).ToString().PadLeft(5), StringUtils.ToHumanName(t.Name));
- }
- }
- }
-
- public void AddMigrations(Assembly migrationAssembly)
- {
- if (migrationAssembly != null)
- _migrationsTypes.AddRange(GetMigrationTypes(migrationAssembly));
- }
-
- ///
- /// Returns registered migration types.
- ///
- public List MigrationsTypes
- {
- get { return _migrationsTypes; }
- }
-
- ///
- /// Returns the last version of the migrations.
- ///
- public long LastVersion
- {
- get
- {
- if (_migrationsTypes.Count == 0)
- return 0;
- return GetMigrationVersion(_migrationsTypes[_migrationsTypes.Count - 1]);
- }
- }
-
- ///
- /// Check for duplicated version in migrations.
- ///
- /// CheckForDuplicatedVersion
- public void CheckForDuplicatedVersion()
- {
- List versions = new List();
- foreach (Type t in _migrationsTypes)
- {
- long version = GetMigrationVersion(t);
-
- if (versions.Contains(version))
- throw new DuplicatedVersionException(version);
-
- versions.Add(version);
- }
- }
-
- ///
- /// Collect migrations in one Assembly.
- ///
- /// The Assembly to browse.
- /// The migrations collection
- public static List GetMigrationTypes(Assembly asm)
- {
- List migrations = new List();
- foreach (Type t in asm.GetExportedTypes())
- {
- MigrationAttribute attrib =
- (MigrationAttribute) Attribute.GetCustomAttribute(t, typeof (MigrationAttribute));
-
- if (attrib != null && typeof(IMigration).IsAssignableFrom(t) && !attrib.Ignore)
- {
- migrations.Add(t);
- }
- }
-
- migrations.Sort(new MigrationTypeComparer(true));
- return migrations;
- }
-
- ///
- /// Returns the version of the migration
- /// MigrationAttribute.
- ///
- /// Migration type.
- /// Version number sepcified in the attribute
- public static long GetMigrationVersion(Type t)
- {
- MigrationAttribute attrib = (MigrationAttribute)
- Attribute.GetCustomAttribute(t, typeof(MigrationAttribute));
-
- return attrib.Version;
- }
-
- public List GetAvailableMigrations()
- {
- //List availableMigrations = new List();
- _migrationsTypes.Sort(new MigrationTypeComparer(true));
- return _migrationsTypes.ConvertAll(new Converter(GetMigrationVersion));
- }
-
- public IMigration GetMigration(long version)
- {
- foreach (Type t in _migrationsTypes)
- {
- if (GetMigrationVersion(t) == version)
- {
- IMigration migration = (IMigration)Activator.CreateInstance(t);
- migration.Database = _provider;
- return migration;
- }
- }
-
- return null;
- }
- }
-}
diff --git a/Migrator.net/Migrator/Migrator.cs b/Migrator.net/Migrator/Migrator.cs
deleted file mode 100644
index c41c204e1..000000000
--- a/Migrator.net/Migrator/Migrator.cs
+++ /dev/null
@@ -1,177 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Reflection;
-using Migrator.Framework;
-using Migrator.Framework.Loggers;
-
-namespace Migrator
-{
- ///
- /// Migrations mediator.
- ///
- public class Migrator
- {
- private readonly ITransformationProvider _provider;
-
- private readonly MigrationLoader _migrationLoader;
-
- private ILogger _logger = new Logger(false);
- protected bool _dryrun;
- private string[] _args;
-
- public string[] args
- {
- get { return _args; }
- set { _args = value; }
- }
-
- public Migrator(string provider, string connectionString, Assembly migrationAssembly)
- : this(provider, connectionString, migrationAssembly, false)
- {
- }
-
- public Migrator(string provider, string connectionString, Assembly migrationAssembly, bool trace)
- : this(ProviderFactory.Create(provider, connectionString), migrationAssembly, trace)
- {
- }
-
- public Migrator(string provider, string connectionString, Assembly migrationAssembly, bool trace, ILogger logger)
- : this(ProviderFactory.Create(provider, connectionString), migrationAssembly, trace, logger)
- {
- }
-
- public Migrator(ITransformationProvider provider, Assembly migrationAssembly, bool trace)
- : this(provider, migrationAssembly, trace, new Logger(trace, new ConsoleWriter()))
- {
- }
-
- public Migrator(ITransformationProvider provider, Assembly migrationAssembly, bool trace, ILogger logger)
- {
- _provider = provider;
- Logger = logger;
-
- _migrationLoader = new MigrationLoader(provider, migrationAssembly, trace);
- _migrationLoader.CheckForDuplicatedVersion();
- }
-
-
- ///
- /// Returns registered migration types.
- ///
- public List MigrationsTypes
- {
- get { return _migrationLoader.MigrationsTypes; }
- }
-
- ///
- /// Run all migrations up to the latest. Make no changes to database if
- /// dryrun is true.
- ///
- public void MigrateToLastVersion()
- {
- MigrateTo(_migrationLoader.LastVersion);
- }
-
- ///
- /// Returns the current migrations applied to the database.
- ///
- public List AppliedMigrations
- {
- get { return _provider.AppliedMigrations; }
- }
-
- ///
- /// Get or set the event logger.
- ///
- public ILogger Logger
- {
- get { return _logger; }
- set
- {
- _logger = value;
- _provider.Logger = value;
- }
- }
-
- public virtual bool DryRun
- {
- get { return _dryrun; }
- set { _dryrun = value; }
- }
-
- ///
- /// Migrate the database to a specific version.
- /// Runs all migration between the actual version and the
- /// specified version.
- /// If version is greater then the current version,
- /// the Up() method will be invoked.
- /// If version lower then the current version,
- /// the Down() method of previous migration will be invoked.
- /// If dryrun is set, don't write any changes to the database.
- ///
- /// The version that must became the current one
- public void MigrateTo(long version)
- {
-
- if (_migrationLoader.MigrationsTypes.Count == 0)
- {
- _logger.Warn("No public classes with the Migration attribute were found.");
- return;
- }
-
- bool firstRun = true;
- BaseMigrate migrate = BaseMigrate.GetInstance(_migrationLoader.GetAvailableMigrations(), _provider, _logger);
- migrate.DryRun = DryRun;
- Logger.Started(migrate.AppliedVersions, version);
-
- while (migrate.Continue(version))
- {
- IMigration migration = _migrationLoader.GetMigration(migrate.Current);
- if (null == migration)
- {
- _logger.Skipping(migrate.Current);
- migrate.Iterate();
- continue;
- }
-
- try
- {
- if (firstRun)
- {
- migration.InitializeOnce(_args);
- firstRun = false;
- }
-
- migrate.Migrate(migration);
- }
- catch (Exception ex)
- {
- Logger.Exception(migrate.Current, migration.Name, ex);
-
- // Oho! error! We rollback changes.
- Logger.RollingBack(migrate.Previous);
- _provider.Rollback();
-
- throw;
- }
-
- migrate.Iterate();
- }
-
- Logger.Finished(migrate.AppliedVersions, version);
- }
- }
-}
diff --git a/Migrator.net/Migrator/Migrator.csproj b/Migrator.net/Migrator/Migrator.csproj
deleted file mode 100644
index c4303dc1c..000000000
--- a/Migrator.net/Migrator/Migrator.csproj
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
-
- Debug
- AnyCPU
- 9.0.30729
- 2.0
- {1FEE70A4-AAD7-4C60-BE60-3F7DC03A8C4D}
- Library
- Properties
- Migrator
- Migrator
-
-
- 3.5
-
-
- true
- MigratorDotNet.snk
- v2.0
-
-
- true
- full
- false
- bin\Migrator\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- pdbonly
- true
- bin\Migrator\Release\
- TRACE
- prompt
- 4
- x86
-
-
-
-
-
-
-
-
- AssemblyInfo.cs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {5270F048-E580-486C-B14C-E5B9F6E539D4}
- Migrator.Framework
-
-
- {D58C68E4-D789-40F7-9078-C9F587D4363C}
- Migrator.Providers
-
-
-
-
\ No newline at end of file
diff --git a/Migrator.net/Migrator/MigratorDotNet.snk b/Migrator.net/Migrator/MigratorDotNet.snk
deleted file mode 100644
index 5032d709b..000000000
Binary files a/Migrator.net/Migrator/MigratorDotNet.snk and /dev/null differ
diff --git a/Migrator.net/Migrator/ProviderFactory.cs b/Migrator.net/Migrator/ProviderFactory.cs
deleted file mode 100644
index c9f45f9d8..000000000
--- a/Migrator.net/Migrator/ProviderFactory.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-#region License
-
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Reflection;
-using Migrator.Framework;
-using Migrator.Providers;
-
-namespace Migrator
-{
- ///
- /// Handles loading Provider implementations
- ///
- public class ProviderFactory
- {
- private static readonly Assembly providerAssembly;
- private static readonly Dictionary dialects = new Dictionary();
- static ProviderFactory()
- {
-
- //string directory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);
- //string fullPath = Path.Combine(directory, "Migrator.Providers.dll");
- //if (fullPath.StartsWith("file:\\"))
- // fullPath = fullPath.Substring(6);
- //else if (fullPath.StartsWith("file:"))
- // fullPath = fullPath.Substring(5);
- providerAssembly = Assembly.GetAssembly(typeof(TransformationProvider));
- //providerAssembly = Assembly.LoadFrom("Migrator.Providers.dll");
- LoadDialects();
- }
-
- public static ITransformationProvider Create(string providerName, string connectionString)
- {
- object dialectInstance = DialectForProvider(providerName);
- MethodInfo mi = dialectInstance.GetType().GetMethod("NewProviderForDialect", new Type[] {typeof (String)});
- return (ITransformationProvider)mi.Invoke(dialectInstance, new object[] { connectionString });
- }
-
- public static object DialectForProvider(string providerName)
- {
- if (String.IsNullOrEmpty(providerName))
- return null;
-
- foreach (string key in dialects.Keys)
- {
- if (0 < key.IndexOf(providerName, StringComparison.InvariantCultureIgnoreCase))
- return dialects[key];
- }
- return null;
- }
-
- public static void LoadDialects()
- {
- Type dialectType = providerAssembly.GetType("Migrator.Providers.Dialect");
- foreach (Type t in providerAssembly.GetTypes())
- {
- if (t.IsSubclassOf(dialectType))
- {
- dialects.Add(t.FullName, Activator.CreateInstance(t, null));
- }
- }
- }
- }
-}
diff --git a/Migrator.net/Migrator/Tools/SchemaDumper.cs b/Migrator.net/Migrator/Tools/SchemaDumper.cs
deleted file mode 100644
index ee6195d41..000000000
--- a/Migrator.net/Migrator/Tools/SchemaDumper.cs
+++ /dev/null
@@ -1,70 +0,0 @@
-#region License
-//The contents of this file are subject to the Mozilla Public License
-//Version 1.1 (the "License"); you may not use this file except in
-//compliance with the License. You may obtain a copy of the License at
-//http://www.mozilla.org/MPL/
-//Software distributed under the License is distributed on an "AS IS"
-//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-//License for the specific language governing rights and limitations
-//under the License.
-#endregion
-
-using System.IO;
-using Migrator.Framework;
-
-namespace Migrator.Tools
-{
- public class SchemaDumper
- {
- private readonly ITransformationProvider _provider;
-
- public SchemaDumper(string provider, string connectionString)
- {
- _provider = ProviderFactory.Create(provider, connectionString);
- }
-
- public string Dump()
- {
- StringWriter writer = new StringWriter();
-
- writer.WriteLine("using Migrator;\n");
- writer.WriteLine("[Migration(1)]");
- writer.WriteLine("public class SchemaDump : Migration");
- writer.WriteLine("{");
- writer.WriteLine("\tpublic override void Up()");
- writer.WriteLine("\t{");
-
- foreach (string table in _provider.GetTables())
- {
- writer.WriteLine("\t\tDatabase.AddTable(\"{0}\",", table);
- foreach (Column column in _provider.GetColumns(table))
- {
- writer.WriteLine("\t\t\tnew Column(\"{0}\", typeof({1})),", column.Name, column.Type);
- }
- writer.WriteLine("\t\t);");
- }
-
- writer.WriteLine("\t}\n");
- writer.WriteLine("\tpublic override void Down()");
- writer.WriteLine("\t{");
-
- foreach (string table in _provider.GetTables())
- {
- writer.WriteLine("\t\tDatabase.RemoveTable(\"{0}\");", table);
- }
-
- writer.WriteLine("\t}");
- writer.WriteLine("}");
-
- return writer.ToString();
- }
-
- public void DumpTo(string file)
- {
- using (StreamWriter writer = new StreamWriter(file))
- {
- writer.Write(Dump());
- }
- }
- }
-}
\ No newline at end of file
diff --git a/Migrator.net/config/AssemblyInfo.cs b/Migrator.net/config/AssemblyInfo.cs
deleted file mode 100644
index 1f0e5aa7a..000000000
--- a/Migrator.net/config/AssemblyInfo.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Migrator")]
-[assembly: AssemblyDescription("Database migration for .NET")]
-[assembly: AssemblyProduct("Migrator")]
-[assembly: AssemblyCopyright("Copyright © 2006")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("a5f0077a-d124-449a-a684-453576551f43")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-[assembly: AssemblyVersion("0.9.1.*")]
diff --git a/NzbDrone.Common/PathExtentions.cs b/NzbDrone.Common/PathExtentions.cs
index 16fb16db6..8fd2e043b 100644
--- a/NzbDrone.Common/PathExtentions.cs
+++ b/NzbDrone.Common/PathExtentions.cs
@@ -14,8 +14,8 @@ namespace NzbDrone.Common
private const string LOG_CONFIG_FILE = "log.config";
private const string APP_CONFIG_FILE = "config.xml";
- private const string NZBDRONE_DB_FILE = "nzbdrone.sdf";
- private const string LOG_DB_FILE = "log.sdf";
+ public const string NZBDRONE_DB_FILE = "nzbdrone.sdf";
+ public const string LOG_DB_FILE = "log.sdf";
private const string UPDATE_SANDBOX_FOLDER_NAME = "nzbdrone_update\\";
private const string UPDATE_PACKAGE_FOLDER_NAME = "nzbdrone\\";
diff --git a/NzbDrone.Core/Datastore/Migrations/Migration20110707.cs b/NzbDrone.Core/Datastore/Migrations/Migration20110707.cs
index 9566a0d55..4fedebaa6 100644
--- a/NzbDrone.Core/Datastore/Migrations/Migration20110707.cs
+++ b/NzbDrone.Core/Datastore/Migrations/Migration20110707.cs
@@ -6,9 +6,9 @@ namespace NzbDrone.Core.Datastore.Migrations
{
[Migration(20110707)]
- public class Migration20110707 : Migration
+ public class Migration20110707 : NzbDroneMigration
{
- public override void Up()
+ protected override void MainDbUpgrade()
{
Database.AddTable("Series", new[]
{
@@ -137,6 +137,19 @@ namespace NzbDrone.Core.Datastore.Migrations
new Column("SonicAllowed", DbType.String, ColumnProperty.NotNull),
});
+ Database.AddTable("IndexerDefinitions", new[]
+ {
+ new Column("Id", DbType.Int32, ColumnProperty.PrimaryKeyWithIdentity),
+ new Column("Enable", DbType.Boolean, ColumnProperty.NotNull),
+ new Column("IndexProviderType", DbType.String, ColumnProperty.NotNull),
+ new Column("Name", DbType.String, ColumnProperty.NotNull),
+ });
+ }
+
+
+ protected override void LogDbUpgrade()
+ {
+
Database.AddTable("Logs", new[]
{
new Column("LogId", DbType.Int64, ColumnProperty.PrimaryKeyWithIdentity),
@@ -148,20 +161,6 @@ namespace NzbDrone.Core.Datastore.Migrations
new Column("ExceptionType", DbType.String, ColumnProperty.Null),
new Column("Level", DbType.String, ColumnProperty.NotNull)
});
-
- Database.AddTable("IndexerDefinitions", new[]
- {
- new Column("Id", DbType.Int32, ColumnProperty.PrimaryKeyWithIdentity),
- new Column("Enable", DbType.Boolean, ColumnProperty.NotNull),
- new Column("IndexProviderType", DbType.String, ColumnProperty.NotNull),
- new Column("Name", DbType.String, ColumnProperty.NotNull),
- });
- }
-
-
- public override void Down()
- {
- throw new NotImplementedException();
}
}
}
\ No newline at end of file
diff --git a/NzbDrone.Core/Datastore/Migrations/Migration20110726.cs b/NzbDrone.Core/Datastore/Migrations/Migration20110726.cs
index c0ed06601..e064ca101 100644
--- a/NzbDrone.Core/Datastore/Migrations/Migration20110726.cs
+++ b/NzbDrone.Core/Datastore/Migrations/Migration20110726.cs
@@ -6,9 +6,9 @@ namespace NzbDrone.Core.Datastore.Migrations
{
[Migration(20110726)]
- public class Migration20110726 : Migration
+ public class Migration20110726 : NzbDroneMigration
{
- public override void Up()
+ protected override void MainDbUpgrade()
{
Database.RemoveTable("ExternalNotificationSettings");
@@ -21,10 +21,5 @@ namespace NzbDrone.Core.Datastore.Migrations
});
}
-
- public override void Down()
- {
- throw new NotImplementedException();
- }
}
}
\ No newline at end of file
diff --git a/NzbDrone.Core/Datastore/Migrations/Migration20110909.cs b/NzbDrone.Core/Datastore/Migrations/Migration20110909.cs
index 66b77deac..1c041f13f 100644
--- a/NzbDrone.Core/Datastore/Migrations/Migration20110909.cs
+++ b/NzbDrone.Core/Datastore/Migrations/Migration20110909.cs
@@ -6,9 +6,9 @@ namespace NzbDrone.Core.Datastore.Migrations
{
[Migration(20110909)]
- public class Migration20110909 : Migration
+ public class Migration20110909 : NzbDroneMigration
{
- public override void Up()
+ protected override void MainDbUpgrade()
{
Database.AddColumn("Series", "Runtime", DbType.Int32, ColumnProperty.Null);
Database.AddColumn("Series", "BannerUrl", DbType.String, ColumnProperty.Null);
@@ -21,10 +21,5 @@ namespace NzbDrone.Core.Datastore.Migrations
new Column("MaxSize", DbType.Int32, ColumnProperty.NotNull)
});
}
-
- public override void Down()
- {
- throw new NotImplementedException();
- }
}
}
\ No newline at end of file
diff --git a/NzbDrone.Core/Datastore/Migrations/Migration20111011.cs b/NzbDrone.Core/Datastore/Migrations/Migration20111011.cs
index 0e8d97a8c..68f642e3e 100644
--- a/NzbDrone.Core/Datastore/Migrations/Migration20111011.cs
+++ b/NzbDrone.Core/Datastore/Migrations/Migration20111011.cs
@@ -6,16 +6,11 @@ namespace NzbDrone.Core.Datastore.Migrations
{
[Migration(20111011)]
- public class Migration20111011 : Migration
+ public class Migration20111011 : NzbDroneMigration
{
- public override void Up()
+ protected override void MainDbUpgrade()
{
Database.AddColumn("Episodes", "PostDownloadStatus", DbType.Int32, ColumnProperty.Null);
}
-
- public override void Down()
- {
- throw new NotImplementedException();
- }
}
}
\ No newline at end of file
diff --git a/NzbDrone.Core/Datastore/Migrations/Migration20111112.cs b/NzbDrone.Core/Datastore/Migrations/Migration20111112.cs
index 7c91c87f6..ad0db8728 100644
--- a/NzbDrone.Core/Datastore/Migrations/Migration20111112.cs
+++ b/NzbDrone.Core/Datastore/Migrations/Migration20111112.cs
@@ -6,9 +6,9 @@ namespace NzbDrone.Core.Datastore.Migrations
{
[Migration(20111112)]
- public class Migration2011112 : Migration
+ public class Migration2011112 : NzbDroneMigration
{
- public override void Up()
+ protected override void MainDbUpgrade()
{
Database.AddTable("NewznabDefinitions", new[]
{
@@ -19,10 +19,5 @@ namespace NzbDrone.Core.Datastore.Migrations
new Column("ApiKey", DbType.String, ColumnProperty.Null)
});
}
-
- public override void Down()
- {
- throw new NotImplementedException();
- }
}
}
\ No newline at end of file
diff --git a/NzbDrone.Core/Datastore/Migrations/Migration20111125.cs b/NzbDrone.Core/Datastore/Migrations/Migration20111125.cs
index 4a46828bf..aa3aaf20d 100644
--- a/NzbDrone.Core/Datastore/Migrations/Migration20111125.cs
+++ b/NzbDrone.Core/Datastore/Migrations/Migration20111125.cs
@@ -1,21 +1,15 @@
-using System;
-using System.Data;
+using System.Data;
using Migrator.Framework;
namespace NzbDrone.Core.Datastore.Migrations
{
[Migration(20111125)]
- public class Migration2011125 : Migration
+ public class Migration2011125 : NzbDroneMigration
{
- public override void Up()
+ protected override void MainDbUpgrade()
{
Database.AddColumn("Series", "IsDaily", DbType.Boolean, ColumnProperty.Null);
}
-
- public override void Down()
- {
- throw new NotImplementedException();
- }
}
}
\ No newline at end of file
diff --git a/NzbDrone.Core/Datastore/Migrations/NzbDroneMigration.cs b/NzbDrone.Core/Datastore/Migrations/NzbDroneMigration.cs
new file mode 100644
index 000000000..560df46fe
--- /dev/null
+++ b/NzbDrone.Core/Datastore/Migrations/NzbDroneMigration.cs
@@ -0,0 +1,41 @@
+using System;
+using System.Linq;
+using Migrator.Framework;
+using NzbDrone.Common;
+
+namespace NzbDrone.Core.Datastore.Migrations
+{
+ public abstract class NzbDroneMigration : Migration
+ {
+ protected virtual void MainDbUpgrade()
+ {
+ }
+
+ protected virtual void LogDbUpgrade()
+ {
+ }
+
+ public override void Up()
+ {
+ if (Database.ConnectionString.Contains(PathExtentions.NZBDRONE_DB_FILE))
+ {
+ MainDbUpgrade();
+ }
+ else if (Database.ConnectionString.Contains(PathExtentions.LOG_DB_FILE))
+ {
+ LogDbUpgrade();
+ }
+ else
+ {
+ LogDbUpgrade();
+ MainDbUpgrade();
+ }
+ }
+
+
+ public override void Down()
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/NzbDrone.Core/NzbDrone.Core.csproj b/NzbDrone.Core/NzbDrone.Core.csproj
index dac41c9ff..d3b987d6f 100644
--- a/NzbDrone.Core/NzbDrone.Core.csproj
+++ b/NzbDrone.Core/NzbDrone.Core.csproj
@@ -145,6 +145,10 @@
False
..\Libraries\Migrator.NET\Migrator.Framework.dll
+
+ False
+ ..\Libraries\Migrator.NET\Migrator.Providers.dll
+
False
..\packages\MiniProfiler.1.9\lib\net40\MvcMiniProfiler.dll
@@ -211,6 +215,7 @@
+