Convert Database projects so they build installable Packages rather than deploy to bin and modify installation to deploy Databases on demand as needed.

This commit is contained in:
Charles Nurse
2021-05-20 12:39:09 -07:00
parent 4474d49c6a
commit 47c04dc150
81 changed files with 434 additions and 143 deletions

View File

@ -1,29 +1,11 @@
using System;
using Oqtane.Interfaces;
namespace Oqtane.Shared
{
public class InstallConfig
{
private IOqtaneDatabase _database;
public string ConnectionString { get; set; }
public string DatabaseType { get; set; }
public IOqtaneDatabase Database
{
get
{
if (_database == null)
{
var type = Type.GetType(DatabaseType);
_database = Activator.CreateInstance(type) as IOqtaneDatabase;
}
return _database;
}
}
public string DatabasePackage { get; set; }
public string Aliases { get; set; }
public string TenantName { get; set; }
public bool IsNewTenant { get; set; }

View File

@ -1,61 +0,0 @@
using System;
using System.Collections.Generic;
using System.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Models;
namespace Oqtane.Shared
{
public abstract class OqtaneDatabaseBase : IOqtaneDatabase
{
protected OqtaneDatabaseBase(string name, string friendlyName)
{
Name = name;
FriendlyName = friendlyName;
}
public string FriendlyName { get; }
public string Name { get; }
public abstract string Provider { get; }
public abstract string TypeName { get; }
public abstract OperationBuilder<AddColumnOperation> AddAutoIncrementColumn(ColumnsBuilder table, string name);
public virtual string ConcatenateSql(params string[] values)
{
var returnValue = String.Empty;
for (var i = 0; i < values.Length; i++)
{
if (i > 0)
{
returnValue += " + ";
}
returnValue += values[i];
}
return returnValue;
}
public abstract int ExecuteNonQuery(string connectionString, string query);
public abstract IDataReader ExecuteReader(string connectionString, string query);
public virtual string RewriteName(string name)
{
return name;
}
public virtual void UpdateIdentityStoreTableNames(ModelBuilder builder)
{
}
public abstract DbContextOptionsBuilder UseDatabase(DbContextOptionsBuilder optionsBuilder, string connectionString);
}
}