Skip to content

Commit c662f7e

Browse files
Reduce key length for MySQL
1 parent f1dda9b commit c662f7e

File tree

6 files changed

+91
-4
lines changed

6 files changed

+91
-4
lines changed

Demo/Demo.csproj

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,13 @@
66
<ImplicitUsings>enable</ImplicitUsings>
77
</PropertyGroup>
88

9+
<ItemGroup>
10+
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.11" />
11+
</ItemGroup>
12+
913
<ItemGroup>
1014
<ProjectReference Include="..\YDotNet.Extensions\YDotNet.Extensions.csproj" />
15+
<ProjectReference Include="..\YDotNet.Server.EntityFramework\YDotNet.Server.EntityFramework.csproj" />
1116
<ProjectReference Include="..\YDotNet.Server.MongoDB\YDotNet.Server.MongoDB.csproj" />
1217
<ProjectReference Include="..\YDotNet.Server.Redis\YDotNet.Server.Redis.csproj" />
1318
<ProjectReference Include="..\YDotNet.Server.WebSockets\YDotNet.Server.WebSockets.csproj" />

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<PackageReadmeFile>README.md</PackageReadmeFile>
1212
<PublishRepositoryUrl>true</PublishRepositoryUrl>
1313
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
14-
<Version>0.4.2</Version>
14+
<Version>0.4.3</Version>
1515
</PropertyGroup>
1616

1717
<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
namespace YDotNet.Tests.Server.Unit;
2+
3+
using Microsoft.EntityFrameworkCore;
4+
using Microsoft.EntityFrameworkCore.Infrastructure;
5+
using Microsoft.EntityFrameworkCore.Storage;
6+
using Microsoft.Extensions.DependencyInjection;
7+
using Microsoft.Extensions.Hosting;
8+
using NUnit.Framework;
9+
using Testcontainers.MySql;
10+
using YDotNet.Server.EntityFramework;
11+
using YDotNet.Server.Storage;
12+
13+
[TestFixture]
14+
[Category("Docker")]
15+
public class EFDocumentStorageMySqlFixture : DocumentStorageTests
16+
{
17+
private readonly MySqlContainer mysql = new MySqlBuilder().Build();
18+
private IServiceProvider services;
19+
20+
public class AppDbContext(DbContextOptions options) : DbContext(options)
21+
{
22+
protected override void OnModelCreating(ModelBuilder modelBuilder)
23+
{
24+
modelBuilder.UseYDotNet();
25+
base.OnModelCreating(modelBuilder);
26+
}
27+
}
28+
29+
[OneTimeSetUp]
30+
public async Task OneTimeSetup()
31+
{
32+
await mysql.StartAsync();
33+
}
34+
35+
[OneTimeTearDown]
36+
public async Task OneTimeTeardown()
37+
{
38+
await mysql.StopAsync();
39+
}
40+
41+
[SetUp]
42+
public async Task Setup()
43+
{
44+
services = new ServiceCollection()
45+
.AddLogging()
46+
.AddDbContext<AppDbContext>(options =>
47+
{
48+
options.UseMySql(mysql.GetConnectionString(), ServerVersion.AutoDetect(mysql.GetConnectionString()));
49+
})
50+
.AddYDotNet()
51+
.AddEntityFrameworkStorage<AppDbContext>()
52+
.Services
53+
.BuildServiceProvider();
54+
55+
foreach (var service in services.GetRequiredService<IEnumerable<IHostedService>>())
56+
{
57+
await service.StartAsync(default);
58+
}
59+
60+
var factory = services.GetRequiredService<IDbContextFactory<AppDbContext>>();
61+
var context = await factory.CreateDbContextAsync();
62+
var creator = (RelationalDatabaseCreator)context.Database.GetService<IDatabaseCreator>();
63+
64+
await creator.EnsureCreatedAsync();
65+
}
66+
67+
[TearDown]
68+
public async Task Teardown()
69+
{
70+
foreach (var service in services.GetRequiredService<IEnumerable<IHostedService>>())
71+
{
72+
await service.StopAsync(default);
73+
}
74+
}
75+
76+
protected override IDocumentStorage CreateSut()
77+
{
78+
return services.GetRequiredService<IDocumentStorage>();
79+
}
80+
}

Tests/YDotNet.Tests.Server.Unit/EFDocumentStorageFixture.cs renamed to Tests/YDotNet.Tests.Server.Unit/EFDocumentStoragePostgresFixture.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
namespace YDotNet.Tests.Server.Unit;
1+
namespace YDotNet.Tests.Server.Unit;
22

33
using Microsoft.EntityFrameworkCore;
44
using Microsoft.EntityFrameworkCore.Infrastructure;
@@ -12,7 +12,7 @@ namespace YDotNet.Tests.Server.Unit;
1212

1313
[TestFixture]
1414
[Category("Docker")]
15-
public class EFDocumentStorageFixture : DocumentStorageTests
15+
public class EFDocumentStoragePostgresFixture : DocumentStorageTests
1616
{
1717
private readonly PostgreSqlContainer postgres = new PostgreSqlBuilder().Build();
1818
private IServiceProvider services;

Tests/YDotNet.Tests.Server.Unit/YDotNet.Tests.Server.Unit.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,13 @@
2626
<PackageReference Include="NUnit" Version="3.13.3" />
2727
<PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
2828
<PackageReference Include="NUnit.Analyzers" Version="3.3.0" />
29+
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.2" />
2930
<PackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.435">
3031
<PrivateAssets>all</PrivateAssets>
3132
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
3233
</PackageReference>
3334
<PackageReference Include="Testcontainers.MongoDb" Version="4.1.0" />
35+
<PackageReference Include="Testcontainers.MySql" Version="4.1.0" />
3436
<PackageReference Include="Testcontainers.PostgreSql" Version="4.1.0" />
3537
</ItemGroup>
3638

YDotNet.Server.EntityFramework/ServiceExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public static ModelBuilder UseYDotNet(this ModelBuilder builder)
3232
b.HasKey(x => x.Id);
3333

3434
b.Property(x => x.Id)
35-
.HasMaxLength(1000);
35+
.HasMaxLength(256);
3636
});
3737

3838
return builder;

0 commit comments

Comments
 (0)