fix #3653 - mySQL installation failing on Rows reserved word
This commit is contained in:
parent
38a5cc33e8
commit
7c6424e05c
|
@ -75,6 +75,14 @@ namespace Oqtane.Database.MySQL
|
|||
return dr;
|
||||
}
|
||||
|
||||
public override string RewriteName(string name, bool isQuery)
|
||||
{
|
||||
if (name.ToLower() == "rows" && isQuery)
|
||||
{
|
||||
name = $"`{name}`"; // escape reserved word in SQL query
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
public override DbContextOptionsBuilder UseDatabase(DbContextOptionsBuilder optionsBuilder, string connectionString)
|
||||
{
|
||||
|
|
|
@ -66,6 +66,11 @@ namespace Oqtane.Databases
|
|||
return name;
|
||||
}
|
||||
|
||||
public virtual string RewriteName(string name, bool isQuery)
|
||||
{
|
||||
return name;
|
||||
}
|
||||
|
||||
public virtual string RewriteValue(string value, string type)
|
||||
{
|
||||
return value;
|
||||
|
|
|
@ -28,6 +28,8 @@ namespace Oqtane.Databases.Interfaces
|
|||
|
||||
public string RewriteName(string name);
|
||||
|
||||
public string RewriteName(string name, bool isQuery);
|
||||
|
||||
public string RewriteValue(string value, string type);
|
||||
|
||||
public void UpdateIdentityStoreTableNames(ModelBuilder builder);
|
||||
|
|
|
@ -47,7 +47,12 @@ namespace Oqtane.Migrations.EntityBuilders
|
|||
|
||||
private string RewriteName(string name)
|
||||
{
|
||||
return ActiveDatabase.RewriteName(name);
|
||||
return RewriteName(name, false);
|
||||
}
|
||||
|
||||
private string RewriteName(string name, bool isQuery)
|
||||
{
|
||||
return ActiveDatabase.RewriteName(name, isQuery);
|
||||
}
|
||||
|
||||
private string RewriteValue(string value, string type)
|
||||
|
@ -394,7 +399,7 @@ namespace Oqtane.Migrations.EntityBuilders
|
|||
|
||||
public void UpdateColumn(string columnName, string value, string type, string condition)
|
||||
{
|
||||
var updateSql = $"UPDATE {RewriteSqlEntityTableName(EntityTableName)} SET {RewriteName(columnName)} = {RewriteValue(value, type)} ";
|
||||
var updateSql = $"UPDATE {RewriteSqlEntityTableName(EntityTableName)} SET {RewriteName(columnName, true)} = {RewriteValue(value, type)} ";
|
||||
if (!string.IsNullOrEmpty(condition))
|
||||
{
|
||||
updateSql += $"WHERE {condition}";
|
||||
|
|
Loading…
Reference in New Issue
Block a user