Skip to content

Commit

Permalink
feat: simplify db setup (#4)
Browse files Browse the repository at this point in the history
  • Loading branch information
AngeloTadeucci authored Apr 27, 2024
1 parent 42d31bd commit 50b7ae5
Show file tree
Hide file tree
Showing 4 changed files with 194 additions and 1 deletion.
20 changes: 20 additions & 0 deletions Maple2.Database.Seed/Maple2.Database.Seed.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.3" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="7.0.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\Maple2.Database\Maple2.Database.csproj" />
<ProjectReference Include="..\Maple2.Tools\Maple2.Tools.csproj" />
</ItemGroup>

</Project>
73 changes: 73 additions & 0 deletions Maple2.Database.Seed/Program.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
using Maple2.Database.Context;
using Maple2.Tools;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using System.Diagnostics;

DotEnv.Load();

string? server = Environment.GetEnvironmentVariable("DB_IP");
string? port = Environment.GetEnvironmentVariable("DB_PORT");
string? database = Environment.GetEnvironmentVariable("DATA_DB_NAME");
string? user = Environment.GetEnvironmentVariable("DB_USER");
string? password = Environment.GetEnvironmentVariable("DB_PASSWORD");

if (server == null || port == null || database == null || user == null || password == null)
{
throw new ArgumentException("Database connection information was not set");
}

string dataDbConnection = $"Server={server};Port={port};Database={database};User={user};Password={password};oldguids=true";

string worldServerDir = Path.Combine(Paths.SOLUTION_DIR, "Maple2.Server.World");

string cmdCommand = "cd " + worldServerDir + " && dotnet ef database update";

Console.WriteLine("Migrating...");

Process process = Process.Start("CMD.exe", "/C " + cmdCommand);

process.WaitForExit();

Console.WriteLine("Migration complete!");

DbContextOptions options = new DbContextOptionsBuilder()
.UseMySql(dataDbConnection, ServerVersion.AutoDetect(dataDbConnection)).Options;

using var ms2Context = new Ms2Context(options);

string[] seeds =
{
"shops", "shop_items", "beauty_shops", "beauty_shop_items", "game_event", "system_banner", "premium_market_item"
};

Console.WriteLine("Seeding...");

foreach (string seed in seeds)
{
Seed(seed);
}

Console.WriteLine("Seeding complete!");


void Seed(string type)
{
Stopwatch stopwatch = new();

Console.Write($"Seeding {type}... ");

string fileLines = File.ReadAllText(Path.Combine(Paths.DB_SEEDS_DIR, $"{type}.sql"));
ExecuteSqlFile(fileLines);

Console.Write($"finished in {stopwatch.ElapsedMilliseconds}ms");
Console.WriteLine();
}

void ExecuteSqlFile(string fileLines)
{
fileLines = fileLines.Replace("\n", "").Replace("\r", "").Replace("\t", "").Replace("{", "{{").Replace("}", "}}");

ms2Context.Database.ExecuteSqlRaw(fileLines);
}

4 changes: 3 additions & 1 deletion Maple2.Tools/Paths.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,7 @@ namespace Maple2.Tools;
public static class Paths {
public static readonly string SOLUTION_DIR = Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "../../../.."));

public static readonly string GAME_SCRIPTS_DIR = $"{SOLUTION_DIR}/Maple2.Server.Game/Scripts";
public static readonly string GAME_SCRIPTS_DIR = Path.Combine(SOLUTION_DIR, "Maple2.Server.Game", "Scripts");

