public static Config Create(string[] args) { var result = new Config(); result._optionSet.Parse(args); if (string.IsNullOrEmpty(result.ProviderName)) result.ProviderName = "System.Data.SqlClient"; else EnsureProviderConfigurations(); if (!string.IsNullOrEmpty(result.ConnectionString)) return result; var connectionStringBuilder = result.ConnectionStringBuilder; connectionStringBuilder["Data Source"] = result._server; connectionStringBuilder["Initial Catalog"] = result._database; if (result._useIntegratedSecurity) { connectionStringBuilder["Integrated Security"] = "True"; } else { connectionStringBuilder["User ID"] = result._user; connectionStringBuilder["Password"] = result._password; } connectionStringBuilder["Connect Timeout"] = 10; result.ConnectionString = connectionStringBuilder.ConnectionString; return result; }
private static void PrintHelp(Config config) { Logger .InfoLine("Use this utility to execute DDL and SQL scripts against a database.") .InfoLine("") .InfoLine("Usage: migrate.exe [options]") .InfoLine("Options:") .InfoLine(config.GetHelp()); if (!config.Help) return; Logger.WriteHelp(); }
private static bool PostMigration(IMigrationManager manager, Config config) { if (config.Sync || !manager.HasScripts(ScriptKind.PostMigration)) return true; Logger.Section("Running post-migration scripts"); return manager.ExecuteScripts(config.WhatIf, ScriptKind.PostMigration); }
private static IMigrationManager CreateMigrationManager(Config config, IDb db, DbQueries queryConfig) { var database = new Database(db, queryConfig); var folder = new DirectoryInfo(config.Directory); var scripts = new ScriptFileRepository(folder, config.PreMigration, config.PostMigration); var manager = new MigrationManager(scripts, database, Logger); return manager; }
private static bool Migration(IMigrationManager manager, Config config) { Logger.Section("Performing database migrations"); return manager.MigrateSchema(config.WhatIf, config.Sync, config.ReInit); }