52 lines
2.4 KiB
C#
52 lines
2.4 KiB
C#
using System;
|
|
using System.Text;
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
|
using Microsoft.EntityFrameworkCore.Storage;
|
|
using Oqtane.Models;
|
|
using Oqtane.Shared;
|
|
|
|
namespace Oqtane.Migrations.Framework
|
|
{
|
|
public static class MigrationUtils
|
|
{
|
|
public static string BuildInsertScript(HistoryRow row, HistoryRepositoryDependencies dependencies, MigrationHistoryTable historyTable )
|
|
{
|
|
var sqlGenerationHelper = dependencies.SqlGenerationHelper;
|
|
var stringTypeMapping = dependencies.TypeMappingSource.GetMapping(typeof(string));
|
|
|
|
return new StringBuilder().Append("INSERT INTO ")
|
|
.Append(sqlGenerationHelper.DelimitIdentifier(historyTable.TableName, historyTable.TableSchema))
|
|
.Append(" (")
|
|
.Append(sqlGenerationHelper.DelimitIdentifier(historyTable.MigrationIdColumnName))
|
|
.Append(", ")
|
|
.Append(sqlGenerationHelper.DelimitIdentifier(historyTable.ProductVersionColumnName))
|
|
.Append(", ")
|
|
.Append(sqlGenerationHelper.DelimitIdentifier(historyTable.AppliedVersionColumnName))
|
|
.Append(", ")
|
|
.Append(sqlGenerationHelper.DelimitIdentifier(historyTable.AppliedDateColumnName))
|
|
.AppendLine(")")
|
|
.Append("VALUES (")
|
|
.Append(stringTypeMapping.GenerateSqlLiteral(row.MigrationId))
|
|
.Append(", ")
|
|
.Append(stringTypeMapping.GenerateSqlLiteral(row.ProductVersion))
|
|
.Append(", ")
|
|
.Append(stringTypeMapping.GenerateSqlLiteral(Constants.Version))
|
|
.Append(", ")
|
|
.Append(stringTypeMapping.GenerateSqlLiteral(DateTime.Now.ToString("yyyy'-'MM'-'dd' 'HH':'mm':'ss'.'fffffffK")))
|
|
.Append(")")
|
|
.AppendLine(sqlGenerationHelper.StatementTerminator)
|
|
.ToString();
|
|
}
|
|
|
|
// only used in upgrade scenarios for modules that used SQL scripts originally
|
|
public static string BuildInsertScript(string MigrationId)
|
|
{
|
|
var query = "IF NOT EXISTS(SELECT 1 FROM __EFMigrationsHistory WHERE MigrationId = '" + MigrationId + "') ";
|
|
query += "INSERT INTO __EFMigrationsHistory(MigrationId, ProductVersion, AppliedDate, AppliedVersion) ";
|
|
query += "VALUES('" + MigrationId + "', '5.0.4', SYSDATETIME(), '" + Constants.Version + "')";
|
|
return query;
|
|
}
|
|
|
|
}
|
|
}
|