fix #4855 - dropping required column causes issue on SQLite
This commit is contained in:
parent
043fb1abd1
commit
7d94e4a53a
32
Oqtane.Server/Migrations/Tenant/06000101_AddLanguageName.cs
Normal file
32
Oqtane.Server/Migrations/Tenant/06000101_AddLanguageName.cs
Normal file
|
@ -0,0 +1,32 @@
|
|||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Oqtane.Databases.Interfaces;
|
||||
using Oqtane.Migrations.EntityBuilders;
|
||||
using Oqtane.Repository;
|
||||
|
||||
namespace Oqtane.Migrations.Tenant
|
||||
{
|
||||
[DbContext(typeof(TenantDBContext))]
|
||||
[Migration("Tenant.06.00.01.01")]
|
||||
public class AddLanguageName : MultiDatabaseMigration
|
||||
{
|
||||
public AddLanguageName(IDatabase database) : base(database)
|
||||
{
|
||||
}
|
||||
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
// Name column was removed in 5.2.4 however SQLite does not support column removal so it had to be restored
|
||||
if (ActiveDatabase.Name != "Sqlite")
|
||||
{
|
||||
var languageEntityBuilder = new LanguageEntityBuilder(migrationBuilder, ActiveDatabase);
|
||||
languageEntityBuilder.AddStringColumn("Name", 100, true);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
// not implemented
|
||||
}
|
||||
}
|
||||
}
|
|
@ -31,7 +31,7 @@ namespace Oqtane.Repository
|
|||
.ToList()
|
||||
.ForEach(l => l.IsDefault = false);
|
||||
}
|
||||
|
||||
language.Name = ""; // stored in database but not used (SQLite limitation)
|
||||
db.Language.Add(language);
|
||||
db.SaveChanges();
|
||||
|
||||
|
@ -55,6 +55,7 @@ namespace Oqtane.Repository
|
|||
.ForEach(l => l.IsDefault = false);
|
||||
}
|
||||
|
||||
language.Name = ""; // stored in database but not used (SQLite limitation)
|
||||
db.SaveChanges();
|
||||
}
|
||||
|
||||
|
|
|
@ -56,7 +56,9 @@ namespace Oqtane.Models
|
|||
public string Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Deprecated - not used
|
||||
/// Deprecated
|
||||
/// Note that this property still exists in the database because columns cannot be dropped in SQLite
|
||||
/// Therefore the property must be retained/mapped even though the framework no longer uses it
|
||||
/// </summary>
|
||||
public bool? IsDeleted { get; set; }
|
||||
|
||||
|
|
|
@ -63,7 +63,9 @@ namespace Oqtane.Models
|
|||
public bool IsSystem { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Deprecated - not used
|
||||
/// Deprecated
|
||||
/// Note that this property still exists in the database because columns cannot be dropped in SQLite
|
||||
/// Therefore the property must be retained/mapped even though the framework no longer uses it
|
||||
/// </summary>
|
||||
public bool? IsDeleted { get; set; }
|
||||
|
||||
|
|
|
@ -29,9 +29,10 @@ namespace Oqtane.Models
|
|||
/// </summary>
|
||||
public bool IsDefault { get; set; }
|
||||
|
||||
[NotMapped]
|
||||
/// <summary>
|
||||
/// Language Name - corresponds to <see cref="Culture.DisplayName"/>, _not_ <see cref="Culture.Name"/>
|
||||
/// Note that this property still exists in the database because columns cannot be dropped in SQLite
|
||||
/// Therefore the property must be retained/mapped even though the framework populates it from the Culture API
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user