Added CreateIndex to Migrator
This commit is contained in:
parent
a1653022ad
commit
76d029361b
|
@ -194,6 +194,15 @@ namespace Migrator.Framework
|
||||||
/// <param name="constraint"></param>
|
/// <param name="constraint"></param>
|
||||||
void GenerateForeignKey(string foreignTable, string primaryTable, ForeignKeyConstraint constraint);
|
void GenerateForeignKey(string foreignTable, string primaryTable, ForeignKeyConstraint constraint);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Add an Index to a table
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="name">The name of the index to add.</param>
|
||||||
|
/// <param name="table">The name of the table that will get the index.</param>
|
||||||
|
/// <param name="unique">If the index will be unique</param>
|
||||||
|
/// <param name="columns">The name of the column or columns that are in the index.</param>
|
||||||
|
void AddIndex(string name, string table, bool unique, params string[] columns);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Add a primary key to a table
|
/// Add a primary key to a table
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -376,6 +385,13 @@ namespace Migrator.Framework
|
||||||
/// <param name="name">The name of the constraint to remove</param>
|
/// <param name="name">The name of the constraint to remove</param>
|
||||||
void RemoveConstraint(string table, string name);
|
void RemoveConstraint(string table, string name);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remove an existing index
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="table">The table that contains the index.</param>
|
||||||
|
/// <param name="name">The name of the index to remove</param>
|
||||||
|
void RemoveIndex(string table, string name);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Remove an existing table
|
/// Remove an existing table
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
using System;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
using Migrator.Framework;
|
using Migrator.Framework;
|
||||||
using ForeignKeyConstraint=Migrator.Framework.ForeignKeyConstraint;
|
using ForeignKeyConstraint=Migrator.Framework.ForeignKeyConstraint;
|
||||||
|
@ -54,6 +55,11 @@ namespace Migrator.Providers
|
||||||
// No Op
|
// No Op
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void RemoveIndex(string table, string name)
|
||||||
|
{
|
||||||
|
// No Op
|
||||||
|
}
|
||||||
|
|
||||||
public void AddTable(string name, params Column[] columns)
|
public void AddTable(string name, params Column[] columns)
|
||||||
{
|
{
|
||||||
// No Op
|
// No Op
|
||||||
|
@ -129,6 +135,16 @@ namespace Migrator.Providers
|
||||||
// No Op
|
// 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)
|
public void AddPrimaryKey(string name, string table, params string[] columns)
|
||||||
{
|
{
|
||||||
// No Op
|
// No Op
|
||||||
|
|
|
@ -134,6 +134,11 @@ namespace Migrator.Providers
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void RemoveIndex(string table, string name)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
public virtual void AddTable(string table, string engine, string columns)
|
public virtual void AddTable(string table, string engine, string columns)
|
||||||
{
|
{
|
||||||
table = _dialect.TableNameNeedsQuote ? _dialect.Quote(table) : table;
|
table = _dialect.TableNameNeedsQuote ? _dialect.Quote(table) : table;
|
||||||
|
@ -409,6 +414,23 @@ namespace Migrator.Providers
|
||||||
AddColumn(table, column, type, size, property, null);
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Append a primary key to a table.
|
/// Append a primary key to a table.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -562,7 +584,8 @@ namespace Migrator.Providers
|
||||||
Logger.Warn(ex.Message);
|
Logger.Warn(ex.Message);
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private IDbCommand BuildCommand(string sql)
|
private IDbCommand BuildCommand(string sql)
|
||||||
{
|
{
|
||||||
|
@ -595,7 +618,8 @@ namespace Migrator.Providers
|
||||||
Logger.Warn("query failed: {0}", cmd.CommandText);
|
Logger.Warn("query failed: {0}", cmd.CommandText);
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public object ExecuteScalar(string sql)
|
public object ExecuteScalar(string sql)
|
||||||
{
|
{
|
||||||
|
@ -611,7 +635,8 @@ namespace Migrator.Providers
|
||||||
Logger.Warn("Query failed: {0}", cmd.CommandText);
|
Logger.Warn("Query failed: {0}", cmd.CommandText);
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public IDataReader Select(string what, string from)
|
public IDataReader Select(string what, string from)
|
||||||
{
|
{
|
||||||
|
@ -747,8 +772,10 @@ namespace Migrator.Providers
|
||||||
{
|
{
|
||||||
_appliedMigrations = new List<long>();
|
_appliedMigrations = new List<long>();
|
||||||
CreateSchemaInfoTable();
|
CreateSchemaInfoTable();
|
||||||
using(IDataReader reader = Select("version","SchemaInfo")){
|
using (IDataReader reader = Select("version", "SchemaInfo"))
|
||||||
while(reader.Read()){
|
{
|
||||||
|
while (reader.Read())
|
||||||
|
{
|
||||||
_appliedMigrations.Add(Convert.ToInt64(reader.GetValue(0)));
|
_appliedMigrations.Add(Convert.ToInt64(reader.GetValue(0)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -822,7 +849,8 @@ namespace Migrator.Providers
|
||||||
public virtual string[] QuoteValues(string[] values)
|
public virtual string[] QuoteValues(string[] values)
|
||||||
{
|
{
|
||||||
return Array.ConvertAll<string, string>(values,
|
return Array.ConvertAll<string, string>(values,
|
||||||
delegate(string val) {
|
delegate(string val)
|
||||||
|
{
|
||||||
if (null == val)
|
if (null == val)
|
||||||
return "null";
|
return "null";
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue