Skip to content

Commit 716ee8d

Browse files
authored
Add Adminer support for MySql (#686)
* Add Adminer support for MySql * Update README.md
1 parent dbf5d47 commit 716ee8d

File tree

17 files changed

+494
-5
lines changed

17 files changed

+494
-5
lines changed

.github/workflows/tests.yaml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,23 +20,24 @@ jobs:
2020
name: [
2121
# Hosting integration tests
2222
Hosting.ActiveMQ.Tests,
23+
Hosting.Adminer.Tests,
24+
Hosting.Azure.Dapr.Redis.Tests,
25+
Hosting.Azure.Dapr.Tests,
2326
Hosting.Azure.DataApiBuilder.Tests,
2427
Hosting.Azure.StaticWebApps.Tests,
2528
Hosting.Bun.Tests,
26-
Hosting.Azure.Dapr.Tests,
27-
Hosting.Azure.Dapr.Redis.Tests,
2829
Hosting.Dapr.Tests,
2930
Hosting.DbGate.Tests,
3031
Hosting.Deno.Tests,
3132
Hosting.EventStore.Tests,
3233
Hosting.GoFeatureFlag.Tests,
3334
Hosting.Golang.Tests,
3435
Hosting.Java.Tests,
35-
Hosting.k6.Tests,
3636
Hosting.LavinMQ.Tests,
3737
Hosting.MailPit.Tests,
3838
Hosting.Meilisearch.Tests,
3939
Hosting.MongoDB.Extensions.Tests,
40+
Hosting.MySql.Extensions.Tests,
4041
Hosting.Ngrok.Tests,
4142
Hosting.NodeJS.Extensions.Tests,
4243
Hosting.Ollama.Tests,
@@ -47,9 +48,9 @@ jobs:
4748
Hosting.Redis.Extensions.Tests,
4849
Hosting.Rust.Tests,
4950
Hosting.SqlDatabaseProjects.Tests,
50-
Hosting.Sqlite.Tests,
5151
Hosting.SqlServer.Extensions.Tests,
52-
Hosting.Adminer.Tests,
52+
Hosting.Sqlite.Tests,
53+
Hosting.k6.Tests,
5354

5455
# Client integration tests
5556
EventStore.Tests,

CommunityToolkit.Aspire.sln

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,14 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommunityToolkit.Aspire.Hos
381381
EndProject
382382
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommunityToolkit.Aspire.Hosting.Adminer.Tests", "tests\CommunityToolkit.Aspire.Hosting.Adminer.Tests\CommunityToolkit.Aspire.Hosting.Adminer.Tests.csproj", "{4973B296-C644-4737-BBCC-6666C077CEBA}"
383383
EndProject
384+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommunityToolkit.Aspire.Hosting.MySql.Extensions", "src\CommunityToolkit.Aspire.Hosting.MySql.Extensions\CommunityToolkit.Aspire.Hosting.MySql.Extensions.csproj", "{79707CDB-9334-4E3F-89BE-486DC467F46B}"
385+
EndProject
386+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost", "examples\mysql-ext\CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost\CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost.csproj", "{DE2AB6D9-383A-45EA-8628-8473641054B3}"
387+
EndProject
388+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "mysql-ext", "mysql-ext", "{11658448-BDD9-4C57-BF02-CEA70CEB8A55}"
389+
EndProject
390+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommunityToolkit.Aspire.Hosting.MySql.Extensions.Tests", "tests\CommunityToolkit.Aspire.Hosting.MySql.Extensions.Tests\CommunityToolkit.Aspire.Hosting.MySql.Extensions.Tests.csproj", "{D511F986-68DF-4285-A099-A34AA9224FB3}"
391+
EndProject
384392
Global
385393
GlobalSection(SolutionConfigurationPlatforms) = preSolution
386394
Debug|Any CPU = Debug|Any CPU
@@ -999,6 +1007,18 @@ Global
9991007
{4973B296-C644-4737-BBCC-6666C077CEBA}.Debug|Any CPU.Build.0 = Debug|Any CPU
10001008
{4973B296-C644-4737-BBCC-6666C077CEBA}.Release|Any CPU.ActiveCfg = Release|Any CPU
10011009
{4973B296-C644-4737-BBCC-6666C077CEBA}.Release|Any CPU.Build.0 = Release|Any CPU
1010+
{79707CDB-9334-4E3F-89BE-486DC467F46B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
1011+
{79707CDB-9334-4E3F-89BE-486DC467F46B}.Debug|Any CPU.Build.0 = Debug|Any CPU
1012+
{79707CDB-9334-4E3F-89BE-486DC467F46B}.Release|Any CPU.ActiveCfg = Release|Any CPU
1013+
{79707CDB-9334-4E3F-89BE-486DC467F46B}.Release|Any CPU.Build.0 = Release|Any CPU
1014+
{DE2AB6D9-383A-45EA-8628-8473641054B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
1015+
{DE2AB6D9-383A-45EA-8628-8473641054B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
1016+
{DE2AB6D9-383A-45EA-8628-8473641054B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
1017+
{DE2AB6D9-383A-45EA-8628-8473641054B3}.Release|Any CPU.Build.0 = Release|Any CPU
1018+
{D511F986-68DF-4285-A099-A34AA9224FB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
1019+
{D511F986-68DF-4285-A099-A34AA9224FB3}.Debug|Any CPU.Build.0 = Debug|Any CPU
1020+
{D511F986-68DF-4285-A099-A34AA9224FB3}.Release|Any CPU.ActiveCfg = Release|Any CPU
1021+
{D511F986-68DF-4285-A099-A34AA9224FB3}.Release|Any CPU.Build.0 = Release|Any CPU
10021022
EndGlobalSection
10031023
GlobalSection(SolutionProperties) = preSolution
10041024
HideSolutionNode = FALSE
@@ -1190,6 +1210,10 @@ Global
11901210
{A62E017D-5474-4CAC-84CC-974755145B52} = {8519CC01-1370-47C8-AD94-B0F326B1563F}
11911211
{85E52133-F4CC-45BC-AEC5-7FE19D3817F2} = {A62E017D-5474-4CAC-84CC-974755145B52}
11921212
{4973B296-C644-4737-BBCC-6666C077CEBA} = {899F0713-7FC6-4750-BAFC-AC650B35B453}
1213+
{79707CDB-9334-4E3F-89BE-486DC467F46B} = {414151D4-7009-4E78-A5C6-D99EBD1E67D1}
1214+
{DE2AB6D9-383A-45EA-8628-8473641054B3} = {11658448-BDD9-4C57-BF02-CEA70CEB8A55}
1215+
{11658448-BDD9-4C57-BF02-CEA70CEB8A55} = {8519CC01-1370-47C8-AD94-B0F326B1563F}
1216+
{D511F986-68DF-4285-A099-A34AA9224FB3} = {899F0713-7FC6-4750-BAFC-AC650B35B453}
11931217
EndGlobalSection
11941218
GlobalSection(ExtensibilityGlobals) = postSolution
11951219
SolutionGuid = {08B1D4B8-D2C5-4A64-BB8B-E1A2B29525F0}

Directory.Packages.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
<PackageVersion Include="Aspire.Hosting.Rabbitmq" Version="$(AspireVersion)" />
1616
<PackageVersion Include="Aspire.Hosting.Redis" Version="$(AspireVersion)" />
1717
<PackageVersion Include="Aspire.Hosting.MongoDB" Version="$(AspireVersion)" />
18+
<PackageVersion Include="Aspire.Hosting.MySql" Version="$(AspireVersion)" />
1819
<PackageVersion Include="Aspire.Hosting.SqlServer" Version="$(AspireVersion)" />
1920
</ItemGroup>
2021
<ItemGroup Label="Core Packages">

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ This repository contains the source code for the .NET Aspire Community Toolkit,
4747
| - **Learn More**: [`Hosting.LavinMQ`][lavinmq-integration-docs] <br /> - Stable 📦: [![CommunityToolkit.Aspire.Hosting.LavinMQ][lavinmq-shields]][lavinmq-nuget] <br /> - Preview 📦: [![CommunityToolkit.Aspire.Hosting.LavinMQ][lavinmq-shields-preview]][lavinmq-nuget-preview] | An Aspire hosting integration for [LavinMQ](https://www.lavinmq.com). |
4848
| - **Learn More**: [`Hosting.MailPit`][mailpit-ext-integration-docs] <br /> - Stable 📦: [![CommunityToolkit.Aspire.Hosting.MailPit][mailpit-ext-shields]][mailpit-ext-nuget] <br /> - Preview 📦: [![CommunityToolkit.Aspire.Hosting.MailPit][mailpit-ext-shields-preview]][mailpit-ext-nuget-preview] | An Aspire integration leveraging the [MailPit](https://mailpit.axllent.org/) container. |
4949
| - **Learn More**: [`Hosting.k6`][k6-integration-docs] <br /> - Stable 📦: [![CommunityToolkit.Aspire.Hosting.k6][k6-shields]][k6-nuget] <br /> - Preview 📦: [![CommunityToolkit.Aspire.Hosting.k6][k6-shields-preview]][k6-nuget-preview] | An Aspire integration leveraging the [Grafana k6](https://k6.io/) container. |
50+
| - **Learn More**: [`Hosting.MySql.Extensions`][mysql-ext-integration-docs] <br /> - Stable 📦: [![CommunityToolkit.Aspire.MySql.Extensions][mysql-ext-shields]][mysql-ext-nuget] <br /> - Preview 📦: [![CommunityToolkit.Aspire.Hosting.MySql.Extensions][mysql-ext-shields-preview]][mysql-ext-nuget-preview] | An integration that contains some additional extensions for hosting MySql container. |
51+
5052

5153
## 🙌 Getting Started
5254

@@ -246,3 +248,8 @@ This project is supported by the [.NET Foundation](https://dotnetfoundation.org)
246248
[k6-nuget]: https://nuget.org/packages/CommunityToolkit.Aspire.Hosting.k6/
247249
[k6-shields-preview]: https://img.shields.io/nuget/vpre/CommunityToolkit.Aspire.Hosting.k6?label=nuget%20(preview)
248250
[k6-nuget-preview]: https://nuget.org/packages/CommunityToolkit.Aspire.Hosting.k6/absoluteLatest
251+
[mysql-ext-integration-docs]: https://learn.microsoft.com/dotnet/aspire/community-toolkit/hosting-mysql-extensions
252+
[mysql-ext-shields]: https://img.shields.io/nuget/v/CommunityToolkit.Aspire.Hosting.MySql.Extensions
253+
[mysql-ext-nuget]: https://nuget.org/packages/CommunityToolkit.Aspire.Hosting.MySql.Extensions/
254+
[mysql-ext-shields-preview]: https://img.shields.io/nuget/vpre/CommunityToolkit.Aspire.Hosting.MySql.Extensions?label=nuget%20(preview)
255+
[mysql-ext-nuget-preview]: https://nuget.org/packages/CommunityToolkit.Aspire.Hosting.MySql.Extensions/absoluteLatest

examples/adminer/CommunityToolkit.Aspire.Hosting.Adminer.AppHost/CommunityToolkit.Aspire.Hosting.Adminer.AppHost.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
<ProjectReference Include="..\..\..\src\CommunityToolkit.Aspire.Hosting.Adminer\CommunityToolkit.Aspire.Hosting.Adminer.csproj" IsAspireProjectResource="false" />
1717
<ProjectReference Include="..\..\..\src\CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions\CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.csproj" IsAspireProjectResource="false" />
1818
<ProjectReference Include="..\..\..\src\CommunityToolkit.Aspire.Hosting.SqlServer.Extensions\CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.csproj" IsAspireProjectResource="false" />
19+
<ProjectReference Include="..\..\..\src\CommunityToolkit.Aspire.Hosting.MySql.Extensions\CommunityToolkit.Aspire.Hosting.MySql.Extensions.csproj" IsAspireProjectResource="false" />
1920
</ItemGroup>
2021

2122
</Project>

examples/adminer/CommunityToolkit.Aspire.Hosting.Adminer.AppHost/Program.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,14 @@
2020
sqlserver2.AddDatabase("db7");
2121
sqlserver2.AddDatabase("db8");
2222

23+
var mysql1 = builder.AddMySql("mysql1")
24+
.WithAdminer();
25+
mysql1.AddDatabase("db9");
26+
mysql1.AddDatabase("db10");
27+
28+
var mysql2 = builder.AddMySql("mysql2")
29+
.WithAdminer();
30+
mysql2.AddDatabase("db11");
31+
mysql2.AddDatabase("db12");
32+
2333
builder.Build().Run();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
<Sdk Name="Aspire.AppHost.Sdk" Version="$(AspireAppHostSdkVersion)" />
3+
4+
<PropertyGroup>
5+
<OutputType>Exe</OutputType>
6+
<ImplicitUsings>enable</ImplicitUsings>
7+
<Nullable>enable</Nullable>
8+
<IsAspireHost>true</IsAspireHost>
9+
</PropertyGroup>
10+
11+
<ItemGroup>
12+
<PackageReference Include="Aspire.Hosting.AppHost" />
13+
</ItemGroup>
14+
15+
<ItemGroup>
16+
<ProjectReference Include="..\..\..\src\CommunityToolkit.Aspire.Hosting.MySql.Extensions\CommunityToolkit.Aspire.Hosting.MySql.Extensions.csproj" IsAspireProjectResource="false" />
17+
</ItemGroup>
18+
19+
20+
</Project>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
var builder = DistributedApplication.CreateBuilder(args);
2+
3+
var mysql1 = builder.AddMySql("mysql1")
4+
.WithAdminer(c => c.WithHostPort(8989));
5+
mysql1.AddDatabase("db1");
6+
mysql1.AddDatabase("db2");
7+
8+
var mysql2 = builder.AddMySql("mysql2")
9+
.WithAdminer(c => c.WithHostPort(8989));
10+
mysql2.AddDatabase("db3");
11+
mysql2.AddDatabase("db4");
12+
13+
builder.Build().Run();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{
2+
"$schema": "https://json.schemastore.org/launchsettings.json",
3+
"profiles": {
4+
"https": {
5+
"commandName": "Project",
6+
"dotnetRunMessages": true,
7+
"launchBrowser": true,
8+
"applicationUrl": "https://localhost:17113;http://localhost:15271",
9+
"environmentVariables": {
10+
"ASPNETCORE_ENVIRONMENT": "Development",
11+
"DOTNET_ENVIRONMENT": "Development",
12+
"DOTNET_DASHBOARD_OTLP_ENDPOINT_URL": "https://localhost:21203",
13+
"DOTNET_RESOURCE_SERVICE_ENDPOINT_URL": "https://localhost:22089"
14+
}
15+
},
16+
"http": {
17+
"commandName": "Project",
18+
"dotnetRunMessages": true,
19+
"launchBrowser": true,
20+
"applicationUrl": "http://localhost:15271",
21+
"environmentVariables": {
22+
"ASPNETCORE_ENVIRONMENT": "Development",
23+
"DOTNET_ENVIRONMENT": "Development",
24+
"DOTNET_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:19015",
25+
"DOTNET_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:20243"
26+
}
27+
}
28+
}
29+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"Logging": {
3+
"LogLevel": {
4+
"Default": "Information",
5+
"Microsoft.AspNetCore": "Warning",
6+
"Aspire.Hosting.Dcp": "Warning"
7+
}
8+
}
9+
}

0 commit comments

Comments
 (0)