Skip to content

Commit

Permalink
TEXT, BLOB, GEOMETRY and JSON columns do not support default values. (#…
Browse files Browse the repository at this point in the history
…987)

Fixes #615
  • Loading branch information
lauxjpn committed Dec 10, 2019
1 parent b1b9cb3 commit 79ca284
Showing 1 changed file with 13 additions and 6 deletions.
19 changes: 13 additions & 6 deletions src/EFCore.MySql/Migrations/Internal/MySqlMigrationsModelDiffer.cs
@@ -1,4 +1,6 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using JetBrains.Annotations;
using Microsoft.EntityFrameworkCore;
Expand Down Expand Up @@ -37,12 +39,17 @@ protected override IEnumerable<MigrationOperation> Add(IProperty target, DiffCon
{
var valueGenerationStrategy = MySqlValueGenerationStrategyCompatibility.GetValueGenerationStrategy(MigrationsAnnotations.For(target).ToArray());

// Ensure that null will be set for the columns default value, if CURRENT_TIMESTAMP has been required.
// Ensure that null will be set for the columns default value, if CURRENT_TIMESTAMP has been required,
// or when the store type of the column does not support default values at all.
inline = inline ||
(storeType.StoreTypeNameBase == "datetime" ||
storeType.StoreTypeNameBase == "timestamp") &&
(valueGenerationStrategy == MySqlValueGenerationStrategy.IdentityColumn ||
valueGenerationStrategy == MySqlValueGenerationStrategy.ComputedColumn);
(storeType.StoreTypeNameBase == "datetime" ||
storeType.StoreTypeNameBase == "timestamp") &&
(valueGenerationStrategy == MySqlValueGenerationStrategy.IdentityColumn ||
valueGenerationStrategy == MySqlValueGenerationStrategy.ComputedColumn) ||
storeType.StoreTypeNameBase.Contains("text") ||
storeType.StoreTypeNameBase.Contains("blob") ||
storeType.StoreTypeNameBase == "geometry" ||
storeType.StoreTypeNameBase == "json";
}

return base.Add(target, diffContext, inline);
Expand Down

0 comments on commit 79ca284

Please sign in to comment.