Skip to content

Commit c08df1d

Browse files
committed
Adding support for native database providers in addition to ODBC.
1 parent c1eb40f commit c08df1d

11 files changed

Lines changed: 747 additions & 64 deletions

BUILD.md

Lines changed: 0 additions & 34 deletions
This file was deleted.

QueryPush/Configuration/DatabaseConfig.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,13 @@ public class DatabaseConfig
66
{
77
[Required, MinLength(1)]
88
public string Name { get; set; } = string.Empty;
9-
9+
1010
[Required, MinLength(1)]
1111
public string ConnectionString { get; set; } = string.Empty;
12+
13+
/// <summary>
14+
/// Database provider type. Supported values: odbc, sqlserver, mysql, oracle, postgres/postgresql, sqlite.
15+
/// Defaults to 'odbc' for backward compatibility.
16+
/// </summary>
17+
public string Provider { get; set; } = "odbc";
1218
}

QueryPush/Program.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ private static HostApplicationBuilder CreateHostBuilder(string[] args, bool isSe
5050
private static void RegisterServices(IServiceCollection services)
5151
{
5252
services.AddHttpClient();
53+
services.AddSingleton<IDatabaseConnectionFactory, DatabaseConnectionFactory>();
5354
services.AddSingleton<IConfigurationValidator, ConfigurationValidator>();
5455
services.AddSingleton<IStateManager, StateManager>();
5556
services.AddSingleton<IVariableReplacer, VariableReplacer>();
@@ -59,7 +60,7 @@ private static void RegisterServices(IServiceCollection services)
5960
services.AddScoped<IAlertService, AlertService>();
6061
services.AddScoped<IQueryScheduler, QueryScheduler>();
6162
services.AddScoped<IQueryExecutor, QueryExecutor>();
62-
63+
6364
services.AddQuartz();
6465
services.AddQuartzHostedService(opt => opt.WaitForJobsToComplete = true);
6566
services.AddScoped<QueryJob>();

QueryPush/QueryPush.csproj

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@
1212
<PublishReadyToRun>false</PublishReadyToRun>
1313
<SuppressTrimAnalysisWarnings>true</SuppressTrimAnalysisWarnings>
1414
<NoWarn>$(NoWarn);IL2026;IL2104;IL2105;IL2106;IL2107</NoWarn>
15-
<Version>1.0.0</Version>
16-
<AssemblyVersion>1.0.0.0</AssemblyVersion>
17-
<FileVersion>1.0.0.0</FileVersion>
18-
<ProductVersion>1.0.0</ProductVersion>
15+
<Version>1.1.0</Version>
16+
<AssemblyVersion>1.1.0.0</AssemblyVersion>
17+
<FileVersion>1.1.0.0</FileVersion>
18+
<ProductVersion>1.1.0</ProductVersion>
1919
<Company>Octane Software</Company>
2020
<Product>QueryPush</Product>
2121
<Description>Cross-platform database query scheduler with cron-based execution</Description>
@@ -34,7 +34,6 @@
3434

3535
<PackageReference Include="NCrontab" Version="3.4.0" />
3636
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
37-
<PackageReference Include="System.Data.Odbc" Version="9.0.10" />
3837
<PackageReference Include="System.Text.Json" Version="9.0.10" />
3938
<PackageReference Include="Serilog.Extensions.Hosting" Version="9.0.0" />
4039
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
@@ -44,6 +43,14 @@
4443
<PackageReference Include="Serilog.Extensions.Logging" Version="9.0.2" />
4544
<PackageReference Include="Quartz" Version="3.15.0" />
4645
<PackageReference Include="Quartz.Extensions.Hosting" Version="3.15.0" />
46+
47+
<!-- Database Providers -->
48+
<PackageReference Include="System.Data.Odbc" Version="9.0.10" />
49+
<PackageReference Include="Microsoft.Data.SqlClient" Version="5.2.2" />
50+
<PackageReference Include="MySql.Data" Version="9.1.0" />
51+
<PackageReference Include="Oracle.ManagedDataAccess.Core" Version="23.7.0" />
52+
<PackageReference Include="Npgsql" Version="8.0.5" />
53+
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.10" />
4754
</ItemGroup>
4855

4956
<ItemGroup>

0 commit comments

Comments
 (0)