Skip to content

Commit 4118178

Browse files
committed
Fixes in Oracle and MySQL
1 parent 2ed1c2b commit 4118178

File tree

3 files changed

+68
-15
lines changed

3 files changed

+68
-15
lines changed

src/Migrator.Providers/Impl/Mysql/MySqlTransformationProvider.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,14 @@ INNER JOIN information_schema.TABLE_CONSTRAINTS i
5353
if (tuple.Item3 == "FOREIGN KEY")
5454
RemoveForeignKey(tuple.Item1, tuple.Item2);
5555
else if (tuple.Item3 == "PRIMARY KEY")
56-
ExecuteNonQuery(String.Format("ALTER TABLE {0} DROP PRIMARY KEY", table));
56+
{
57+
try
58+
{
59+
ExecuteNonQuery(String.Format("ALTER TABLE {0} DROP PRIMARY KEY", table));
60+
}
61+
catch (Exception)
62+
{ }
63+
}
5764
else if (tuple.Item3 == "UNIQUE")
5865
RemoveIndex(tuple.Item1, tuple.Item2);
5966
}

src/Migrator.Providers/Impl/Oracle/OracleTransformationProvider.cs

Lines changed: 59 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,53 @@ public override void AddColumn(string table, string sqlColumn)
175175
table = QuoteTableNameIfRequired(table);
176176
sqlColumn = QuoteColumnNameIfRequired(sqlColumn);
177177
ExecuteNonQuery(String.Format("ALTER TABLE {0} ADD {1}", table, sqlColumn));
178-
}
178+
}
179+
180+
public override string[] GetConstraints(string table)
181+
{
182+
var constraints = new List<string>();
183+
//using (
184+
// IDataReader reader =
185+
// ExecuteQuery(
186+
// String.Format("SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE LOWER(TABLE_NAME) = LOWER('{0}')", table)))
187+
//{
188+
// while (reader.Read())
189+
// {
190+
// constraints.Add(reader.GetString(0));
191+
// }
192+
//}
193+
194+
using (
195+
IDataReader reader =
196+
ExecuteQuery(
197+
String.Format("SELECT constraint_name FROM user_constraints WHERE lower(table_name) = '{0}'", table.ToLower())))
198+
{
199+
while (reader.Read())
200+
{
201+
constraints.Add(reader.GetString(0));
202+
}
203+
}
204+
205+
return constraints.ToArray();
206+
}
207+
208+
protected override string GetPrimaryKeyConstraintName(string table)
209+
{
210+
var constraints = new List<string>();
211+
212+
using (
213+
IDataReader reader =
214+
ExecuteQuery(
215+
String.Format("SELECT constraint_name FROM user_constraints WHERE lower(table_name) = '{0}' and constraint_type = 'P'", table.ToLower())))
216+
{
217+
while (reader.Read())
218+
{
219+
constraints.Add(reader.GetString(0));
220+
}
221+
}
222+
223+
return constraints.FirstOrDefault();
224+
}
179225

180226
public override bool ConstraintExists(string table, string name)
181227
{
@@ -207,7 +253,7 @@ public override bool TableExists(string table)
207253
string sql = string.Format("SELECT COUNT(table_name) FROM user_tables WHERE lower(table_name) = '{0}'", table.ToLower());
208254

209255
if (_defaultSchema != null)
210-
sql = string.Format("SELECT COUNT(table_name) FROM all_tables WHERE lower(owner) = '{0}' and lower(table_name) = '{1}'", _defaultSchema.ToLower(), table.ToLower());
256+
sql = string.Format("SELECT COUNT(table_name) FROM user_tables WHERE lower(owner) = '{0}' and lower(table_name) = '{1}'", _defaultSchema.ToLower(), table.ToLower());
211257

212258
Logger.Log(sql);
213259
object count = ExecuteScalar(sql);
@@ -472,19 +518,19 @@ private string SchemaInfoTableName
472518
}
473519
}
474520

475-
protected override string GetPrimaryKeyConstraintName(string table)
476-
{
477-
var sql = "select constraint_name " +
478-
"from user_indexes join user_constraints on user_indexes.index_name = user_constraints.constraint_name " +
479-
"where lower(user_indexes.table_name) = lower('{0}') and constraint_type = 'P'";
521+
//protected override string GetPrimaryKeyConstraintName(string table)
522+
//{
523+
// var sql = "select constraint_name " +
524+
// "from user_indexes join user_constraints on user_indexes.index_name = user_constraints.constraint_name " +
525+
// "where lower(user_indexes.table_name) = lower('{0}') and constraint_type = 'P'";
480526

481-
sql = string.Format(sql, table);
527+
// sql = string.Format(sql, table);
482528

483-
using (IDataReader reader = ExecuteQuery(sql))
484-
{
485-
return reader.Read() ? reader.GetString(0) : null;
486-
}
487-
}
529+
// using (IDataReader reader = ExecuteQuery(sql))
530+
// {
531+
// return reader.Read() ? reader.GetString(0) : null;
532+
// }
533+
//}
488534

489535
public override Index[] GetIndexes(string table)
490536
{

src/Migrator.Providers/TransformationProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1539,7 +1539,7 @@ protected string QuoteConstraintNameIfRequired(string name)
15391539

15401540
protected virtual string GetPrimaryKeyConstraintName(string table)
15411541
{
1542-
throw new NotImplementedException();
1542+
return null;
15431543
}
15441544

15451545
public virtual void RemovePrimaryKey(string table)

0 commit comments

Comments
 (0)