using System.IO; using System.Reflection; using FluentMigrator; namespace Kreta.DataAccess.Migrations.Migrations { [Migration(20170327110702)] public class Init : CustomMigration { public override void Up() { string assemblyDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); string baseDirectory = Path.Combine(assemblyDirectory, @"Scripts\Archive\20170327110702_Init\"); Execute.Script(Path.Combine(baseDirectory, "create.tables.mssql.sql")); Execute.Script(Path.Combine(baseDirectory, "create.indexes.mssql.sql")); Execute.Script(Path.Combine(baseDirectory, "alter.tables.mssql.sql")); Execute.Script(Path.Combine(baseDirectory, "create.views.advanced.sql")); CreateGlobalStoredProcedures(baseDirectory); CreateFunctions(baseDirectory); CreateStoredProcedures(baseDirectory); Execute.Script(Path.Combine(baseDirectory, "create.telepulesek.sql")); Execute.Script(Path.Combine(baseDirectory, "create.defaultdata.sql")); } public override void Down() { } private void CreateGlobalStoredProcedures(string baseDirectory) { var storedProcedureFiles = Directory.GetFiles(baseDirectory, "sp_Global_*.sql", SearchOption.TopDirectoryOnly); foreach (var storedProcedureFile in storedProcedureFiles) { Execute.Script(storedProcedureFile); } } private void CreateFunctions(string baseDirectory) { var functionFiles = Directory.GetFiles(Path.Combine(baseDirectory, "Functions"), "*.sql", SearchOption.AllDirectories); foreach (var functionFile in functionFiles) { Execute.Script(functionFile); } } private void CreateStoredProcedures(string baseDirectory) { var storedProcedureFiles = Directory.GetFiles(Path.Combine(baseDirectory, "Stored procedures"), "*.sql", SearchOption.AllDirectories); foreach (var storedProcedureFile in storedProcedureFiles) { Execute.Script(storedProcedureFile); } } } }