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