Merge pull request #1342 from cnurse/dev
Switch DBType to use the fully-qualified type name rather than a simple name
This commit is contained in:
commit
c958f90ee2
@ -135,7 +135,7 @@
|
||||
var database = _databases.SingleOrDefault(d => d.Name == _databaseName);
|
||||
if (database != null)
|
||||
{
|
||||
_databaseConfigType = Type.GetType(database.Type);
|
||||
_databaseConfigType = Type.GetType(database.ControlType);
|
||||
DatabaseConfigComponent = builder =>
|
||||
{
|
||||
builder.OpenComponent(0, _databaseConfigType);
|
||||
@ -169,10 +169,12 @@
|
||||
StateHasChanged();
|
||||
|
||||
Uri uri = new Uri(NavigationManager.Uri);
|
||||
|
||||
var database = _databases.SingleOrDefault(d => d.Name == _databaseName);
|
||||
|
||||
var config = new InstallConfig
|
||||
{
|
||||
DatabaseType = _databaseName,
|
||||
DatabaseType = database.DBType,
|
||||
ConnectionString = connectionString,
|
||||
Aliases = uri.Authority,
|
||||
HostEmail = _hostEmail,
|
||||
|
@ -221,7 +221,7 @@ else
|
||||
var database = _databases.SingleOrDefault(d => d.Name == _databaseName);
|
||||
if (database != null)
|
||||
{
|
||||
_databaseConfigType = Type.GetType(database.Type);
|
||||
_databaseConfigType = Type.GetType(database.ControlType);
|
||||
DatabaseConfigComponent = builder =>
|
||||
{
|
||||
builder.OpenComponent(0, _databaseConfigType);
|
||||
@ -301,9 +301,11 @@ else
|
||||
{
|
||||
connectionString = databaseConfigControl.GetConnectionString();
|
||||
}
|
||||
var database = _databases.SingleOrDefault(d => d.Name == _databaseName);
|
||||
|
||||
if (connectionString != "")
|
||||
{
|
||||
config.DatabaseType = _databaseName;
|
||||
config.DatabaseType = database.DBType;
|
||||
config.ConnectionString = connectionString;
|
||||
config.HostPassword = _hostpassword;
|
||||
config.HostEmail = user.Email;
|
||||
|
@ -18,6 +18,8 @@ namespace Oqtane.Database.MySQL
|
||||
|
||||
public override string Provider => "MySql.EntityFrameworkCore";
|
||||
|
||||
public override string TypeName => "Oqtane.Database.MySQL.MySQLDatabase, Oqtane.Database.MySQL";
|
||||
|
||||
public override OperationBuilder<AddColumnOperation> AddAutoIncrementColumn(ColumnsBuilder table, string name)
|
||||
{
|
||||
return table.Column<int>(name: name, nullable: false).Annotation("MySQL:ValueGenerationStrategy", MySQLValueGenerationStrategy.IdentityColumn);
|
||||
|
@ -26,6 +26,8 @@ namespace Oqtane.Database.PostgreSQL
|
||||
|
||||
public override string Provider => "Npgsql.EntityFrameworkCore.PostgreSQL";
|
||||
|
||||
public override string TypeName => "Oqtane.Database.PostgreSQL.PostgreSQLDatabase, Oqtane.Database.PostgreSQL";
|
||||
|
||||
public override OperationBuilder<AddColumnOperation> AddAutoIncrementColumn(ColumnsBuilder table, string name)
|
||||
{
|
||||
return table.Column<int>(name: name, nullable: false).Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityAlwaysColumn);
|
||||
|
@ -6,5 +6,7 @@ namespace Oqtane.Database.SqlServer
|
||||
private static string _name => "LocalDB";
|
||||
|
||||
public LocalDbDatabase() :base(_name, _friendlyName) { }
|
||||
|
||||
public override string TypeName => "Oqtane.Database.SqlServer.LocalDbDatabase, Oqtane.Database.SqlServer";
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,8 @@ namespace Oqtane.Database.SqlServer
|
||||
|
||||
private static string _name => "SqlServer";
|
||||
|
||||
public SqlServerDatabase() :base(_name, _friendlyName) { }
|
||||
public SqlServerDatabase() : base(_name, _friendlyName) { }
|
||||
|
||||
public override string TypeName => "Oqtane.Database.SqlServer.SqlServerDatabase, Oqtane.Database.SqlServer";
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,8 @@ namespace Oqtane.Database.Sqlite
|
||||
|
||||
public override string Provider => "Microsoft.EntityFrameworkCore.Sqlite";
|
||||
|
||||
public override string TypeName => "Oqtane.Database.Sqlite.SqliteDatabase, Oqtane.Database.Sqlite";
|
||||
|
||||
public override OperationBuilder<AddColumnOperation> AddAutoIncrementColumn(ColumnsBuilder table, string name)
|
||||
{
|
||||
return table.Column<int>(name: name, nullable: false).Annotation("Sqlite:Autoincrement", true);
|
||||
|
@ -19,31 +19,36 @@ namespace Oqtane.Controllers
|
||||
{
|
||||
Name = "LocalDB",
|
||||
FriendlyName = "Local Database",
|
||||
Type = "Oqtane.Installer.Controls.LocalDBConfig, Oqtane.Client"
|
||||
ControlType = "Oqtane.Installer.Controls.LocalDBConfig, Oqtane.Client",
|
||||
DBType = "Oqtane.Database.SqlServer.LocalDbDatabase, Oqtane.Database.SqlServer"
|
||||
},
|
||||
new()
|
||||
{
|
||||
Name = "SqlServer",
|
||||
FriendlyName = "SQL Server",
|
||||
Type = "Oqtane.Installer.Controls.SqlServerConfig, Oqtane.Client"
|
||||
ControlType = "Oqtane.Installer.Controls.SqlServerConfig, Oqtane.Client",
|
||||
DBType = "Oqtane.Database.SqlServer.SqlServerDatabase, Oqtane.Database.SqlServer"
|
||||
},
|
||||
new()
|
||||
{
|
||||
Name = "Sqlite",
|
||||
FriendlyName = "Sqlite",
|
||||
Type = "Oqtane.Installer.Controls.SqliteConfig, Oqtane.Client"
|
||||
ControlType = "Oqtane.Installer.Controls.SqliteConfig, Oqtane.Client",
|
||||
DBType = "Oqtane.Database.Sqlite.SqliteDatabase, Oqtane.Database.Sqlite"
|
||||
},
|
||||
new()
|
||||
{
|
||||
Name = "MySQL",
|
||||
FriendlyName = "MySQL",
|
||||
Type = "Oqtane.Installer.Controls.MySQLConfig, Oqtane.Client"
|
||||
ControlType = "Oqtane.Installer.Controls.MySQLConfig, Oqtane.Client",
|
||||
DBType = "Oqtane.Database.MySQL.MySQLDatabase, Oqtane.Database.MySQL"
|
||||
},
|
||||
new()
|
||||
{
|
||||
Name = "PostgreSQL",
|
||||
FriendlyName = "PostgreSQL",
|
||||
Type = "Oqtane.Installer.Controls.PostGreSQLConfig, Oqtane.Client"
|
||||
ControlType = "Oqtane.Installer.Controls.PostGreSQLConfig, Oqtane.Client",
|
||||
DBType = "Oqtane.Database.PostgreSQL.PostgreSQLDatabase, Oqtane.Database.PostgreSQL"
|
||||
}
|
||||
};
|
||||
return databases;
|
||||
|
@ -191,7 +191,7 @@ namespace Oqtane.Infrastructure
|
||||
{
|
||||
var databases = scope.ServiceProvider.GetServices<IOqtaneDatabase>();
|
||||
|
||||
using (var dbc = new DbContext(new DbContextOptionsBuilder().UseOqtaneDatabase(databases.Single(d => d.Name == databaseType), connectionString).Options))
|
||||
using (var dbc = new DbContext(new DbContextOptionsBuilder().UseOqtaneDatabase(databases.Single(d => d.TypeName == databaseType), connectionString).Options))
|
||||
{
|
||||
// create empty database if it does not exist
|
||||
dbc.Database.EnsureCreated();
|
||||
@ -596,7 +596,7 @@ namespace Oqtane.Infrastructure
|
||||
var databaseType = _config.GetSection(SettingKeys.DatabaseSection)[SettingKeys.DatabaseTypeKey];
|
||||
var connectionString = NormalizeConnectionString(_config.GetConnectionString(SettingKeys.ConnectionStringKey));
|
||||
|
||||
return new InstallationContext(databases.Single(d => d.Name == databaseType), connectionString);
|
||||
return new InstallationContext(databases.Single(d => d.TypeName == databaseType), connectionString);
|
||||
}
|
||||
|
||||
private string GetInstallationConfig(string key, string defaultValue)
|
||||
|
@ -84,7 +84,7 @@ namespace Oqtane.Repository
|
||||
{
|
||||
if (Databases != null)
|
||||
{
|
||||
optionsBuilder.UseOqtaneDatabase(Databases.Single(d => d.Name == _databaseType), _connectionString);
|
||||
optionsBuilder.UseOqtaneDatabase(Databases.Single(d => d.TypeName == _databaseType), _connectionString);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -101,7 +101,7 @@ namespace Oqtane.Repository
|
||||
|
||||
if (Databases != null)
|
||||
{
|
||||
var database = Databases.Single(d => d.Name == _databaseType);
|
||||
var database = Databases.Single(d => d.TypeName == _databaseType);
|
||||
|
||||
database.UpdateIdentityStoreTableNames(builder);
|
||||
}
|
||||
|
@ -52,7 +52,7 @@ namespace Oqtane.Repository
|
||||
{
|
||||
if (Databases != null)
|
||||
{
|
||||
optionsBuilder.UseOqtaneDatabase(Databases.Single(d => d.Name == databaseType), connectionString);
|
||||
optionsBuilder.UseOqtaneDatabase(Databases.Single(d => d.TypeName == databaseType), connectionString);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -80,13 +80,13 @@ namespace Oqtane.Repository
|
||||
|
||||
public IDataReader ExecuteReader(Tenant tenant, string query)
|
||||
{
|
||||
var db = _databases.Single(d => d.Name == tenant.DBType);
|
||||
var db = _databases.Single(d => d.TypeName == tenant.DBType);
|
||||
return db.ExecuteReader(tenant.DBConnectionString, query);
|
||||
}
|
||||
|
||||
private int ExecuteNonQuery(string connectionString, string databaseType, string query)
|
||||
{
|
||||
var db = _databases.Single(d => d.Name == databaseType);
|
||||
var db = _databases.Single(d => d.TypeName == databaseType);
|
||||
|
||||
return db.ExecuteNonQuery(connectionString, query);
|
||||
}
|
||||
|
@ -15,6 +15,8 @@ namespace Oqtane.Interfaces
|
||||
|
||||
public string Provider { get; }
|
||||
|
||||
public string TypeName { get; }
|
||||
|
||||
public OperationBuilder<AddColumnOperation> AddAutoIncrementColumn(ColumnsBuilder table, string name);
|
||||
|
||||
public string ConcatenateSql(params string[] values);
|
||||
|
@ -6,6 +6,8 @@ namespace Oqtane.Models
|
||||
|
||||
public string Name { get; set; }
|
||||
|
||||
public string Type { get; set; }
|
||||
public string ControlType { get; set; }
|
||||
|
||||
public string DBType { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -23,6 +23,8 @@ namespace Oqtane.Shared
|
||||
|
||||
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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user