Merge pull request #1239 from cnurse/dev
Implement Database Migrations and add Multi-Database Support
This commit is contained in:
		| @ -3,6 +3,7 @@ namespace Oqtane.Shared | ||||
|     public class InstallConfig | ||||
|     { | ||||
|         public string ConnectionString { get; set; } | ||||
|         public string DatabaseType { get; set; } | ||||
|         public string Aliases { get; set; } | ||||
|         public string TenantName { get; set; } | ||||
|         public bool IsNewTenant { get; set; } | ||||
|  | ||||
							
								
								
									
										59
									
								
								Oqtane.Shared/Shared/OqtaneDatabaseBase.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								Oqtane.Shared/Shared/OqtaneDatabaseBase.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,59 @@ | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| 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, List<ConnectionStringField> connectionStringFields) | ||||
|         { | ||||
|             Name = name; | ||||
|             FriendlyName = friendlyName; | ||||
|             ConnectionStringFields = connectionStringFields; | ||||
|         } | ||||
|  | ||||
|         public  string FriendlyName { get; } | ||||
|  | ||||
|         public string Name { get; } | ||||
|  | ||||
|         public abstract string Provider { get; } | ||||
|  | ||||
|         public List<ConnectionStringField> ConnectionStringFields { get; } | ||||
|  | ||||
|         public abstract OperationBuilder<AddColumnOperation> AddAutoIncrementColumn(ColumnsBuilder table, string name); | ||||
|  | ||||
|         public abstract string BuildConnectionString(); | ||||
|  | ||||
|         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 virtual string RewriteName(string name) | ||||
|         { | ||||
|             return name; | ||||
|         } | ||||
|  | ||||
|         public virtual void UpdateIdentityStoreTableNames(ModelBuilder builder) | ||||
|         { | ||||
|  | ||||
|         } | ||||
|  | ||||
|         public abstract DbContextOptionsBuilder UseDatabase(DbContextOptionsBuilder optionsBuilder, string connectionString); | ||||
|     } | ||||
| } | ||||
| @ -2,12 +2,18 @@ | ||||
| { | ||||
|     public static class SettingKeys | ||||
|     { | ||||
|         public const string ConnectionStringsSection = "ConnectionStrings"; | ||||
|         public const string DatabaseSection = "Database"; | ||||
|         public const string InstallationSection = "Installation"; | ||||
|  | ||||
|         public const string ConnectionStringKey = "DefaultConnection"; | ||||
|  | ||||
|         public const string DatabaseTypeKey = "DatabaseType"; | ||||
|  | ||||
|         public const string DefaultAliasKey = "DefaultAlias"; | ||||
|         public const string HostPasswordKey = "HostPassword"; | ||||
|         public const string HostEmailKey = "HostEmail"; | ||||
|         public const string SiteTemplateKey = "SiteTemplate"; | ||||
|         public const string ConnectionStringKey = "DefaultConnection"; | ||||
|         public const string DefaultThemeKey = "DefaultTheme"; | ||||
|         public const string DefaultLayoutKey = "DefaultLayout"; | ||||
|         public const string DefaultContainerKey = "DefaultContainer"; | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Shaun Walker
					Shaun Walker