migrate database providers to core framework
This commit is contained in:
@ -1,52 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net9.0</TargetFramework>
|
|
||||||
<Version>6.1.5</Version>
|
|
||||||
<Product>Oqtane</Product>
|
|
||||||
<Authors>Shaun Walker</Authors>
|
|
||||||
<Company>.NET Foundation</Company>
|
|
||||||
<Description>Modular Application Framework for Blazor and MAUI</Description>
|
|
||||||
<Copyright>.NET Foundation</Copyright>
|
|
||||||
<PackageProjectUrl>https://www.oqtane.org</PackageProjectUrl>
|
|
||||||
<PackageLicenseUrl>https://github.com/oqtane/oqtane.framework/blob/dev/LICENSE</PackageLicenseUrl>
|
|
||||||
<PackageReleaseNotes>https://github.com/oqtane/oqtane.framework/releases/tag/v6.1.5</PackageReleaseNotes>
|
|
||||||
<RepositoryUrl>https://github.com/oqtane/oqtane.framework</RepositoryUrl>
|
|
||||||
<RepositoryType>Git</RepositoryType>
|
|
||||||
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
|
||||||
<OutputPath>bin</OutputPath>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
|
||||||
<OutputPath>bin</OutputPath>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
|
||||||
<NoWarn>1701;1702;EF1001;AD0001</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
|
||||||
<NoWarn>1701;1702;EF1001;AD0001</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="MySql.Data" Version="9.4.0" />
|
|
||||||
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="9.0.0-preview.3.efcore.9.0.0" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\Oqtane.Server\Oqtane.Server.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<MySQLFiles Include="$(OutputPath)Oqtane.Database.MySQL.dll;$(OutputPath)Oqtane.Database.MySQL.pdb;$(OutputPath)Pomelo.EntityFrameworkCore.MySql.dll;$(OutputPath)MySqlConnector.dll;$(OutputPath)MySql.Data.dll" DestinationPath="..\Oqtane.Server\bin\$(Configuration)\net9.0\%(Filename)%(Extension)" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<Target Name="PublishProvider" AfterTargets="PostBuildEvent" Inputs="@(MySQLFiles)" Outputs="@(MySQLFiles->'%(DestinationPath)')">
|
|
||||||
<Copy SourceFiles="@(MySQLFiles)" DestinationFiles="@(MySQLFiles->'%(DestinationPath)')" />
|
|
||||||
</Target>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -1,53 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net9.0</TargetFramework>
|
|
||||||
<Version>6.1.5</Version>
|
|
||||||
<Product>Oqtane</Product>
|
|
||||||
<Authors>Shaun Walker</Authors>
|
|
||||||
<Company>.NET Foundation</Company>
|
|
||||||
<Description>Modular Application Framework for Blazor and MAUI</Description>
|
|
||||||
<Copyright>.NET Foundation</Copyright>
|
|
||||||
<PackageProjectUrl>https://www.oqtane.org</PackageProjectUrl>
|
|
||||||
<PackageLicenseUrl>https://github.com/oqtane/oqtane.framework/blob/dev/LICENSE</PackageLicenseUrl>
|
|
||||||
<PackageReleaseNotes>https://github.com/oqtane/oqtane.framework/releases/tag/v6.1.5</PackageReleaseNotes>
|
|
||||||
<RepositoryUrl>https://github.com/oqtane/oqtane.framework</RepositoryUrl>
|
|
||||||
<RepositoryType>Git</RepositoryType>
|
|
||||||
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
|
||||||
<OutputPath>bin</OutputPath>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
|
||||||
<OutputPath>bin</OutputPath>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
|
||||||
<NoWarn>1701;1702;EF1001;AD0001;NU1608</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
|
||||||
<NoWarn>1701;1702;EF1001;AD0001</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="EFCore.NamingConventions" Version="9.0.0" />
|
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="9.0.8" />
|
|
||||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="9.0.4" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\Oqtane.Server\Oqtane.Server.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PostgreSQLFiles Include="$(OutputPath)Oqtane.Database.PostgreSQL.dll;$(OutputPath)Oqtane.Database.PostgreSQL.pdb;$(OutputPath)EFCore.NamingConventions.dll;$(OutputPath)Npgsql.EntityFrameworkCore.PostgreSQL.dll;$(OutputPath)Npgsql.dll" DestinationPath="..\Oqtane.Server\bin\$(Configuration)\net9.0\%(Filename)%(Extension)" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<Target Name="PublishProvider" AfterTargets="PostBuildEvent" Inputs="@(PostgreSQLFiles)" Outputs="@(PostgreSQLFiles->'%(DestinationPath)')">
|
|
||||||
<Copy SourceFiles="@(PostgreSQLFiles)" DestinationFiles="@(PostgreSQLFiles->'%(DestinationPath)')" />
|
|
||||||
</Target>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -1,51 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net9.0</TargetFramework>
|
|
||||||
<Version>6.1.5</Version>
|
|
||||||
<Product>Oqtane</Product>
|
|
||||||
<Authors>Shaun Walker</Authors>
|
|
||||||
<Company>.NET Foundation</Company>
|
|
||||||
<Description>Modular Application Framework for Blazor and MAUI</Description>
|
|
||||||
<Copyright>.NET Foundation</Copyright>
|
|
||||||
<PackageProjectUrl>https://www.oqtane.org</PackageProjectUrl>
|
|
||||||
<PackageLicenseUrl>https://github.com/oqtane/oqtane.framework/blob/dev/LICENSE</PackageLicenseUrl>
|
|
||||||
<PackageReleaseNotes>https://github.com/oqtane/oqtane.framework/releases/tag/v6.1.5</PackageReleaseNotes>
|
|
||||||
<RepositoryUrl>https://github.com/oqtane/oqtane.framework</RepositoryUrl>
|
|
||||||
<RepositoryType>Git</RepositoryType>
|
|
||||||
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
|
||||||
<OutputPath>bin</OutputPath>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
|
||||||
<OutputPath>bin</OutputPath>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
|
||||||
<NoWarn>1701;1702;EF1001;AD0001</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
|
||||||
<NoWarn>1701;1702;EF1001;AD0001</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.8" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\Oqtane.Server\Oqtane.Server.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<SqlServerFiles Include="$(OutputPath)Oqtane.Database.SqlServer.dll;$(OutputPath)Oqtane.Database.SqlServer.pdb;$(OutputPath)Microsoft.EntityFrameworkCore.SqlServer.dll" DestinationPath="..\Oqtane.Server\bin\$(Configuration)\net9.0\%(Filename)%(Extension)" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<Target Name="PublishProvider" AfterTargets="PostBuildEvent" Inputs="@(SqlServerFiles)" Outputs="@(SqlServerFiles->'%(DestinationPath)')">
|
|
||||||
<Copy SourceFiles="@(SqlServerFiles)" DestinationFiles="@(SqlServerFiles->'%(DestinationPath)')" />
|
|
||||||
</Target>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -1,51 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net9.0</TargetFramework>
|
|
||||||
<Version>6.1.5</Version>
|
|
||||||
<Product>Oqtane</Product>
|
|
||||||
<Authors>Shaun Walker</Authors>
|
|
||||||
<Company>.NET Foundation</Company>
|
|
||||||
<Description>Modular Application Framework for Blazor and MAUI</Description>
|
|
||||||
<Copyright>.NET Foundation</Copyright>
|
|
||||||
<PackageProjectUrl>https://www.oqtane.org</PackageProjectUrl>
|
|
||||||
<PackageLicenseUrl>https://github.com/oqtane/oqtane.framework/blob/dev/LICENSE</PackageLicenseUrl>
|
|
||||||
<PackageReleaseNotes>https://github.com/oqtane/oqtane.framework/releases/tag/v6.1.5</PackageReleaseNotes>
|
|
||||||
<RepositoryUrl>https://github.com/oqtane/oqtane.framework</RepositoryUrl>
|
|
||||||
<RepositoryType>Git</RepositoryType>
|
|
||||||
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
|
||||||
<OutputPath>bin</OutputPath>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
|
||||||
<OutputPath>bin</OutputPath>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
|
||||||
<NoWarn>1701;1702;EF1001;AD0001</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
|
||||||
<NoWarn>1701;1702;EF1001;AD0001</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="9.0.8" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\Oqtane.Server\Oqtane.Server.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<SqliteFiles Include="$(OutputPath)Oqtane.Database.Sqlite.dll;$(OutputPath)Oqtane.Database.Sqlite.pdb;$(OutputPath)Microsoft.EntityFrameworkCore.Sqlite.dll" DestinationPath="..\Oqtane.Server\bin\$(Configuration)\net9.0\%(Filename)%(Extension)" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<Target Name="PublishProvider" AfterTargets="PostBuildEvent" Inputs="@(SqliteFiles)" Outputs="@(SqliteFiles->'%(DestinationPath)')">
|
|
||||||
<Copy SourceFiles="@(SqliteFiles)" DestinationFiles="@(SqliteFiles->'%(DestinationPath)')" />
|
|
||||||
</Target>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -10,10 +10,10 @@ namespace Oqtane.Controllers
|
|||||||
[Route(ControllerRoutes.ApiRoute)]
|
[Route(ControllerRoutes.ApiRoute)]
|
||||||
public class DatabaseController : Controller
|
public class DatabaseController : Controller
|
||||||
{
|
{
|
||||||
private IOptions<List<Database>> _databaseOptions;
|
private IOptions<List<Models.Database>> _databaseOptions;
|
||||||
private IConfigManager _config;
|
private IConfigManager _config;
|
||||||
|
|
||||||
public DatabaseController(IOptions<List<Database>> databaseOptions, IConfigManager config)
|
public DatabaseController(IOptions<List<Models.Database>> databaseOptions, IConfigManager config)
|
||||||
{
|
{
|
||||||
_databaseOptions = databaseOptions;
|
_databaseOptions = databaseOptions;
|
||||||
_config = config;
|
_config = config;
|
||||||
@ -21,7 +21,7 @@ namespace Oqtane.Controllers
|
|||||||
|
|
||||||
// GET: api/<controller>
|
// GET: api/<controller>
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public IEnumerable<Database> Get()
|
public IEnumerable<Models.Database> Get()
|
||||||
{
|
{
|
||||||
var databases = _databaseOptions.Value;
|
var databases = _databaseOptions.Value;
|
||||||
var master = _config.GetSetting(SettingKeys.DatabaseSection, SettingKeys.DatabaseTypeKey, "");
|
var master = _config.GetSetting(SettingKeys.DatabaseSection, SettingKeys.DatabaseTypeKey, "");
|
||||||
|
@ -9,13 +9,13 @@ using Oqtane.Models;
|
|||||||
|
|
||||||
namespace Oqtane.Database.PostgreSQL
|
namespace Oqtane.Database.PostgreSQL
|
||||||
{
|
{
|
||||||
public class OqtaneHistoryRepository : NpgsqlHistoryRepository
|
public class HistoryRepository : NpgsqlHistoryRepository
|
||||||
{
|
{
|
||||||
private string _appliedDateColumnName = "applied_date";
|
private string _appliedDateColumnName = "applied_date";
|
||||||
private string _appliedVersionColumnName = "applied_version";
|
private string _appliedVersionColumnName = "applied_version";
|
||||||
private MigrationHistoryTable _migrationHistoryTable;
|
private MigrationHistoryTable _migrationHistoryTable;
|
||||||
|
|
||||||
public OqtaneHistoryRepository(HistoryRepositoryDependencies dependencies) : base(dependencies)
|
public HistoryRepository(HistoryRepositoryDependencies dependencies) : base(dependencies)
|
||||||
{
|
{
|
||||||
_migrationHistoryTable = new MigrationHistoryTable
|
_migrationHistoryTable = new MigrationHistoryTable
|
||||||
{
|
{
|
@ -147,7 +147,7 @@ namespace Oqtane.Database.PostgreSQL
|
|||||||
{
|
{
|
||||||
return optionsBuilder.UseNpgsql(connectionString)
|
return optionsBuilder.UseNpgsql(connectionString)
|
||||||
.UseSnakeCaseNamingConvention()
|
.UseSnakeCaseNamingConvention()
|
||||||
.ReplaceService<IHistoryRepository, OqtaneHistoryRepository>();
|
.ReplaceService<IHistoryRepository, HistoryRepository>();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PrepareCommand(NpgsqlConnection conn, NpgsqlCommand cmd, string query)
|
private void PrepareCommand(NpgsqlConnection conn, NpgsqlCommand cmd, string query)
|
@ -9,13 +9,13 @@ using Oqtane.Models;
|
|||||||
|
|
||||||
namespace Oqtane.Database.SqlServer
|
namespace Oqtane.Database.SqlServer
|
||||||
{
|
{
|
||||||
public class OqtaneHistoryRepository : SqlServerHistoryRepository
|
public class HistoryRepository : SqlServerHistoryRepository
|
||||||
{
|
{
|
||||||
private string _appliedDateColumnName = "AppliedDate";
|
private string _appliedDateColumnName = "AppliedDate";
|
||||||
private string _appliedVersionColumnName = "AppliedVersion";
|
private string _appliedVersionColumnName = "AppliedVersion";
|
||||||
private MigrationHistoryTable _migrationHistoryTable;
|
private MigrationHistoryTable _migrationHistoryTable;
|
||||||
|
|
||||||
public OqtaneHistoryRepository(HistoryRepositoryDependencies dependencies) : base(dependencies)
|
public HistoryRepository(HistoryRepositoryDependencies dependencies) : base(dependencies)
|
||||||
{
|
{
|
||||||
_migrationHistoryTable = new MigrationHistoryTable
|
_migrationHistoryTable = new MigrationHistoryTable
|
||||||
{
|
{
|
@ -98,7 +98,7 @@ namespace Oqtane.Database.SqlServer
|
|||||||
public override DbContextOptionsBuilder UseDatabase(DbContextOptionsBuilder optionsBuilder, string connectionString)
|
public override DbContextOptionsBuilder UseDatabase(DbContextOptionsBuilder optionsBuilder, string connectionString)
|
||||||
{
|
{
|
||||||
return optionsBuilder.UseSqlServer(connectionString)
|
return optionsBuilder.UseSqlServer(connectionString)
|
||||||
.ReplaceService<IHistoryRepository, OqtaneHistoryRepository>();
|
.ReplaceService<IHistoryRepository, HistoryRepository>();
|
||||||
}
|
}
|
||||||
|
|
||||||
private string FormatConnectionString(string connectionString)
|
private string FormatConnectionString(string connectionString)
|
@ -9,13 +9,13 @@ using Oqtane.Models;
|
|||||||
|
|
||||||
namespace Oqtane.Database.Sqlite
|
namespace Oqtane.Database.Sqlite
|
||||||
{
|
{
|
||||||
public class OqtaneHistoryRepository : SqliteHistoryRepository
|
public class HistoryRepository : SqliteHistoryRepository
|
||||||
{
|
{
|
||||||
private string _appliedDateColumnName = "AppliedDate";
|
private string _appliedDateColumnName = "AppliedDate";
|
||||||
private string _appliedVersionColumnName = "AppliedVersion";
|
private string _appliedVersionColumnName = "AppliedVersion";
|
||||||
private MigrationHistoryTable _migrationHistoryTable;
|
private MigrationHistoryTable _migrationHistoryTable;
|
||||||
|
|
||||||
public OqtaneHistoryRepository(HistoryRepositoryDependencies dependencies) : base(dependencies)
|
public HistoryRepository(HistoryRepositoryDependencies dependencies) : base(dependencies)
|
||||||
{
|
{
|
||||||
_migrationHistoryTable = new MigrationHistoryTable
|
_migrationHistoryTable = new MigrationHistoryTable
|
||||||
{
|
{
|
@ -11,7 +11,7 @@ namespace Oqtane.Database.Sqlite
|
|||||||
{
|
{
|
||||||
public class SqliteDatabase : DatabaseBase
|
public class SqliteDatabase : DatabaseBase
|
||||||
{
|
{
|
||||||
private static string _friendlyName => "Sqlite";
|
private static string _friendlyName => "SQLite";
|
||||||
|
|
||||||
private static string _name => "Sqlite";
|
private static string _name => "Sqlite";
|
||||||
|
|
||||||
@ -106,7 +106,7 @@ namespace Oqtane.Database.Sqlite
|
|||||||
public override DbContextOptionsBuilder UseDatabase(DbContextOptionsBuilder optionsBuilder, string connectionString)
|
public override DbContextOptionsBuilder UseDatabase(DbContextOptionsBuilder optionsBuilder, string connectionString)
|
||||||
{
|
{
|
||||||
return optionsBuilder.UseSqlite(connectionString)
|
return optionsBuilder.UseSqlite(connectionString)
|
||||||
.ReplaceService<IHistoryRepository, OqtaneHistoryRepository>();
|
.ReplaceService<IHistoryRepository, HistoryRepository>();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PrepareCommand(SqliteConnection conn, SqliteCommand cmd, string query)
|
private void PrepareCommand(SqliteConnection conn, SqliteCommand cmd, string query)
|
@ -663,7 +663,7 @@ namespace Oqtane.Infrastructure
|
|||||||
var connectionString = NormalizeConnectionString(_config.GetConnectionString(SettingKeys.ConnectionStringKey));
|
var connectionString = NormalizeConnectionString(_config.GetConnectionString(SettingKeys.ConnectionStringKey));
|
||||||
var databaseType = _config.GetSection(SettingKeys.DatabaseSection)[SettingKeys.DatabaseTypeKey];
|
var databaseType = _config.GetSection(SettingKeys.DatabaseSection)[SettingKeys.DatabaseTypeKey];
|
||||||
|
|
||||||
Oqtane.Databases.Interfaces.IDatabase database = null;
|
Databases.Interfaces.IDatabase database = null;
|
||||||
if (!string.IsNullOrEmpty(databaseType))
|
if (!string.IsNullOrEmpty(databaseType))
|
||||||
{
|
{
|
||||||
var type = Type.GetType(databaseType);
|
var type = Type.GetType(databaseType);
|
||||||
@ -744,32 +744,34 @@ namespace Oqtane.Infrastructure
|
|||||||
|
|
||||||
private void ValidateConfiguration()
|
private void ValidateConfiguration()
|
||||||
{
|
{
|
||||||
if (_configManager.GetSetting(SettingKeys.DatabaseSection, SettingKeys.DatabaseTypeKey, "") == "")
|
var defaultDatabaseType = _configManager.GetSetting(SettingKeys.DatabaseSection, SettingKeys.DatabaseTypeKey, "");
|
||||||
|
if (defaultDatabaseType == "" || defaultDatabaseType.Contains(", Oqtane.Database."))
|
||||||
{
|
{
|
||||||
_configManager.AddOrUpdateSetting($"{SettingKeys.DatabaseSection}:{SettingKeys.DatabaseTypeKey}", Constants.DefaultDBType, true);
|
// DefaultDBType migrated to Oqtane.Server in 6.1.5
|
||||||
|
defaultDatabaseType = defaultDatabaseType.Substring(0, defaultDatabaseType.IndexOf(", ")) + ", Oqtane.Server";
|
||||||
|
_configManager.AddOrUpdateSetting($"{SettingKeys.DatabaseSection}:{SettingKeys.DatabaseTypeKey}", defaultDatabaseType, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var updateAvailableDatabases = false;
|
||||||
if (!_configManager.GetSection(SettingKeys.AvailableDatabasesSection).Exists())
|
if (!_configManager.GetSection(SettingKeys.AvailableDatabasesSection).Exists())
|
||||||
{
|
{
|
||||||
string databases = "[";
|
updateAvailableDatabases = true;
|
||||||
databases += "{ \"Name\": \"LocalDB\", \"ControlType\": \"Oqtane.Installer.Controls.LocalDBConfig, Oqtane.Client\", \"DBTYpe\": \"Oqtane.Database.SqlServer.SqlServerDatabase, Oqtane.Database.SqlServer\" },";
|
|
||||||
databases += "{ \"Name\": \"SQL Server\", \"ControlType\": \"Oqtane.Installer.Controls.SqlServerConfig, Oqtane.Client\", \"DBTYpe\": \"Oqtane.Database.SqlServer.SqlServerDatabase, Oqtane.Database.SqlServer\" },";
|
|
||||||
databases += "{ \"Name\": \"SQLite\", \"ControlType\": \"Oqtane.Installer.Controls.SqliteConfig, Oqtane.Client\", \"DBTYpe\": \"Oqtane.Database.Sqlite.SqliteDatabase, Oqtane.Database.Sqlite\" },";
|
|
||||||
databases += "{ \"Name\": \"MySQL\", \"ControlType\": \"Oqtane.Installer.Controls.MySQLConfig, Oqtane.Client\", \"DBTYpe\": \"Oqtane.Database.MySQL.MySQLDatabase, Oqtane.Database.MySQL\" },";
|
|
||||||
databases += "{ \"Name\": \"PostgreSQL\", \"ControlType\": \"Oqtane.Installer.Controls.PostgreSQLConfig, Oqtane.Client\", \"DBTYpe\": \"Oqtane.Database.PostgreSQL.PostgreSQLDatabase, Oqtane.Database.PostgreSQL\" }";
|
|
||||||
databases += "]";
|
|
||||||
_configManager.AddOrUpdateSetting(SettingKeys.AvailableDatabasesSection, databases, true);
|
|
||||||
}
|
}
|
||||||
var availabledatabases = _configManager.GetSection(SettingKeys.AvailableDatabasesSection).GetChildren();
|
else
|
||||||
if (!availabledatabases.Any(item => item.GetSection("Name").Value == "Azure SQL"))
|
|
||||||
{
|
{
|
||||||
// Azure SQL added in 6.1.2
|
// available databases migrated to Oqtane.Server in 6.1.5
|
||||||
string databases = "[";
|
updateAvailableDatabases = !_configManager.GetSection(SettingKeys.AvailableDatabasesSection).GetChildren()
|
||||||
foreach (var database in availabledatabases)
|
.Any(item => item.GetSection("DBType").Value == "Oqtane.Database.SqlServer.SqlServerDatabase, Oqtane.Server");
|
||||||
{
|
|
||||||
databases += "{ " + $"\"Name\": \"{database["Name"]}\", \"ControlType\": \"{database["ControlType"]}\", \"DBTYpe\": \"{database["DBType"]}\"" + " },";
|
|
||||||
}
|
}
|
||||||
databases += "{ \"Name\": \"Azure SQL\", \"ControlType\": \"Oqtane.Installer.Controls.AzureSqlConfig, Oqtane.Client\", \"DBTYpe\": \"Oqtane.Database.SqlServer.SqlServerDatabase, Oqtane.Database.SqlServer\" }";
|
if (updateAvailableDatabases)
|
||||||
|
{
|
||||||
|
string databases = "[";
|
||||||
|
databases += "{ \"Name\": \"LocalDB\", \"ControlType\": \"Oqtane.Installer.Controls.LocalDBConfig, Oqtane.Client\", \"DBType\": \"Oqtane.Database.SqlServer.SqlServerDatabase, Oqtane.Server\" },";
|
||||||
|
databases += "{ \"Name\": \"SQL Server\", \"ControlType\": \"Oqtane.Installer.Controls.SqlServerConfig, Oqtane.Client\", \"DBType\": \"Oqtane.Database.SqlServer.SqlServerDatabase, Oqtane.Server\" },";
|
||||||
|
databases += "{ \"Name\": \"SQLite\", \"ControlType\": \"Oqtane.Installer.Controls.SqliteConfig, Oqtane.Client\", \"DBType\": \"Oqtane.Database.Sqlite.SqliteDatabase, Oqtane.Server\" },";
|
||||||
|
databases += "{ \"Name\": \"MySQL\", \"ControlType\": \"Oqtane.Installer.Controls.MySQLConfig, Oqtane.Client\", \"DBType\": \"Oqtane.Database.MySQL.MySQLDatabase, Oqtane.Server\" },";
|
||||||
|
databases += "{ \"Name\": \"PostgreSQL\", \"ControlType\": \"Oqtane.Installer.Controls.PostgreSQLConfig, Oqtane.Client\", \"DBType\": \"Oqtane.Database.PostgreSQL.PostgreSQLDatabase, Oqtane.Server\" },";
|
||||||
|
databases += "{ \"Name\": \"Azure SQL\", \"ControlType\": \"Oqtane.Installer.Controls.AzureSqlConfig, Oqtane.Client\", \"DBType\": \"Oqtane.Database.SqlServer.SqlServerDatabase, Oqtane.Server\" }";
|
||||||
databases += "]";
|
databases += "]";
|
||||||
_configManager.AddOrUpdateSetting(SettingKeys.AvailableDatabasesSection, databases, true);
|
_configManager.AddOrUpdateSetting(SettingKeys.AvailableDatabasesSection, databases, true);
|
||||||
}
|
}
|
||||||
|
@ -84,6 +84,9 @@ namespace Oqtane.Infrastructure
|
|||||||
case "6.1.1":
|
case "6.1.1":
|
||||||
Upgrade_6_1_1(tenant, scope);
|
Upgrade_6_1_1(tenant, scope);
|
||||||
break;
|
break;
|
||||||
|
case "6.1.5":
|
||||||
|
Upgrade_6_1_5(tenant, scope);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -537,6 +540,24 @@ namespace Oqtane.Infrastructure
|
|||||||
AddPagesToSites(scope, tenant, pageTemplates);
|
AddPagesToSites(scope, tenant, pageTemplates);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Upgrade_6_1_5(Tenant tenant, IServiceScope scope)
|
||||||
|
{
|
||||||
|
// remove Database Providers which were moved to Oqtane.Server
|
||||||
|
string[] assemblies = {
|
||||||
|
"Oqtane.Database.MySQL.dll",
|
||||||
|
"Oqtane.Database.MySQL.pdb",
|
||||||
|
"Oqtane.Database.PostgreSQL.dll",
|
||||||
|
"Oqtane.Database.PostgreSQL.pdb",
|
||||||
|
"Oqtane.Database.Sqlite.dll",
|
||||||
|
"Oqtane.Database.Sqlite.pdb",
|
||||||
|
"Oqtane.Database.SqlServer.dll",
|
||||||
|
"Oqtane.Database.SqlServer.pdb"
|
||||||
|
};
|
||||||
|
|
||||||
|
RemoveAssemblies(tenant, assemblies, "6.1.5");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void AddPagesToSites(IServiceScope scope, Tenant tenant, List<PageTemplate> pageTemplates)
|
private void AddPagesToSites(IServiceScope scope, Tenant tenant, List<PageTemplate> pageTemplates)
|
||||||
{
|
{
|
||||||
var tenants = scope.ServiceProvider.GetRequiredService<ITenantManager>();
|
var tenants = scope.ServiceProvider.GetRequiredService<ITenantManager>();
|
||||||
|
@ -0,0 +1,33 @@
|
|||||||
|
using System.Data;
|
||||||
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
using Oqtane.Databases.Interfaces;
|
||||||
|
using Oqtane.Migrations.EntityBuilders;
|
||||||
|
using Oqtane.Repository;
|
||||||
|
|
||||||
|
namespace Oqtane.Migrations.Master
|
||||||
|
{
|
||||||
|
[DbContext(typeof(MasterDBContext))]
|
||||||
|
[Migration("Master.06.01.05.01")]
|
||||||
|
public class UpdateTenantDBType : MultiDatabaseMigration
|
||||||
|
{
|
||||||
|
public UpdateTenantDBType(IDatabase database) : base(database)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
// database providers moved to oqtane.server
|
||||||
|
var tenantEntityBuilder = new TenantEntityBuilder(migrationBuilder, ActiveDatabase);
|
||||||
|
tenantEntityBuilder.UpdateData("DBType", "'Oqtane.Database.SqlServer.SqlServerDatabase, Oqtane.Server'", $"{DelimitName(RewriteName("DBType"))} = 'Oqtane.Database.SqlServer.SqlServerDatabase, Oqtane.Database.SqlServer'");
|
||||||
|
tenantEntityBuilder.UpdateData("DBType", "'Oqtane.Database.Sqlite.SqliteDatabase, Oqtane.Server'", $"{DelimitName(RewriteName("DBType"))} = 'Oqtane.Database.Sqlite.SqliteDatabase, Oqtane.Database.Sqlite'");
|
||||||
|
tenantEntityBuilder.UpdateData("DBType", "'Oqtane.Database.MySQL.MySQLDatabase, Oqtane.Server'", $"{DelimitName(RewriteName("DBType"))} = 'Oqtane.Database.MySQL.MySQLDatabase, Oqtane.Database.MySQL'");
|
||||||
|
tenantEntityBuilder.UpdateData("DBType", "'Oqtane.Database.PostgreSQL.PostgreSQLDatabase, Oqtane.Server'", $"{DelimitName(RewriteName("DBType"))} = 'Oqtane.Database.PostgreSQL.PostgreSQLDatabase, Oqtane.Database.PostgreSQL'");
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
// not implemented
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -33,6 +33,7 @@
|
|||||||
<EmbeddedResource Include="Scripts\MigrateMaster.sql" />
|
<EmbeddedResource Include="Scripts\MigrateMaster.sql" />
|
||||||
<EmbeddedResource Include="Scripts\MigrateTenant.sql" />
|
<EmbeddedResource Include="Scripts\MigrateTenant.sql" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="9.0.8" />
|
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="9.0.8" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="9.0.8" />
|
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="9.0.8" />
|
||||||
@ -44,33 +45,51 @@
|
|||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Microsoft.Extensions.Localization" Version="9.0.8" />
|
<PackageReference Include="Microsoft.Extensions.Localization" Version="9.0.8" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="9.0.8" />
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="9.0.8" />
|
||||||
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="9.0.8" />
|
|
||||||
<PackageReference Include="SQLitePCLRaw.bundle_e_sqlite3" Version="3.0.1" />
|
|
||||||
<PackageReference Include="SixLabors.ImageSharp" Version="3.1.11" />
|
<PackageReference Include="SixLabors.ImageSharp" Version="3.1.11" />
|
||||||
<PackageReference Include="HtmlAgilityPack" Version="1.12.2" />
|
<PackageReference Include="HtmlAgilityPack" Version="1.12.2" />
|
||||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="9.0.3" />
|
<PackageReference Include="Swashbuckle.AspNetCore" Version="9.0.3" />
|
||||||
<PackageReference Include="MailKit" Version="4.13.0" />
|
<PackageReference Include="MailKit" Version="4.13.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<!-- MySQL Database Provider Dependencies -->
|
||||||
|
<PackageReference Include="MySql.Data" Version="9.4.0" />
|
||||||
|
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="9.0.0-preview.3.efcore.9.0.0" />
|
||||||
|
<!-- PostgreSQL Database Provider Dependencies -->
|
||||||
|
<PackageReference Include="EFCore.NamingConventions" Version="9.0.0" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="9.0.8" />
|
||||||
|
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="9.0.4" />
|
||||||
|
<!-- SQLite Database Provider Dependencies -->
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="9.0.8" />
|
||||||
|
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="9.0.8" />
|
||||||
|
<PackageReference Include="SQLitePCLRaw.bundle_e_sqlite3" Version="3.0.1" />
|
||||||
|
<!-- SQL Server Database Provider Dependencies -->
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.8" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<!-- Suppress EF Core internal warnings for Database Providers -->
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
|
<NoWarn>1701;1702;EF1001;AD0001;NU1608</NoWarn>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
||||||
|
<NoWarn>1701;1702;EF1001;AD0001</NoWarn>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\Oqtane.Client\Oqtane.Client.csproj" />
|
<ProjectReference Include="..\Oqtane.Client\Oqtane.Client.csproj" />
|
||||||
<ProjectReference Include="..\Oqtane.Shared\Oqtane.Shared.csproj" />
|
<ProjectReference Include="..\Oqtane.Shared\Oqtane.Shared.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ModuleTemplateFiles Include="$(ProjectDir)wwwroot\Modules\Templates\**\*.*" />
|
<ModuleTemplateFiles Include="$(ProjectDir)wwwroot\Modules\Templates\**\*.*" />
|
||||||
<ThemeTemplateFiles Include="$(ProjectDir)wwwroot\Themes\Templates\**\*.*" />
|
<ThemeTemplateFiles Include="$(ProjectDir)wwwroot\Themes\Templates\**\*.*" />
|
||||||
<MySQLFiles Include="$(OutputPath)Oqtane.Database.MySQL.dll;$(OutputPath)Oqtane.Database.MySQL.pdb;$(OutputPath)Pomelo.EntityFrameworkCore.MySql.dll;$(OutputPath)MySql.Data.dll" />
|
|
||||||
<PostgreSQLFiles Include="$(OutputPath)Oqtane.Database.PostgreSQL.dll;$(OutputPath)Oqtane.Database.PostgreSQL.pdb;$(OutputPath)EFCore.NamingConventions.dll;$(OutputPath)Npgsql.EntityFrameworkCore.PostgreSQL.dll;$(OutputPath)Npgsql.dll" />
|
|
||||||
<SqliteFiles Include="$(OutputPath)Oqtane.Database.Sqlite.dll;$(OutputPath)Oqtane.Database.Sqlite.pdb;$(OutputPath)Microsoft.EntityFrameworkCore.Sqlite.dll" />
|
|
||||||
<SqlServerFiles Include="$(OutputPath)Oqtane.Database.SqlServer.dll;$(OutputPath)Oqtane.Database.SqlServer.pdb;$(OutputPath)Microsoft.EntityFrameworkCore.SqlServer.dll" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<Target Name="AddPayloadsFolder" AfterTargets="Publish">
|
<Target Name="AddPayloadsFolder" AfterTargets="Publish">
|
||||||
<Copy SourceFiles="@(ModuleTemplateFiles)" DestinationFiles="@(ModuleTemplateFiles->'$(PublishDir)wwwroot\Modules\Templates\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="false" />
|
<Copy SourceFiles="@(ModuleTemplateFiles)" DestinationFiles="@(ModuleTemplateFiles->'$(PublishDir)wwwroot\Modules\Templates\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="false" />
|
||||||
<Copy SourceFiles="@(ThemeTemplateFiles)" DestinationFiles="@(ThemeTemplateFiles->'$(PublishDir)wwwroot\Themes\Templates\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="false" />
|
<Copy SourceFiles="@(ThemeTemplateFiles)" DestinationFiles="@(ThemeTemplateFiles->'$(PublishDir)wwwroot\Themes\Templates\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="false" />
|
||||||
<Copy SourceFiles="@(MySQLFiles)" DestinationFiles="@(MySQLFiles->'$(PublishDir)%(Filename)%(Extension)')" SkipUnchangedFiles="false" />
|
|
||||||
<Copy SourceFiles="@(PostgreSQLFiles)" DestinationFiles="@(PostgreSQLFiles->'$(PublishDir)%(Filename)%(Extension)')" SkipUnchangedFiles="false" />
|
|
||||||
<Copy SourceFiles="@(SqliteFiles)" DestinationFiles="@(SqliteFiles->'$(PublishDir)%(Filename)%(Extension)')" SkipUnchangedFiles="false" />
|
|
||||||
<Copy SourceFiles="@(SqlServerFiles)" DestinationFiles="@(SqlServerFiles->'$(PublishDir)%(Filename)%(Extension)')" SkipUnchangedFiles="false" />
|
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<!-- extends watching group to include *.dll files and exclude the ones cause an infinite loop -->
|
<!-- extends watching group to include *.dll files and exclude the ones cause an infinite loop -->
|
||||||
<Watch Include="**\*.dll" Exclude="**\Microsoft.EntityFrameworkCore.*.dll;**\Oqtane.Database.*.dll;" />
|
<Watch Include="**\*.dll" Exclude="**\Microsoft.EntityFrameworkCore.*.dll;**\Oqtane.Database.*.dll;" />
|
||||||
|
@ -69,7 +69,7 @@ namespace Oqtane
|
|||||||
// register localization services
|
// register localization services
|
||||||
services.AddLocalization(options => options.ResourcesPath = "Resources");
|
services.AddLocalization(options => options.ResourcesPath = "Resources");
|
||||||
|
|
||||||
services.AddOptions<List<Database>>().Bind(Configuration.GetSection(SettingKeys.AvailableDatabasesSection));
|
services.AddOptions<List<Models.Database>>().Bind(Configuration.GetSection(SettingKeys.AvailableDatabasesSection));
|
||||||
|
|
||||||
// register scoped core services
|
// register scoped core services
|
||||||
services.AddScoped<IAuthorizationHandler, PermissionHandler>()
|
services.AddScoped<IAuthorizationHandler, PermissionHandler>()
|
||||||
|
@ -16,7 +16,7 @@ namespace Oqtane.Models
|
|||||||
public string ControlType { get; set; }
|
public string ControlType { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Type of DB using the full namespace, like `Oqtane.Database.SqlServer.SqlServerDatabase, Oqtane.Database.SqlServer`
|
/// Type of DB using the full namespace, like `Oqtane.Database.SqlServer.SqlServerDatabase, Oqtane.Server`
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string DBType { get; set; }
|
public string DBType { get; set; }
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ namespace Oqtane.Shared
|
|||||||
public const string PackageRegistryUrl = "https://www.oqtane.net";
|
public const string PackageRegistryUrl = "https://www.oqtane.net";
|
||||||
|
|
||||||
public const string DataDirectory = "DataDirectory";
|
public const string DataDirectory = "DataDirectory";
|
||||||
public const string DefaultDBType = "Oqtane.Database.SqlServer.SqlServerDatabase, Oqtane.Database.SqlServer";
|
public const string DefaultDBType = "Oqtane.Database.SqlServer.SqlServerDatabase, Oqtane.Server";
|
||||||
|
|
||||||
public const string DefaultTheme = "Oqtane.Themes.OqtaneTheme.Default, Oqtane.Client";
|
public const string DefaultTheme = "Oqtane.Themes.OqtaneTheme.Default, Oqtane.Client";
|
||||||
public const string DefaultContainer = "Oqtane.Themes.OqtaneTheme.Container, Oqtane.Client";
|
public const string DefaultContainer = "Oqtane.Themes.OqtaneTheme.Container, Oqtane.Client";
|
||||||
|
24
Oqtane.sln
24
Oqtane.sln
@ -16,14 +16,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
|
|||||||
README.md = README.md
|
README.md = README.md
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Oqtane.Database.MySQL", "Oqtane.Database.MySQL\Oqtane.Database.MySQL.csproj", "{17082878-FA9B-4F08-BC9A-467C23560AEB}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Oqtane.Database.PostgreSQL", "Oqtane.Database.PostgreSQL\Oqtane.Database.PostgreSQL.csproj", "{C54A9201-2EA6-499A-BEE8-9E7EE80B9FEE}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Oqtane.Database.Sqlite", "Oqtane.Database.Sqlite\Oqtane.Database.Sqlite.csproj", "{61754121-6D69-4B99-B28F-03C8854732DB}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Oqtane.Database.SqlServer", "Oqtane.Database.SqlServer\Oqtane.Database.SqlServer.csproj", "{C1BD386B-0832-41D2-8E37-410127318556}"
|
|
||||||
EndProject
|
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@ -42,22 +34,6 @@ Global
|
|||||||
{19D67A9D-3F2E-41BD-80E6-0B50CA83C3AE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{19D67A9D-3F2E-41BD-80E6-0B50CA83C3AE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{19D67A9D-3F2E-41BD-80E6-0B50CA83C3AE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{19D67A9D-3F2E-41BD-80E6-0B50CA83C3AE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{19D67A9D-3F2E-41BD-80E6-0B50CA83C3AE}.Release|Any CPU.Build.0 = Release|Any CPU
|
{19D67A9D-3F2E-41BD-80E6-0B50CA83C3AE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{17082878-FA9B-4F08-BC9A-467C23560AEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{17082878-FA9B-4F08-BC9A-467C23560AEB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{17082878-FA9B-4F08-BC9A-467C23560AEB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{17082878-FA9B-4F08-BC9A-467C23560AEB}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{C54A9201-2EA6-499A-BEE8-9E7EE80B9FEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{C54A9201-2EA6-499A-BEE8-9E7EE80B9FEE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{C54A9201-2EA6-499A-BEE8-9E7EE80B9FEE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{C54A9201-2EA6-499A-BEE8-9E7EE80B9FEE}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{61754121-6D69-4B99-B28F-03C8854732DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{61754121-6D69-4B99-B28F-03C8854732DB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{61754121-6D69-4B99-B28F-03C8854732DB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{61754121-6D69-4B99-B28F-03C8854732DB}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{C1BD386B-0832-41D2-8E37-410127318556}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{C1BD386B-0832-41D2-8E37-410127318556}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{C1BD386B-0832-41D2-8E37-410127318556}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{C1BD386B-0832-41D2-8E37-410127318556}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
Reference in New Issue
Block a user