public static readonly string DB_SEEDS_DIR = Path.Combine(SOLUTION_DIR, "Maple2.Database.Seed", "Seeds");
}
98 changes: 98 additions & 0 deletions Maple2.sln
Original file line number Diff line number Diff line change
Expand Up @@ -29,52 +29,150 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
.env.example = .env.example
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Maple2.Database.Seed", "Maple2.Database.Seed\Maple2.Database.Seed.csproj", "{72D04ED1-9622-4335-AC9A-0F4C98B73101}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B2B4EC86-164D-4723-A0AA-428810D761D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B2B4EC86-164D-4723-A0AA-428810D761D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B2B4EC86-164D-4723-A0AA-428810D761D9}.Debug|x64.ActiveCfg = Debug|Any CPU
{B2B4EC86-164D-4723-A0AA-428810D761D9}.Debug|x64.Build.0 = Debug|Any CPU
{B2B4EC86-164D-4723-A0AA-428810D761D9}.Debug|x86.ActiveCfg = Debug|Any CPU
{B2B4EC86-164D-4723-A0AA-428810D761D9}.Debug|x86.Build.0 = Debug|Any CPU
{B2B4EC86-164D-4723-A0AA-428810D761D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B2B4EC86-164D-4723-A0AA-428810D761D9}.Release|Any CPU.Build.0 = Release|Any CPU
{B2B4EC86-164D-4723-A0AA-428810D761D9}.Release|x64.ActiveCfg = Release|Any CPU
{B2B4EC86-164D-4723-A0AA-428810D761D9}.Release|x64.Build.0 = Release|Any CPU
{B2B4EC86-164D-4723-A0AA-428810D761D9}.Release|x86.ActiveCfg = Release|Any CPU
{B2B4EC86-164D-4723-A0AA-428810D761D9}.Release|x86.Build.0 = Release|Any CPU
{21491E48-28A7-4643-B1D9-A9330581395D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{21491E48-28A7-4643-B1D9-A9330581395D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{21491E48-28A7-4643-B1D9-A9330581395D}.Debug|x64.ActiveCfg = Debug|Any CPU
{21491E48-28A7-4643-B1D9-A9330581395D}.Debug|x64.Build.0 = Debug|Any CPU
{21491E48-28A7-4643-B1D9-A9330581395D}.Debug|x86.ActiveCfg = Debug|Any CPU
{21491E48-28A7-4643-B1D9-A9330581395D}.Debug|x86.Build.0 = Debug|Any CPU
{21491E48-28A7-4643-B1D9-A9330581395D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{21491E48-28A7-4643-B1D9-A9330581395D}.Release|Any CPU.Build.0 = Release|Any CPU
{21491E48-28A7-4643-B1D9-A9330581395D}.Release|x64.ActiveCfg = Release|Any CPU
{21491E48-28A7-4643-B1D9-A9330581395D}.Release|x64.Build.0 = Release|Any CPU
{21491E48-28A7-4643-B1D9-A9330581395D}.Release|x86.ActiveCfg = Release|Any CPU
{21491E48-28A7-4643-B1D9-A9330581395D}.Release|x86.Build.0 = Release|Any CPU
{40400AA8-36E6-4704-969F-447ECFFDBE0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{40400AA8-36E6-4704-969F-447ECFFDBE0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{40400AA8-36E6-4704-969F-447ECFFDBE0B}.Debug|x64.ActiveCfg = Debug|Any CPU
{40400AA8-36E6-4704-969F-447ECFFDBE0B}.Debug|x64.Build.0 = Debug|Any CPU
{40400AA8-36E6-4704-969F-447ECFFDBE0B}.Debug|x86.ActiveCfg = Debug|Any CPU
{40400AA8-36E6-4704-969F-447ECFFDBE0B}.Debug|x86.Build.0 = Debug|Any CPU
{40400AA8-36E6-4704-969F-447ECFFDBE0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{40400AA8-36E6-4704-969F-447ECFFDBE0B}.Release|Any CPU.Build.0 = Release|Any CPU
{40400AA8-36E6-4704-969F-447ECFFDBE0B}.Release|x64.ActiveCfg = Release|Any CPU
{40400AA8-36E6-4704-969F-447ECFFDBE0B}.Release|x64.Build.0 = Release|Any CPU
{40400AA8-36E6-4704-969F-447ECFFDBE0B}.Release|x86.ActiveCfg = Release|Any CPU
{40400AA8-36E6-4704-969F-447ECFFDBE0B}.Release|x86.Build.0 = Release|Any CPU
{A7478B44-723D-447C-9533-0BABDD9BD1FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A7478B44-723D-447C-9533-0BABDD9BD1FF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A7478B44-723D-447C-9533-0BABDD9BD1FF}.Debug|x64.ActiveCfg = Debug|Any CPU
{A7478B44-723D-447C-9533-0BABDD9BD1FF}.Debug|x64.Build.0 = Debug|Any CPU
{A7478B44-723D-447C-9533-0BABDD9BD1FF}.Debug|x86.ActiveCfg = Debug|Any CPU
{A7478B44-723D-447C-9533-0BABDD9BD1FF}.Debug|x86.Build.0 = Debug|Any CPU
{A7478B44-723D-447C-9533-0BABDD9BD1FF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A7478B44-723D-447C-9533-0BABDD9BD1FF}.Release|Any CPU.Build.0 = Release|Any CPU
{A7478B44-723D-447C-9533-0BABDD9BD1FF}.Release|x64.ActiveCfg = Release|Any CPU
{A7478B44-723D-447C-9533-0BABDD9BD1FF}.Release|x64.Build.0 = Release|Any CPU
{A7478B44-723D-447C-9533-0BABDD9BD1FF}.Release|x86.ActiveCfg = Release|Any CPU
{A7478B44-723D-447C-9533-0BABDD9BD1FF}.Release|x86.Build.0 = Release|Any CPU
{0D7A7D52-CA81-40FD-ADA4-F94C61991809}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0D7A7D52-CA81-40FD-ADA4-F94C61991809}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0D7A7D52-CA81-40FD-ADA4-F94C61991809}.Debug|x64.ActiveCfg = Debug|Any CPU
{0D7A7D52-CA81-40FD-ADA4-F94C61991809}.Debug|x64.Build.0 = Debug|Any CPU
{0D7A7D52-CA81-40FD-ADA4-F94C61991809}.Debug|x86.ActiveCfg = Debug|Any CPU
{0D7A7D52-CA81-40FD-ADA4-F94C61991809}.Debug|x86.Build.0 = Debug|Any CPU
{0D7A7D52-CA81-40FD-ADA4-F94C61991809}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0D7A7D52-CA81-40FD-ADA4-F94C61991809}.Release|Any CPU.Build.0 = Release|Any CPU
{0D7A7D52-CA81-40FD-ADA4-F94C61991809}.Release|x64.ActiveCfg = Release|Any CPU
{0D7A7D52-CA81-40FD-ADA4-F94C61991809}.Release|x64.Build.0 = Release|Any CPU
{0D7A7D52-CA81-40FD-ADA4-F94C61991809}.Release|x86.ActiveCfg = Release|Any CPU
{0D7A7D52-CA81-40FD-ADA4-F94C61991809}.Release|x86.Build.0 = Release|Any CPU
{1AE01DB0-C088-4CC1-8B5E-B6734A5F7FC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1AE01DB0-C088-4CC1-8B5E-B6734A5F7FC4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1AE01DB0-C088-4CC1-8B5E-B6734A5F7FC4}.Debug|x64.ActiveCfg = Debug|Any CPU
{1AE01DB0-C088-4CC1-8B5E-B6734A5F7FC4}.Debug|x64.Build.0 = Debug|Any CPU
{1AE01DB0-C088-4CC1-8B5E-B6734A5F7FC4}.Debug|x86.ActiveCfg = Debug|Any CPU
{1AE01DB0-C088-4CC1-8B5E-B6734A5F7FC4}.Debug|x86.Build.0 = Debug|Any CPU
{1AE01DB0-C088-4CC1-8B5E-B6734A5F7FC4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1AE01DB0-C088-4CC1-8B5E-B6734A5F7FC4}.Release|Any CPU.Build.0 = Release|Any CPU
{1AE01DB0-C088-4CC1-8B5E-B6734A5F7FC4}.Release|x64.ActiveCfg = Release|Any CPU
{1AE01DB0-C088-4CC1-8B5E-B6734A5F7FC4}.Release|x64.Build.0 = Release|Any CPU
{1AE01DB0-C088-4CC1-8B5E-B6734A5F7FC4}.Release|x86.ActiveCfg = Release|Any CPU
{1AE01DB0-C088-4CC1-8B5E-B6734A5F7FC4}.Release|x86.Build.0 = Release|Any CPU
{71EF6666-0E40-4AD5-82F7-9C4AB61663C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{71EF6666-0E40-4AD5-82F7-9C4AB61663C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{71EF6666-0E40-4AD5-82F7-9C4AB61663C7}.Debug|x64.ActiveCfg = Debug|Any CPU
{71EF6666-0E40-4AD5-82F7-9C4AB61663C7}.Debug|x64.Build.0 = Debug|Any CPU
{71EF6666-0E40-4AD5-82F7-9C4AB61663C7}.Debug|x86.ActiveCfg = Debug|Any CPU
{71EF6666-0E40-4AD5-82F7-9C4AB61663C7}.Debug|x86.Build.0 = Debug|Any CPU
{71EF6666-0E40-4AD5-82F7-9C4AB61663C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{71EF6666-0E40-4AD5-82F7-9C4AB61663C7}.Release|Any CPU.Build.0 = Release|Any CPU
{71EF6666-0E40-4AD5-82F7-9C4AB61663C7}.Release|x64.ActiveCfg = Release|Any CPU
{71EF6666-0E40-4AD5-82F7-9C4AB61663C7}.Release|x64.Build.0 = Release|Any CPU
{71EF6666-0E40-4AD5-82F7-9C4AB61663C7}.Release|x86.ActiveCfg = Release|Any CPU
{71EF6666-0E40-4AD5-82F7-9C4AB61663C7}.Release|x86.Build.0 = Release|Any CPU
{43DBD813-5041-4054-8366-69004E2A931C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{43DBD813-5041-4054-8366-69004E2A931C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{43DBD813-5041-4054-8366-69004E2A931C}.Debug|x64.ActiveCfg = Debug|Any CPU
{43DBD813-5041-4054-8366-69004E2A931C}.Debug|x64.Build.0 = Debug|Any CPU
{43DBD813-5041-4054-8366-69004E2A931C}.Debug|x86.ActiveCfg = Debug|Any CPU
{43DBD813-5041-4054-8366-69004E2A931C}.Debug|x86.Build.0 = Debug|Any CPU
{43DBD813-5041-4054-8366-69004E2A931C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{43DBD813-5041-4054-8366-69004E2A931C}.Release|Any CPU.Build.0 = Release|Any CPU
{43DBD813-5041-4054-8366-69004E2A931C}.Release|x64.ActiveCfg = Release|Any CPU
{43DBD813-5041-4054-8366-69004E2A931C}.Release|x64.Build.0 = Release|Any CPU
{43DBD813-5041-4054-8366-69004E2A931C}.Release|x86.ActiveCfg = Release|Any CPU
{43DBD813-5041-4054-8366-69004E2A931C}.Release|x86.Build.0 = Release|Any CPU
{3A8B9906-C9F0-4655-ACF2-4DBC7C8271DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3A8B9906-C9F0-4655-ACF2-4DBC7C8271DF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3A8B9906-C9F0-4655-ACF2-4DBC7C8271DF}.Debug|x64.ActiveCfg = Debug|Any CPU
{3A8B9906-C9F0-4655-ACF2-4DBC7C8271DF}.Debug|x64.Build.0 = Debug|Any CPU
{3A8B9906-C9F0-4655-ACF2-4DBC7C8271DF}.Debug|x86.ActiveCfg = Debug|Any CPU
{3A8B9906-C9F0-4655-ACF2-4DBC7C8271DF}.Debug|x86.Build.0 = Debug|Any CPU
{3A8B9906-C9F0-4655-ACF2-4DBC7C8271DF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3A8B9906-C9F0-4655-ACF2-4DBC7C8271DF}.Release|Any CPU.Build.0 = Release|Any CPU
{3A8B9906-C9F0-4655-ACF2-4DBC7C8271DF}.Release|x64.ActiveCfg = Release|Any CPU
{3A8B9906-C9F0-4655-ACF2-4DBC7C8271DF}.Release|x64.Build.0 = Release|Any CPU
{3A8B9906-C9F0-4655-ACF2-4DBC7C8271DF}.Release|x86.ActiveCfg = Release|Any CPU
{3A8B9906-C9F0-4655-ACF2-4DBC7C8271DF}.Release|x86.Build.0 = Release|Any CPU
{0250B255-044A-4C19-8F2F-AB019B01D498}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0250B255-044A-4C19-8F2F-AB019B01D498}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0250B255-044A-4C19-8F2F-AB019B01D498}.Debug|x64.ActiveCfg = Debug|Any CPU
{0250B255-044A-4C19-8F2F-AB019B01D498}.Debug|x64.Build.0 = Debug|Any CPU
{0250B255-044A-4C19-8F2F-AB019B01D498}.Debug|x86.ActiveCfg = Debug|Any CPU
{0250B255-044A-4C19-8F2F-AB019B01D498}.Debug|x86.Build.0 = Debug|Any CPU
{0250B255-044A-4C19-8F2F-AB019B01D498}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0250B255-044A-4C19-8F2F-AB019B01D498}.Release|Any CPU.Build.0 = Release|Any CPU
{0250B255-044A-4C19-8F2F-AB019B01D498}.Release|x64.ActiveCfg = Release|Any CPU
{0250B255-044A-4C19-8F2F-AB019B01D498}.Release|x64.Build.0 = Release|Any CPU
{0250B255-044A-4C19-8F2F-AB019B01D498}.Release|x86.ActiveCfg = Release|Any CPU
{0250B255-044A-4C19-8F2F-AB019B01D498}.Release|x86.Build.0 = Release|Any CPU
{72D04ED1-9622-4335-AC9A-0F4C98B73101}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{72D04ED1-9622-4335-AC9A-0F4C98B73101}.Debug|Any CPU.Build.0 = Debug|Any CPU
{72D04ED1-9622-4335-AC9A-0F4C98B73101}.Debug|x64.ActiveCfg = Debug|Any CPU
{72D04ED1-9622-4335-AC9A-0F4C98B73101}.Debug|x64.Build.0 = Debug|Any CPU
{72D04ED1-9622-4335-AC9A-0F4C98B73101}.Debug|x86.ActiveCfg = Debug|Any CPU
{72D04ED1-9622-4335-AC9A-0F4C98B73101}.Debug|x86.Build.0 = Debug|Any CPU
{72D04ED1-9622-4335-AC9A-0F4C98B73101}.Release|Any CPU.ActiveCfg = Release|Any CPU
{72D04ED1-9622-4335-AC9A-0F4C98B73101}.Release|Any CPU.Build.0 = Release|Any CPU
{72D04ED1-9622-4335-AC9A-0F4C98B73101}.Release|x64.ActiveCfg = Release|Any CPU
{72D04ED1-9622-4335-AC9A-0F4C98B73101}.Release|x64.Build.0 = Release|Any CPU
{72D04ED1-9622-4335-AC9A-0F4C98B73101}.Release|x86.ActiveCfg = Release|Any CPU
{72D04ED1-9622-4335-AC9A-0F4C98B73101}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down

0 comments on commit 50b7ae5

Please sign in to comment.