From a1a0202c091664ee5663496eb8ca1a29af1cbdab Mon Sep 17 00:00:00 2001 From: Vyacheslav Napadovsky Date: Sun, 16 Sep 2018 14:30:36 +0300 Subject: [PATCH] Simplify NpgsqlMigrationsSqlGenerator.Generate for CreateSequenceOperation --- .../NpgsqlMigrationsSqlGenerator.cs | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/EFCore.PG/Migrations/NpgsqlMigrationsSqlGenerator.cs b/src/EFCore.PG/Migrations/NpgsqlMigrationsSqlGenerator.cs index 15e05aa76..4857d251f 100644 --- a/src/EFCore.PG/Migrations/NpgsqlMigrationsSqlGenerator.cs +++ b/src/EFCore.PG/Migrations/NpgsqlMigrationsSqlGenerator.cs @@ -923,27 +923,21 @@ protected override void Generate( protected override void Generate(CreateSequenceOperation operation, IModel model, MigrationCommandListBuilder builder) { Check.NotNull(operation, nameof(operation)); - Check.NotNull(builder, nameof(builder)); if (VersionAtLeast(10, 0)) + { + base.Generate(operation, model, builder); + } + else { // "CREATE SEQUENCE name AS type" expression is supported only in PostgreSQL 10 or above. // The base MigrationsSqlGenerator.Generate method generates that expression. // https://github.com/aspnet/EntityFrameworkCore/blob/master/src/EFCore.Relational/Migrations/MigrationsSqlGenerator.cs#L533-L535 + var oldValue = operation.ClrType; + operation.ClrType = typeof(long); base.Generate(operation, model, builder); - return; + operation.ClrType = oldValue; } - - // Generate CREATE SEQUENCE without "AS" part. - builder - .Append("CREATE SEQUENCE ") - .Append(_sqlGenerationHelper.DelimitIdentifier(operation.Name, operation.Schema)) - .Append(" START WITH ") - .Append(_typeMappingSource.GetMapping(typeof(long)).GenerateSqlLiteral(operation.StartValue)); - - SequenceOptions(operation, model, builder); - builder.AppendLine(_sqlGenerationHelper.StatementTerminator); - EndStatement(builder); } #endregion Standard migrations