committed by
GitHub
38 changed files with 661 additions and 424 deletions
@ -0,0 +1,44 @@ |
|||||
|
image: mcr.microsoft.com/dotnet/sdk:9.0 |
||||
|
|
||||
|
stages: |
||||
|
- build |
||||
|
- test |
||||
|
- tag |
||||
|
|
||||
|
build_job: |
||||
|
stage: build |
||||
|
script: |
||||
|
- echo "[ProjectName] - Build project..." |
||||
|
- dotnet build --configuration Release |
||||
|
only: |
||||
|
- dev |
||||
|
|
||||
|
test_job: |
||||
|
stage: test |
||||
|
script: |
||||
|
- echo "[ProjectName] - Unit testing..." |
||||
|
- dotnet test --no-build --configuration Release |
||||
|
dependencies: |
||||
|
- build_job |
||||
|
only: |
||||
|
- dev |
||||
|
|
||||
|
tag_job: |
||||
|
stage: tag |
||||
|
only: |
||||
|
- main |
||||
|
script: |
||||
|
- echo "[ProjectName] - Tag project..." |
||||
|
# 获取 common.props 中定义的版本号 |
||||
|
- export VERSION=$(sed -n 's/.*<Version>\([0-9]*\.[0-9]*\.[0-9]*\)<\/Version>.*/\1/p' common.props) |
||||
|
- echo $VERSION |
||||
|
|
||||
|
# 此处 yougitlab.com 替换为自己的 gitlab 服务器 |
||||
|
- git config --global user.email "ci@yougitlab.com" |
||||
|
- git config --global user.name "GitLab CI Bot" |
||||
|
|
||||
|
- git tag -f $VERSION |
||||
|
# 此处 yougitlab.com 替换为自己的 gitlab 服务器, 如未启用 https, 变更为 http://oauth2:$GITLAB_TOKEN@yougitlab.com/$CI_PROJECT_PATH.git |
||||
|
# 此处 $GITLAB_TOKEN 需要在gitlab服务器中配置 GITLAB_TOKEN 变量 |
||||
|
- git remote set-url origin https://oauth2:$GITLAB_TOKEN@yougitlab.com/$CI_PROJECT_PATH.git |
||||
|
- git push --force origin $VERSION |
||||
@ -0,0 +1,165 @@ |
|||||
|
|
||||
|
Microsoft Visual Studio Solution File, Format Version 12.00 |
||||
|
# Visual Studio Version 17 |
||||
|
VisualStudioVersion = 17.0.31903.59 |
||||
|
MinimumVisualStudioVersion = 10.0.40219.1 |
||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{4B0AD527-99B3-49A9-8A45-FD8671F8BE4D}" |
||||
|
EndProject |
||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.HttpApi.Host", "host\PackageName.CompanyName.ProjectName.HttpApi.Host\PackageName.CompanyName.ProjectName.HttpApi.Host.csproj", "{31E33CE2-71D3-43FF-9A30-2DCC82C607AE}" |
||||
|
EndProject |
||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".Solution Items", ".Solution Items", "{C9675742-7986-4BC1-9781-FD1C3C5B6287}" |
||||
|
ProjectSection(SolutionItems) = preProject |
||||
|
common.props = common.props |
||||
|
configureawait.props = configureawait.props |
||||
|
Directory.Build.props = Directory.Build.props |
||||
|
Directory.Packages.props = Directory.Packages.props |
||||
|
NuGet.Config = NuGet.Config |
||||
|
EndProjectSection |
||||
|
EndProject |
||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "host", "host", "{4786387C-C1C5-46F8-806F-EBC54DB0A4FA}" |
||||
|
EndProject |
||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{A9CB1547-1C2C-4A23-82EC-C834C1626E0A}" |
||||
|
EndProject |
||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.Application.Tests", "tests\PackageName.CompanyName.ProjectName.Application.Tests\PackageName.CompanyName.ProjectName.Application.Tests.csproj", "{9262FE7A-76B2-424F-8C34-AFA1D95D7E5A}" |
||||
|
EndProject |
||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.Domain.Tests", "tests\PackageName.CompanyName.ProjectName.Domain.Tests\PackageName.CompanyName.ProjectName.Domain.Tests.csproj", "{A0D1F8A4-3494-4E26-9E2D-DB874B93DBCE}" |
||||
|
EndProject |
||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.EntityFrameworkCore.Tests", "tests\PackageName.CompanyName.ProjectName.EntityFrameworkCore.Tests\PackageName.CompanyName.ProjectName.EntityFrameworkCore.Tests.csproj", "{0B2E1C9E-092D-4E5F-BE9F-5506E689FC85}" |
||||
|
EndProject |
||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.TestBase", "tests\PackageName.CompanyName.ProjectName.TestBase\PackageName.CompanyName.ProjectName.TestBase.csproj", "{4A9D43A2-D08B-40E8-9C74-F2B95BF81AED}" |
||||
|
EndProject |
||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.DbMigrator", "migrations\PackageName.CompanyName.ProjectName.DbMigrator\PackageName.CompanyName.ProjectName.DbMigrator.csproj", "{F6EE5BCD-69C7-4C8A-8B45-251AFE2BB01E}" |
||||
|
EndProject |
||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.Domain.Shared", "src\PackageName.CompanyName.ProjectName.Domain.Shared\PackageName.CompanyName.ProjectName.Domain.Shared.csproj", "{77090F97-BD80-4469-842F-F5769CF849E9}" |
||||
|
EndProject |
||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.Domain", "src\PackageName.CompanyName.ProjectName.Domain\PackageName.CompanyName.ProjectName.Domain.csproj", "{DF2CCF03-95D5-4BE4-8B32-742818C56F15}" |
||||
|
EndProject |
||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.Application.Contracts", "src\PackageName.CompanyName.ProjectName.Application.Contracts\PackageName.CompanyName.ProjectName.Application.Contracts.csproj", "{54FB9929-7D9C-40FC-A0D0-94ACBA37D20E}" |
||||
|
EndProject |
||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.Application", "src\PackageName.CompanyName.ProjectName.Application\PackageName.CompanyName.ProjectName.Application.csproj", "{F2A6182F-BCB9-4C80-947C-0A2ED1B6BFDB}" |
||||
|
EndProject |
||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.Dapr.Client", "src\PackageName.CompanyName.ProjectName.Dapr.Client\PackageName.CompanyName.ProjectName.Dapr.Client.csproj", "{B69F04FF-8505-49F6-9B60-BB800846C87C}" |
||||
|
EndProject |
||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.EntityFrameworkCore", "src\PackageName.CompanyName.ProjectName.EntityFrameworkCore\PackageName.CompanyName.ProjectName.EntityFrameworkCore.csproj", "{09CA7186-DBA7-4428-A1ED-31292AC02050}" |
||||
|
EndProject |
||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.HttpApi", "src\PackageName.CompanyName.ProjectName.HttpApi\PackageName.CompanyName.ProjectName.HttpApi.csproj", "{FDB3A3E9-C072-438D-8B8D-2AA957C1167F}" |
||||
|
EndProject |
||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.HttpApi.Client", "src\PackageName.CompanyName.ProjectName.HttpApi.Client\PackageName.CompanyName.ProjectName.HttpApi.Client.csproj", "{8CE7C515-CD78-42D4-A9D7-39D217A3D046}" |
||||
|
EndProject |
||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageName.CompanyName.ProjectName.SettingManagement", "src\PackageName.CompanyName.ProjectName.SettingManagement\PackageName.CompanyName.ProjectName.SettingManagement.csproj", "{CAEB3435-A332-4FFA-BE5F-4E386FA8B19B}" |
||||
|
EndProject |
||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore", "migrations\PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore\PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore.csproj", "{285408F0-EF7A-41B8-9828-A9B9C84E635F}" |
||||
|
EndProject |
||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "migrations", "migrations", "{02EA681E-C7D8-13C7-8484-4AC65E1B71E8}" |
||||
|
ProjectSection(SolutionItems) = preProject |
||||
|
migrations\migrations-database.ps1 = migrations\migrations-database.ps1 |
||||
|
EndProjectSection |
||||
|
EndProject |
||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".deploy", ".deploy", "{46954769-3C8A-4E05-912A-91B896A91B97}" |
||||
|
ProjectSection(SolutionItems) = preProject |
||||
|
deploy\docker-compose.override.yml = deploy\docker-compose.override.yml |
||||
|
deploy\deployment.yaml = deploy\deployment.yaml |
||||
|
deploy\docker-compose.yml = deploy\docker-compose.yml |
||||
|
EndProjectSection |
||||
|
EndProject |
||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".workflows", ".workflows", "{CE7B8857-00E7-4903-A7C1-0285398616A8}" |
||||
|
ProjectSection(SolutionItems) = preProject |
||||
|
.gitlab-ci.yml = .gitlab-ci.yml |
||||
|
EndProjectSection |
||||
|
EndProject |
||||
|
Global |
||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution |
||||
|
Debug|Any CPU = Debug|Any CPU |
||||
|
Release|Any CPU = Release|Any CPU |
||||
|
EndGlobalSection |
||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution |
||||
|
{31E33CE2-71D3-43FF-9A30-2DCC82C607AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
|
{31E33CE2-71D3-43FF-9A30-2DCC82C607AE}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
|
{31E33CE2-71D3-43FF-9A30-2DCC82C607AE}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
|
{31E33CE2-71D3-43FF-9A30-2DCC82C607AE}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
|
{9262FE7A-76B2-424F-8C34-AFA1D95D7E5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
|
{9262FE7A-76B2-424F-8C34-AFA1D95D7E5A}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
|
{9262FE7A-76B2-424F-8C34-AFA1D95D7E5A}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
|
{9262FE7A-76B2-424F-8C34-AFA1D95D7E5A}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
|
{A0D1F8A4-3494-4E26-9E2D-DB874B93DBCE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
|
{A0D1F8A4-3494-4E26-9E2D-DB874B93DBCE}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
|
{A0D1F8A4-3494-4E26-9E2D-DB874B93DBCE}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
|
{A0D1F8A4-3494-4E26-9E2D-DB874B93DBCE}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
|
{0B2E1C9E-092D-4E5F-BE9F-5506E689FC85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
|
{0B2E1C9E-092D-4E5F-BE9F-5506E689FC85}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
|
{0B2E1C9E-092D-4E5F-BE9F-5506E689FC85}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
|
{0B2E1C9E-092D-4E5F-BE9F-5506E689FC85}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
|
{4A9D43A2-D08B-40E8-9C74-F2B95BF81AED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
|
{4A9D43A2-D08B-40E8-9C74-F2B95BF81AED}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
|
{4A9D43A2-D08B-40E8-9C74-F2B95BF81AED}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
|
{4A9D43A2-D08B-40E8-9C74-F2B95BF81AED}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
|
{F6EE5BCD-69C7-4C8A-8B45-251AFE2BB01E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
|
{F6EE5BCD-69C7-4C8A-8B45-251AFE2BB01E}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
|
{F6EE5BCD-69C7-4C8A-8B45-251AFE2BB01E}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
|
{F6EE5BCD-69C7-4C8A-8B45-251AFE2BB01E}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
|
{77090F97-BD80-4469-842F-F5769CF849E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
|
{77090F97-BD80-4469-842F-F5769CF849E9}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
|
{77090F97-BD80-4469-842F-F5769CF849E9}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
|
{77090F97-BD80-4469-842F-F5769CF849E9}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
|
{DF2CCF03-95D5-4BE4-8B32-742818C56F15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
|
{DF2CCF03-95D5-4BE4-8B32-742818C56F15}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
|
{DF2CCF03-95D5-4BE4-8B32-742818C56F15}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
|
{DF2CCF03-95D5-4BE4-8B32-742818C56F15}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
|
{54FB9929-7D9C-40FC-A0D0-94ACBA37D20E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
|
{54FB9929-7D9C-40FC-A0D0-94ACBA37D20E}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
|
{54FB9929-7D9C-40FC-A0D0-94ACBA37D20E}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
|
{54FB9929-7D9C-40FC-A0D0-94ACBA37D20E}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
|
{F2A6182F-BCB9-4C80-947C-0A2ED1B6BFDB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
|
{F2A6182F-BCB9-4C80-947C-0A2ED1B6BFDB}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
|
{F2A6182F-BCB9-4C80-947C-0A2ED1B6BFDB}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
|
{F2A6182F-BCB9-4C80-947C-0A2ED1B6BFDB}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
|
{B69F04FF-8505-49F6-9B60-BB800846C87C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
|
{B69F04FF-8505-49F6-9B60-BB800846C87C}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
|
{B69F04FF-8505-49F6-9B60-BB800846C87C}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
|
{B69F04FF-8505-49F6-9B60-BB800846C87C}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
|
{09CA7186-DBA7-4428-A1ED-31292AC02050}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
|
{09CA7186-DBA7-4428-A1ED-31292AC02050}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
|
{09CA7186-DBA7-4428-A1ED-31292AC02050}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
|
{09CA7186-DBA7-4428-A1ED-31292AC02050}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
|
{FDB3A3E9-C072-438D-8B8D-2AA957C1167F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
|
{FDB3A3E9-C072-438D-8B8D-2AA957C1167F}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
|
{FDB3A3E9-C072-438D-8B8D-2AA957C1167F}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
|
{FDB3A3E9-C072-438D-8B8D-2AA957C1167F}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
|
{8CE7C515-CD78-42D4-A9D7-39D217A3D046}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
|
{8CE7C515-CD78-42D4-A9D7-39D217A3D046}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
|
{8CE7C515-CD78-42D4-A9D7-39D217A3D046}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
|
{8CE7C515-CD78-42D4-A9D7-39D217A3D046}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
|
{CAEB3435-A332-4FFA-BE5F-4E386FA8B19B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
|
{CAEB3435-A332-4FFA-BE5F-4E386FA8B19B}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
|
{CAEB3435-A332-4FFA-BE5F-4E386FA8B19B}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
|
{CAEB3435-A332-4FFA-BE5F-4E386FA8B19B}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
|
{285408F0-EF7A-41B8-9828-A9B9C84E635F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
|
{285408F0-EF7A-41B8-9828-A9B9C84E635F}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
|
{285408F0-EF7A-41B8-9828-A9B9C84E635F}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
|
{285408F0-EF7A-41B8-9828-A9B9C84E635F}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
|
EndGlobalSection |
||||
|
GlobalSection(SolutionProperties) = preSolution |
||||
|
HideSolutionNode = FALSE |
||||
|
EndGlobalSection |
||||
|
GlobalSection(NestedProjects) = preSolution |
||||
|
{31E33CE2-71D3-43FF-9A30-2DCC82C607AE} = {4786387C-C1C5-46F8-806F-EBC54DB0A4FA} |
||||
|
{9262FE7A-76B2-424F-8C34-AFA1D95D7E5A} = {A9CB1547-1C2C-4A23-82EC-C834C1626E0A} |
||||
|
{A0D1F8A4-3494-4E26-9E2D-DB874B93DBCE} = {A9CB1547-1C2C-4A23-82EC-C834C1626E0A} |
||||
|
{0B2E1C9E-092D-4E5F-BE9F-5506E689FC85} = {A9CB1547-1C2C-4A23-82EC-C834C1626E0A} |
||||
|
{4A9D43A2-D08B-40E8-9C74-F2B95BF81AED} = {A9CB1547-1C2C-4A23-82EC-C834C1626E0A} |
||||
|
{F6EE5BCD-69C7-4C8A-8B45-251AFE2BB01E} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} |
||||
|
{77090F97-BD80-4469-842F-F5769CF849E9} = {4B0AD527-99B3-49A9-8A45-FD8671F8BE4D} |
||||
|
{DF2CCF03-95D5-4BE4-8B32-742818C56F15} = {4B0AD527-99B3-49A9-8A45-FD8671F8BE4D} |
||||
|
{54FB9929-7D9C-40FC-A0D0-94ACBA37D20E} = {4B0AD527-99B3-49A9-8A45-FD8671F8BE4D} |
||||
|
{F2A6182F-BCB9-4C80-947C-0A2ED1B6BFDB} = {4B0AD527-99B3-49A9-8A45-FD8671F8BE4D} |
||||
|
{B69F04FF-8505-49F6-9B60-BB800846C87C} = {4B0AD527-99B3-49A9-8A45-FD8671F8BE4D} |
||||
|
{09CA7186-DBA7-4428-A1ED-31292AC02050} = {4B0AD527-99B3-49A9-8A45-FD8671F8BE4D} |
||||
|
{FDB3A3E9-C072-438D-8B8D-2AA957C1167F} = {4B0AD527-99B3-49A9-8A45-FD8671F8BE4D} |
||||
|
{8CE7C515-CD78-42D4-A9D7-39D217A3D046} = {4B0AD527-99B3-49A9-8A45-FD8671F8BE4D} |
||||
|
{CAEB3435-A332-4FFA-BE5F-4E386FA8B19B} = {4B0AD527-99B3-49A9-8A45-FD8671F8BE4D} |
||||
|
{285408F0-EF7A-41B8-9828-A9B9C84E635F} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} |
||||
|
EndGlobalSection |
||||
|
GlobalSection(ExtensibilityGlobals) = postSolution |
||||
|
SolutionGuid = {62C0F185-E2C2-46A2-B4B2-5E703E25849E} |
||||
|
EndGlobalSection |
||||
|
EndGlobal |
||||
@ -0,0 +1,89 @@ |
|||||
|
# ProjectName Pod |
||||
|
apiVersion: apps/v1 |
||||
|
kind: Deployment |
||||
|
metadata: |
||||
|
name: project-name-api |
||||
|
labels: |
||||
|
name: project-name-api |
||||
|
spec: |
||||
|
replicas: 1 |
||||
|
selector: |
||||
|
matchLabels: |
||||
|
name: project-name-api |
||||
|
template: |
||||
|
metadata: |
||||
|
labels: |
||||
|
name: project-name-api |
||||
|
spec: |
||||
|
containers: |
||||
|
- name: project-name-api |
||||
|
image: project-name-api:latest |
||||
|
env: |
||||
|
- name: ASPNETCORE_ENVIRONMENT |
||||
|
value: Production |
||||
|
# 时区问题自行修改 |
||||
|
# - name: TZ |
||||
|
# value: "Asia/Shanghai" |
||||
|
ports: |
||||
|
- containerPort: 8080 |
||||
|
imagePullPolicy: Always |
||||
|
livenessProbe: |
||||
|
httpGet: |
||||
|
path: /healthz |
||||
|
port: 8080 |
||||
|
volumeMounts: |
||||
|
# appsettings挂载 |
||||
|
# - mountPath: /app/appsettings.Production.json |
||||
|
# name: volume-cmkw2z |
||||
|
# subPath: appsettings.Production.json |
||||
|
- mountPath: /app/Logs |
||||
|
name: volume-xk3mds |
||||
|
subPath: ./logs |
||||
|
- mountPath: /app/Modules |
||||
|
name: volume-xk3mds |
||||
|
subPath: ./modules |
||||
|
volumes: |
||||
|
# 其他存储挂载自行处理 |
||||
|
- hostPath: |
||||
|
path: /var/opt/project-name |
||||
|
type: DirectoryOrCreate |
||||
|
# 注意变更名称 |
||||
|
name: volume-xk3mds |
||||
|
# appsettings挂载 |
||||
|
# - configMap: |
||||
|
# defaultMode: 420 |
||||
|
# name: project-name-api |
||||
|
# name: volume-cmkw2z |
||||
|
|
||||
|
--- |
||||
|
# ProjectName Service |
||||
|
kind: Service |
||||
|
apiVersion: v1 |
||||
|
metadata: |
||||
|
name: project-name-api |
||||
|
spec: |
||||
|
type: ClusterIP |
||||
|
ports: |
||||
|
- port: 8080 |
||||
|
selector: |
||||
|
name: project-name-api |
||||
|
|
||||
|
--- |
||||
|
# ProjectName Ingress |
||||
|
kind: Ingress |
||||
|
apiVersion: networking.k8s.io/v1 |
||||
|
metadata: |
||||
|
name: project-name-api |
||||
|
spec: |
||||
|
ingressClassName: nginx |
||||
|
rules: |
||||
|
- host: "project-name-api.local" |
||||
|
http: |
||||
|
paths: |
||||
|
- path: /api/project-name |
||||
|
pathType: Prefix |
||||
|
backend: |
||||
|
service: |
||||
|
name: project-name-api |
||||
|
port: |
||||
|
number: 8080 |
||||
@ -0,0 +1,9 @@ |
|||||
|
services: |
||||
|
project-name-api: |
||||
|
build: |
||||
|
context: ../host/PackageName.CompanyName.ProjectName.HttpApi.Host/bin/Release/net9.0 |
||||
|
dockerfile: ../host/PackageName.CompanyName.ProjectName.HttpApi.Host/Dockerfile |
||||
|
volumes: |
||||
|
- /var/opt/project-name/logs:/app/Logs |
||||
|
- /var/opt/project-name/modules:/app/Modules |
||||
|
restart: always |
||||
@ -0,0 +1,15 @@ |
|||||
|
services: |
||||
|
project-name-api: |
||||
|
hostname: project-name-api |
||||
|
container_name: project-name-api |
||||
|
environment: |
||||
|
- ASPNETCORE_ENVIRONMENT=Production |
||||
|
# 时区问题自行修改 |
||||
|
# - TZ=Asia/Shanghai |
||||
|
ports: |
||||
|
- "5000:8080" |
||||
|
healthcheck: |
||||
|
test: ["CMD-SHELL", "wget --spider http://localhost/healthz || exit"] |
||||
|
interval: 10s |
||||
|
timeout: 5s |
||||
|
retries: 5 |
||||
@ -1,147 +0,0 @@ |
|||||
{ |
|
||||
"AgileConfig": { |
|
||||
"IsEnabled": false, |
|
||||
"env": "DEV", |
|
||||
"appId": "PackageName.CompanyName.ProjectName", |
|
||||
"secret": "1q2w3E*", |
|
||||
"nodes": "http://127.0.0.1:15000", |
|
||||
"name": "PackageName.CompanyName.ProjectName", |
|
||||
"tag": "PackageName.CompanyName.ProjectName" |
|
||||
}, |
|
||||
"Auditing": { |
|
||||
"AllEntitiesSelector": true |
|
||||
}, |
|
||||
"DistributedCache": { |
|
||||
"HideErrors": true, |
|
||||
"KeyPrefix": "LINGYUN.Abp.Application", |
|
||||
"GlobalCacheEntryOptions": { |
|
||||
"SlidingExpiration": "30:00:00", |
|
||||
"AbsoluteExpirationRelativeToNow": "60:00:00" |
|
||||
} |
|
||||
}, |
|
||||
"ConnectionStrings": { |
|
||||
"Default": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456", |
|
||||
"ProjectName": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456", |
|
||||
"AbpSaas": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456", |
|
||||
"AbpFeatureManagement": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456", |
|
||||
"AbpPermissionManagement": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456", |
|
||||
"AbpSettingManagement": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456", |
|
||||
"AbpLocalizationManagement": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456", |
|
||||
"AbpTextTemplating": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456" |
|
||||
}, |
|
||||
"DistributedLock": { |
|
||||
"IsEnabled": true, |
|
||||
"Redis": { |
|
||||
"Configuration": "127.0.0.1,defaultDatabase=15" |
|
||||
} |
|
||||
}, |
|
||||
"OpenTelemetry": { |
|
||||
"IsEnabled": true, |
|
||||
"ZipKin": { |
|
||||
"Endpoint": "http://127.0.0.1:9411/api/v2/spans" |
|
||||
} |
|
||||
}, |
|
||||
"RemoteServices": {}, |
|
||||
"IdentityClients": { |
|
||||
"InternalServiceClient": { |
|
||||
"Authority": "http://127.0.0.1:44385", |
|
||||
"RequireHttps": false, |
|
||||
"GrantType": "client_credentials", |
|
||||
"Scope": "lingyun-abp-application", |
|
||||
"ClientId": "InternalServiceClient", |
|
||||
"ClientSecret": "1q2w3E*" |
|
||||
} |
|
||||
}, |
|
||||
"CAP": { |
|
||||
"EventBus": { |
|
||||
"DefaultGroupName": "ProjectName", |
|
||||
"GroupNamePrefix": "Dev", |
|
||||
"Version": "v1", |
|
||||
"FailedRetryInterval": 300, |
|
||||
"FailedRetryCount": 10 |
|
||||
}, |
|
||||
"MySql": { |
|
||||
"TableNamePrefix": "ProjectName_cap", |
|
||||
"ConnectionString": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456" |
|
||||
}, |
|
||||
"SqlServer": { |
|
||||
"TableNamePrefix": "ProjectName_cap", |
|
||||
"ConnectionString": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456" |
|
||||
}, |
|
||||
"Sqlite": { |
|
||||
"TableNamePrefix": "ProjectName_cap", |
|
||||
"ConnectionString": "Data Source=./cap.db" |
|
||||
}, |
|
||||
"Oracle": { |
|
||||
"TableNamePrefix": "ProjectName_cap", |
|
||||
"ConnectionString": "Data Source=ProjectName;Integrated Security=yes;" |
|
||||
}, |
|
||||
"PostgreSql": { |
|
||||
"TableNamePrefix": "ProjectName_cap", |
|
||||
"ConnectionString": "Host=localhost;Port=5432;Database=ProjectName;User ID=root;Password=123456;" |
|
||||
}, |
|
||||
"RabbitMQ": { |
|
||||
"HostName": "127.0.0.1", |
|
||||
"Port": 5672, |
|
||||
"UserName": "admin", |
|
||||
"Password": "123456", |
|
||||
"ExchangeName": "LINGYUN.Abp.Application", |
|
||||
"VirtualHost": "/" |
|
||||
} |
|
||||
}, |
|
||||
"Redis": { |
|
||||
"Configuration": "127.0.0.1,defaultDatabase=10", |
|
||||
"InstanceName": "LINGYUN.Abp.Application" |
|
||||
}, |
|
||||
"AuthServer": { |
|
||||
"Authority": "http://127.0.0.1:44385/", |
|
||||
"Audience": "lingyun-abp-application", |
|
||||
"MapInboundClaims": false, |
|
||||
"RequireHttpsMetadata": false, |
|
||||
"SwaggerClientId": "InternalServiceClient", |
|
||||
"SwaggerClientSecret": "1q2w3E*" |
|
||||
}, |
|
||||
"Logging": { |
|
||||
"Serilog": { |
|
||||
"Elasticsearch": { |
|
||||
"IndexFormat": "abp.dev.logging-{0:yyyy.MM.dd}" |
|
||||
} |
|
||||
} |
|
||||
}, |
|
||||
"AuditLogging": { |
|
||||
"Elasticsearch": { |
|
||||
"IndexPrefix": "abp.dev.auditing" |
|
||||
} |
|
||||
}, |
|
||||
"Elasticsearch": { |
|
||||
"NodeUris": "http://127.0.0.1:9200" |
|
||||
}, |
|
||||
"Serilog": { |
|
||||
"MinimumLevel": { |
|
||||
"Default": "Debug", |
|
||||
"Override": { |
|
||||
"System": "Warning", |
|
||||
"Microsoft": "Warning", |
|
||||
"DotNetCore": "Debug" |
|
||||
} |
|
||||
}, |
|
||||
"WriteTo": [ |
|
||||
{ |
|
||||
"Name": "Console", |
|
||||
"Args": { |
|
||||
"restrictedToMinimumLevel": "Debug", |
|
||||
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}" |
|
||||
} |
|
||||
}, |
|
||||
{ |
|
||||
"Name": "Elasticsearch", |
|
||||
"Args": { |
|
||||
"nodeUris": "http://127.0.0.1:9200", |
|
||||
"indexFormat": "abp.dev.logging-{0:yyyy.MM.dd}", |
|
||||
"autoRegisterTemplate": true, |
|
||||
"autoRegisterTemplateVersion": "ESv7" |
|
||||
} |
|
||||
} |
|
||||
] |
|
||||
} |
|
||||
} |
|
||||
@ -1,83 +0,0 @@ |
|||||
{ |
|
||||
"ConnectionStrings": { |
|
||||
"Default": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456" |
|
||||
}, |
|
||||
"StringEncryption": { |
|
||||
"DefaultPassPhrase": "s46c5q55nxpeS8Ra", |
|
||||
"InitVectorBytes": "s83ng0abvd02js84", |
|
||||
"DefaultSalt": "sf&5)s3#" |
|
||||
}, |
|
||||
"AllowedHosts": "*", |
|
||||
"Serilog": { |
|
||||
"MinimumLevel": { |
|
||||
"Default": "Debug", |
|
||||
"Override": { |
|
||||
"Microsoft.EntityFrameworkCore": "Debug", |
|
||||
"System": "Information", |
|
||||
"Microsoft": "Information" |
|
||||
} |
|
||||
}, |
|
||||
"Enrich": [ "FromLogContext", "WithProcessId", "WithThreadId", "WithEnvironmentName", "WithMachineName", "WithApplicationName", "WithUniqueId" ], |
|
||||
"WriteTo": [ |
|
||||
{ |
|
||||
"Name": "Console", |
|
||||
"Args": { |
|
||||
"initialMinimumLevel": "Verbose", |
|
||||
"standardErrorFromLevel": "Verbose", |
|
||||
"restrictedToMinimumLevel": "Verbose", |
|
||||
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}" |
|
||||
} |
|
||||
}, |
|
||||
{ |
|
||||
"Name": "File", |
|
||||
"Args": { |
|
||||
"path": "Logs/Debug-.log", |
|
||||
"restrictedToMinimumLevel": "Debug", |
|
||||
"rollingInterval": "Day", |
|
||||
"fileSizeLimitBytes": 5242880, |
|
||||
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}" |
|
||||
} |
|
||||
}, |
|
||||
{ |
|
||||
"Name": "File", |
|
||||
"Args": { |
|
||||
"path": "Logs/Info-.log", |
|
||||
"restrictedToMinimumLevel": "Information", |
|
||||
"rollingInterval": "Day", |
|
||||
"fileSizeLimitBytes": 5242880, |
|
||||
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}" |
|
||||
} |
|
||||
}, |
|
||||
{ |
|
||||
"Name": "File", |
|
||||
"Args": { |
|
||||
"path": "Logs/Warn-.log", |
|
||||
"restrictedToMinimumLevel": "Warning", |
|
||||
"rollingInterval": "Day", |
|
||||
"fileSizeLimitBytes": 5242880, |
|
||||
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}" |
|
||||
} |
|
||||
}, |
|
||||
{ |
|
||||
"Name": "File", |
|
||||
"Args": { |
|
||||
"path": "Logs/Error-.log", |
|
||||
"restrictedToMinimumLevel": "Error", |
|
||||
"rollingInterval": "Day", |
|
||||
"fileSizeLimitBytes": 5242880, |
|
||||
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}" |
|
||||
} |
|
||||
}, |
|
||||
{ |
|
||||
"Name": "File", |
|
||||
"Args": { |
|
||||
"path": "Logs/Fatal-.log", |
|
||||
"restrictedToMinimumLevel": "Fatal", |
|
||||
"rollingInterval": "Day", |
|
||||
"fileSizeLimitBytes": 5242880, |
|
||||
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}" |
|
||||
} |
|
||||
} |
|
||||
] |
|
||||
} |
|
||||
} |
|
||||
@ -0,0 +1,3 @@ |
|||||
|
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
||||
|
<ConfigureAwait ContinueOnCapturedContext="false" /> |
||||
|
</Weavers> |
||||
28
aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/PackageName.CompanyName.ProjectName.DbMigrator.csproj → aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore.csproj
28
aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.DbMigrator/PackageName.CompanyName.ProjectName.DbMigrator.csproj → aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore.csproj
@ -0,0 +1,62 @@ |
|||||
|
using Microsoft.EntityFrameworkCore; |
||||
|
using Microsoft.EntityFrameworkCore.Design; |
||||
|
using Microsoft.Extensions.Configuration; |
||||
|
using System; |
||||
|
using System.IO; |
||||
|
|
||||
|
namespace PackageName.CompanyName.ProjectName.EntityFrameworkCore; |
||||
|
public class ProjectNameDbContextFactory : IDesignTimeDbContextFactory<ProjectNameDbContext> |
||||
|
{ |
||||
|
public ProjectNameDbContext CreateDbContext(string[] args) |
||||
|
{ |
||||
|
var configuration = BuildConfiguration(); |
||||
|
var connectionString = configuration.GetConnectionString("ProjectName"); |
||||
|
|
||||
|
DbContextOptionsBuilder<ProjectNameDbContext> builder = null; |
||||
|
|
||||
|
try |
||||
|
{ |
||||
|
#if MySQL
|
||||
|
builder = new DbContextOptionsBuilder<ProjectNameDbContext>() |
||||
|
.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString), b => |
||||
|
b.MigrationsAssembly(GetType().Assembly)); |
||||
|
#elif SqlServer
|
||||
|
builder = new DbContextOptionsBuilder<ProjectNameDbContext>() |
||||
|
.UseSqlServer(connectionString, b => b.MigrationsAssembly(GetType().Assembly)); |
||||
|
#elif Sqlite
|
||||
|
builder = new DbContextOptionsBuilder<ProjectNameDbContext>() |
||||
|
.UseSqlite(connectionString, b => b.MigrationsAssembly(GetType().Assembly)); |
||||
|
#elif Oracle
|
||||
|
builder = new DbContextOptionsBuilder<ProjectNameDbContext>() |
||||
|
.UseOracle(connectionString, b => b.MigrationsAssembly(GetType().Assembly)); |
||||
|
#elif OracleDevart
|
||||
|
builder = (DbContextOptionsBuilder<ProjectNameDbContext>) new DbContextOptionsBuilder<ProjectNameDbContext>() |
||||
|
.UseOracle(connectionString, b => b.MigrationsAssembly(GetType().Assembly)); |
||||
|
#elif PostgreSql
|
||||
|
builder = new DbContextOptionsBuilder<ProjectNameDbContext>() |
||||
|
.UseNpgsql(connectionString, b => b.MigrationsAssembly(GetType().Assembly)); |
||||
|
#endif
|
||||
|
return new ProjectNameDbContext(builder!.Options); |
||||
|
} |
||||
|
catch (Exception ex) |
||||
|
{ |
||||
|
Console.ForegroundColor = ConsoleColor.Red; |
||||
|
|
||||
|
Console.WriteLine("[ProjectName] - Database migrations failed: {message}", ex.Message); |
||||
|
|
||||
|
Console.ResetColor(); |
||||
|
|
||||
|
throw; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private static IConfigurationRoot BuildConfiguration() |
||||
|
{ |
||||
|
var builder = new ConfigurationBuilder() |
||||
|
.SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), "../PackageName.CompanyName.ProjectName.DbMigrator/")) |
||||
|
.AddJsonFile("appsettings.json", optional: false); |
||||
|
|
||||
|
return builder.Build(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
0
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/ProjectNameDbMigrationEventHandler.cs → aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/ProjectNameDbMigrationEventHandler.cs
0
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/ProjectNameDbMigrationEventHandler.cs → aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/ProjectNameDbMigrationEventHandler.cs
14
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/ProjectNameDbMigrationService.cs → aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/ProjectNameDbMigrationService.cs
14
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.EntityFrameworkCore/PackageName/CompanyName/ProjectName/EntityFrameworkCore/ProjectNameDbMigrationService.cs → aspnet-core/templates/micro/content/migrations/PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore/ProjectNameDbMigrationService.cs
@ -0,0 +1,105 @@ |
|||||
|
using LINGYUN.Abp.Data.DbMigrator; |
||||
|
using LINGYUN.Abp.DataProtection.EntityFrameworkCore; |
||||
|
using LINGYUN.Abp.Saas.EntityFrameworkCore; |
||||
|
using Microsoft.Extensions.DependencyInjection; |
||||
|
using Volo.Abp.Data; |
||||
|
using Volo.Abp.EntityFrameworkCore; |
||||
|
using Volo.Abp.Modularity; |
||||
|
#if MySQL
|
||||
|
using Volo.Abp.EntityFrameworkCore.MySQL; |
||||
|
#elif SqlServer
|
||||
|
using Volo.Abp.EntityFrameworkCore.SqlServer; |
||||
|
using Microsoft.EntityFrameworkCore.Infrastructure; |
||||
|
#elif Sqlite
|
||||
|
using Volo.Abp.EntityFrameworkCore.Sqlite; |
||||
|
#elif Oracle
|
||||
|
using Volo.Abp.EntityFrameworkCore.Oracle; |
||||
|
#elif OracleDevart
|
||||
|
using Volo.Abp.EntityFrameworkCore.Oracle.Devart; |
||||
|
#elif PostgreSql
|
||||
|
using Volo.Abp.EntityFrameworkCore.PostgreSql; |
||||
|
#endif
|
||||
|
|
||||
|
namespace PackageName.CompanyName.ProjectName.EntityFrameworkCore; |
||||
|
|
||||
|
[DependsOn( |
||||
|
typeof(AbpDataDbMigratorModule), |
||||
|
typeof(ProjectNameEntityFrameworkCoreModule), |
||||
|
typeof(AbpSaasEntityFrameworkCoreModule), |
||||
|
#if MySQL
|
||||
|
typeof(AbpEntityFrameworkCoreMySQLModule), |
||||
|
#elif SqlServer
|
||||
|
typeof(AbpEntityFrameworkCoreSqlServerModule), |
||||
|
#elif Sqlite
|
||||
|
typeof(AbpEntityFrameworkCoreSqliteModule), |
||||
|
#elif Oracle
|
||||
|
typeof(AbpEntityFrameworkCoreOracleModule), |
||||
|
#elif OracleDevart
|
||||
|
typeof(AbpEntityFrameworkCoreOracleDevartModule), |
||||
|
#elif PostgreSql
|
||||
|
typeof(AbpEntityFrameworkCorePostgreSqlModule), |
||||
|
#endif
|
||||
|
typeof(AbpDataDbMigratorModule) |
||||
|
)] |
||||
|
public class ProjectNameDbMigratorEntityFrameworkCoreModule : AbpModule |
||||
|
{ |
||||
|
public override void ConfigureServices(ServiceConfigurationContext context) |
||||
|
{ |
||||
|
// 配置连接字符串
|
||||
|
Configure<AbpDbConnectionOptions>(options => |
||||
|
{ |
||||
|
// 业务数据库
|
||||
|
options.Databases.Configure("ProjectName", database => |
||||
|
{ |
||||
|
database.MapConnection( |
||||
|
"ProjectName" |
||||
|
); |
||||
|
}); |
||||
|
// abp框架数据库
|
||||
|
options.Databases.Configure("Framework", database => |
||||
|
{ |
||||
|
database.MapConnection( |
||||
|
"AbpSaas", |
||||
|
"AbpTextTemplating", |
||||
|
"AbpSettingManagement", |
||||
|
"AbpFeatureManagement", |
||||
|
"AbpPermissionManagement", |
||||
|
"AbpLocalizationManagement" |
||||
|
); |
||||
|
}); |
||||
|
}); |
||||
|
|
||||
|
// 配置Ef
|
||||
|
Configure<AbpDbContextOptions>(options => |
||||
|
{ |
||||
|
#if MySQL
|
||||
|
options.UseMySQL(mysql => |
||||
|
{ |
||||
|
// see: https://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MySql/issues/1960
|
||||
|
mysql.TranslateParameterizedCollectionsToConstants(); |
||||
|
}); |
||||
|
options.UseMySQL<ProjectNameDbContext>(mysql => |
||||
|
{ |
||||
|
// see: https://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MySql/issues/1960
|
||||
|
mysql.TranslateParameterizedCollectionsToConstants(); |
||||
|
}); |
||||
|
#elif SqlServer
|
||||
|
options.UseSqlServer(); |
||||
|
options.UseSqlServer<ProjectNameDbContext>(builder => |
||||
|
{ |
||||
|
// see https://learn.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-compatibility-level?view=sql-server-ver16
|
||||
|
// builder.UseCompatibilityLevel(150);
|
||||
|
}); |
||||
|
#elif Sqlite
|
||||
|
options.UseSqlite(); |
||||
|
options.UseSqlite<ProjectNameDbContext>(); |
||||
|
#elif Oracle || OracleDevart
|
||||
|
options.UseOracle(); |
||||
|
options.UseOracle<ProjectNameDbContext>(); |
||||
|
#elif PostgreSql
|
||||
|
options.UseNpgsql(); |
||||
|
options.UseNpgsql<ProjectNameDbContext>(); |
||||
|
#endif
|
||||
|
}); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,30 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
||||
|
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. --> |
||||
|
<xs:element name="Weavers"> |
||||
|
<xs:complexType> |
||||
|
<xs:all> |
||||
|
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1"> |
||||
|
<xs:complexType> |
||||
|
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" /> |
||||
|
</xs:complexType> |
||||
|
</xs:element> |
||||
|
</xs:all> |
||||
|
<xs:attribute name="VerifyAssembly" type="xs:boolean"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
</xs:attribute> |
||||
|
<xs:attribute name="VerifyIgnoreCodes" type="xs:string"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
</xs:attribute> |
||||
|
<xs:attribute name="GenerateXsd" type="xs:boolean"> |
||||
|
<xs:annotation> |
||||
|
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation> |
||||
|
</xs:annotation> |
||||
|
</xs:attribute> |
||||
|
</xs:complexType> |
||||
|
</xs:element> |
||||
|
</xs:schema> |
||||
@ -0,0 +1,39 @@ |
|||||
|
<Project Sdk="Microsoft.NET.Sdk"> |
||||
|
|
||||
|
<Import Project="../../configureawait.props" /> |
||||
|
|
||||
|
<PropertyGroup> |
||||
|
<OutputType>Exe</OutputType> |
||||
|
<TargetFramework>net9.0</TargetFramework> |
||||
|
<ImplicitUsings>enable</ImplicitUsings> |
||||
|
<Nullable>enable</Nullable> |
||||
|
<IsPackable>false</IsPackable> |
||||
|
<LangVersion>latest</LangVersion> |
||||
|
</PropertyGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<PackageReference Include="Serilog.Extensions.Logging" /> |
||||
|
<PackageReference Include="Serilog.Sinks.File" /> |
||||
|
<PackageReference Include="Serilog.Sinks.Console" /> |
||||
|
<PackageReference Include="Microsoft.Extensions.Hosting" /> |
||||
|
<PackageReference Include="Volo.Abp.Autofac" /> |
||||
|
</ItemGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<Compile Remove="Logs\**" /> |
||||
|
<Content Remove="Logs\**" /> |
||||
|
<EmbeddedResource Remove="Logs\**" /> |
||||
|
<None Remove="Logs\**" /> |
||||
|
</ItemGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<ProjectReference Include="..\PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore\PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore.csproj" /> |
||||
|
</ItemGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<None Update="appsettings.json"> |
||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
||||
|
</None> |
||||
|
</ItemGroup> |
||||
|
|
||||
|
</Project> |
||||
@ -0,0 +1,12 @@ |
|||||
|
{ |
||||
|
"ConnectionStrings": { |
||||
|
"ProjectName": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456", |
||||
|
"Framework": "Server=127.0.0.1;Database=ProjectName;User Id=root;Password=123456" |
||||
|
}, |
||||
|
"DistributedLock": { |
||||
|
"IsEnabled": true, |
||||
|
"Redis": { |
||||
|
"Configuration": "127.0.0.1,defaultDatabase=15" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,15 @@ |
|||||
|
Write-host "[ProjectName] - migrate database..." |
||||
|
|
||||
|
Set-Location ./PackageName.CompanyName.ProjectName.DbMigrator.EntityFrameworkCore |
||||
|
dotnet ef migrations add Initial-ProjectName-Module |
||||
|
dotnet ef database update |
||||
|
|
||||
|
Write-host "[ProjectName] - database migrations successfuly completed." |
||||
|
|
||||
|
Write-host "[ProjectName] - seeding data to database..." |
||||
|
|
||||
|
Set-Location ../PackageName.CompanyName.ProjectName.DbMigrator |
||||
|
|
||||
|
dotnet run |
||||
|
|
||||
|
Write-host "[ProjectName] - seed data successfuly completed." |
||||
0
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName/CompanyName/ProjectName/Features/ProjectNameFeatureDefinitionProvider.cs → aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain.Shared/PackageName/CompanyName/ProjectName/Features/ProjectNameFeatureDefinitionProvider.cs
0
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName/CompanyName/ProjectName/Features/ProjectNameFeatureDefinitionProvider.cs → aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain.Shared/PackageName/CompanyName/ProjectName/Features/ProjectNameFeatureDefinitionProvider.cs
0
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName/CompanyName/ProjectName/Features/ProjectNameFeatureNames.cs → aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain.Shared/PackageName/CompanyName/ProjectName/Features/ProjectNameFeatureNames.cs
0
aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain/PackageName/CompanyName/ProjectName/Features/ProjectNameFeatureNames.cs → aspnet-core/templates/micro/content/src/PackageName.CompanyName.ProjectName.Domain.Shared/PackageName/CompanyName/ProjectName/Features/ProjectNameFeatureNames.cs
@ -0,0 +1,22 @@ |
|||||
|
using Microsoft.Extensions.Logging; |
||||
|
using System.Threading.Tasks; |
||||
|
using Volo.Abp.Data; |
||||
|
using Volo.Abp.DependencyInjection; |
||||
|
|
||||
|
namespace PackageName.CompanyName.ProjectName; |
||||
|
|
||||
|
public class ProjectNameDataSeedContributor : IDataSeedContributor, ITransientDependency |
||||
|
{ |
||||
|
private readonly ILogger<ProjectNameDataSeedContributor> _logger; |
||||
|
public ProjectNameDataSeedContributor(ILogger<ProjectNameDataSeedContributor> logger) |
||||
|
{ |
||||
|
_logger = logger; |
||||
|
} |
||||
|
|
||||
|
public Task SeedAsync(DataSeedContext context) |
||||
|
{ |
||||
|
_logger.LogInformation("Write your data seed logic here."); |
||||
|
|
||||
|
return Task.CompletedTask; |
||||
|
} |
||||
|
} |
||||
@ -1,49 +0,0 @@ |
|||||
using Microsoft.EntityFrameworkCore; |
|
||||
using Microsoft.EntityFrameworkCore.Design; |
|
||||
using Microsoft.Extensions.Configuration; |
|
||||
using System.IO; |
|
||||
|
|
||||
namespace PackageName.CompanyName.ProjectName.EntityFrameworkCore; |
|
||||
public class ProjectNameDbContextFactory : IDesignTimeDbContextFactory<ProjectNameDbContext> |
|
||||
{ |
|
||||
public ProjectNameDbContext CreateDbContext(string[] args) |
|
||||
{ |
|
||||
var configuration = BuildConfiguration(); |
|
||||
var connectionString = configuration.GetConnectionString("ProjectName"); |
|
||||
|
|
||||
DbContextOptionsBuilder<ProjectNameDbContext> builder = null; |
|
||||
|
|
||||
#if MySQL
|
|
||||
builder = new DbContextOptionsBuilder<ProjectNameDbContext>() |
|
||||
.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString)); |
|
||||
#elif SqlServer
|
|
||||
builder = new DbContextOptionsBuilder<ProjectNameDbContext>() |
|
||||
.UseSqlServer(connectionString); |
|
||||
#elif Sqlite
|
|
||||
builder = new DbContextOptionsBuilder<ProjectNameDbContext>() |
|
||||
.UseSqlite(connectionString); |
|
||||
#elif Oracle
|
|
||||
builder = new DbContextOptionsBuilder<ProjectNameDbContext>() |
|
||||
.UseOracle(connectionString); |
|
||||
#elif OracleDevart
|
|
||||
builder = (DbContextOptionsBuilder<ProjectNameDbContext>) new DbContextOptionsBuilder<ProjectNameDbContext>() |
|
||||
.UseOracle(connectionString); |
|
||||
#elif PostgreSql
|
|
||||
builder = new DbContextOptionsBuilder<ProjectNameDbContext>() |
|
||||
.UseNpgsql(connectionString); |
|
||||
#endif
|
|
||||
|
|
||||
return new ProjectNameDbContext(builder!.Options); |
|
||||
} |
|
||||
|
|
||||
private static IConfigurationRoot BuildConfiguration() |
|
||||
{ |
|
||||
var builder = new ConfigurationBuilder() |
|
||||
.SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), "../../host/PackageName.CompanyName.ProjectName.DbMigrator/")) |
|
||||
.AddJsonFile("appsettings.json", optional: false) |
|
||||
.AddJsonFile("appsettings.Development.json", optional: true); |
|
||||
|
|
||||
return builder.Build(); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
Loading…
Reference in new issue