public void TestFixtureSetUp() { dbPlatform = new SQLitePlatform(); migrationVersionInfoManager = new DbMigrationVersionInfoManager(dbPlatform, new DbCommandExecutionStrategy(), "SchemaInfo"); connectionString = ConfigurationManager.AppSettings["connectionString"]; dbPlatform.DeploymentManager.Deploy(connectionString, DbDeploymentMode.Redeploy); }
public void ExecuteMigrationScripts(IDbPlatform dbPlatform, IMigrationVersionInfoManager migrationVersionInfoManager, string connectionString, MigrationScriptCollection migrationScripts, long currentVersion, long? targetVersion, MigrationMode migrationMode) { this.migrationScripts = migrationScripts; this.currentVersion = currentVersion; this.targetVersion = targetVersion; this.migrationMode = migrationMode; }
public static IList<long> GetRegisteredMigrationVersions(IMigrationVersionInfoManager migrationVersionInfoManager, IDbPlatform dbPlatform, string connectionString) { return DbUtil.ExecuteInTransaction<IList<long>>(dbPlatform, connectionString, delegate(IDbTransaction transaction) { return migrationVersionInfoManager.GetRegisteredMigrationVersions(transaction); }); }
public static long GetCurrentMigrationVersion(IMigrationVersionInfoManager migrationVersionInfoManager, IDbPlatform dbPlatform, string connectionString) { return DbUtil.ExecuteInTransaction<long>(dbPlatform, connectionString, delegate(IDbTransaction transaction) { return migrationVersionInfoManager.GetCurrentMigrationVersion(transaction); }); }
public void TestFixtureSetUp() { dbPlatform = new SQLitePlatform(); migrationVersionInfoManager = new DbMigrationVersionInfoManager(dbPlatform, new DbCommandExecutionStrategy(), "SchemaInfo"); sourceConnectionString = ConfigurationManager.AppSettings["connectionString"]; targetConnectionString = ConfigurationManager.AppSettings["secondaryConnectionString"]; migrationService = new MigrationService(dbPlatform, migrationVersionInfoManager, new DbMigrationScriptExecutive(new DbCommandExecutionStrategy()), null); }
public void Execute(IDbPlatform dbPlatform, IDbCommand dbCommand) { try { dbPlatform.ExceptionTranslator.Execute(() => dbCommand.ExecuteNonQuery()); } // try catch(DbPlatformException e) { throw new DbPlatformException(string.Format("Could not execute SQL '{0}'", dbCommand.CommandText), e); } // catch }
public void TestFixtureSetUp() { dbPlatform = new SqlCePlatform(); connectionString = ConfigurationManager.AppSettings["connectionString"]; migrationVersionInfoManager = new DbMigrationVersionInfoManager(dbPlatform, new DbCommandExecutionStrategy(), "SchemaInfo"); migrationService = new MigrationService( dbPlatform, migrationVersionInfoManager, new DbMigrationScriptExecutive(new DbCommandExecutionStrategy()), new FileSystemNativeSqlResourceProvider( Path.Combine( GetAssemblyLocation(Assembly.GetExecutingAssembly()), "Resources"))); }
public void Execute(IDbPlatform platform, IRefactorNode refactorNode, Environment environment) { string auditTableName = AstNodePropertyUtil.AsString(refactorNode.Properties["audit-table"].Value); string tableName = AstNodePropertyUtil.AsString(refactorNode.Properties["table"].Value); // // We only need columns here ITableDefinition tableDefinition = environment.Schema.GetTable(tableName); ITableDefinition auditTable = new TableDefinition(auditTableName); foreach(ColumnDefinition column in tableDefinition.Columns) { // // Keep name and type only. IColumnDefinition auditColumn = new ColumnDefinition(column.Name); // // Special handling for rowversion if(column.Type == DbType.Time) { auditColumn.Length = 8; auditColumn.Type = DbType.Binary; } // if else { auditColumn.Length = column.Length; auditColumn.Type = column.Type; } // else auditColumn.Nullable = true; auditTable.AddColumn(auditColumn); } // foreach environment.Schema.AddTable(auditTable); // // Now build an AST IAddTableNode addAuditTableNode = new AddTableNode(refactorNode.Parent, auditTableName); foreach(IColumnDefinition auditColumn in auditTable.Columns) { IAddColumnNode addAuditColumnNode = new AddColumnNode(addAuditTableNode, auditColumn.Name); addAuditColumnNode.Type = auditColumn.Type; addAuditColumnNode.Length = auditColumn.Length; addAuditColumnNode.Nullable = auditColumn.Nullable; addAuditTableNode.ChildNodes.Add(addAuditColumnNode); } // foreach addAuditTableNode.Parent.ChildNodes.Add(addAuditTableNode); }
public IAstNode ReverseEngineer(IDbPlatform dbPlatform, string connectionString) { Schema schema = dbPlatform.SchemaProvider.GetSchema(connectionString); IBaselineNode baselineNode = new BaselineNode(null); AstUtil.BuildAstNodeFromSchema(baselineNode, schema); IList<IAstNode> addReferenceNodes= new List<IAstNode>(); Algorithms.RemoveIf(baselineNode.ChildNodes, delegate(IAstNode astNode) { return astNode is IAddReferenceNode; }, delegate(IAstNode astNode) { addReferenceNodes.Add(astNode); }); Algorithms.Copy(addReferenceNodes, baselineNode.ChildNodes); return baselineNode; }
public Compares(LocalDB db, IDbPlatform idbPlatform) { Platform platform; List = new ObservableCollection <Compare>(); Database = db; Title = idbPlatform.Title + " - " + Enum.GetName(typeof(LocalDB), db); DBreleases = new List <IDbRelease>(); RReleases = new List <Release>(); foreach (IDbRelease idbRelease in idbPlatform.Releases) { DBreleases.Add(idbRelease); } switch (db) { case LocalDB.GamesDB: platform = R.Data.Platforms.FirstOrDefault(x => x.ID_GDB == idbPlatform.ID); if (platform != null) { RReleases = new List <Release>(platform.Releases.Where(x => x.ID_GDB == null && x.IsGame)); } break; case LocalDB.GiantBomb: platform = R.Data.Platforms.FirstOrDefault(x => x.ID_GB == idbPlatform.ID); if (platform != null) { RReleases = new List <Release>(platform.Releases.Where(x => x.ID_GB == null && x.IsGame)); } break; case LocalDB.LaunchBox: platform = R.Data.Platforms.FirstOrDefault(x => x.ID_LB == idbPlatform.ID); if (platform != null) { RReleases = new List <Release>(platform.Releases.Where(x => x.ID_LB == null && x.IsGame)); } break; } }
public void TestFixtureSetUp() { dbPlatform = new SQLitePlatform(); connectionString = ConfigurationManager.AppSettings["connectionString"]; dbPlatform.DeploymentManager.Deploy(connectionString, DbDeploymentMode.Redeploy); migrationService = new MigrationService( dbPlatform, new DbMigrationVersionInfoManager(dbPlatform, new DbCommandExecutionStrategy(), "SchemaInfo"), new DbMigrationScriptExecutive(new DbCommandExecutionStrategy()), null); try { MigrateTo(null); } // try catch(Exception e) { MigrateTo(0); Assert.Fail(e.Message); } // catch }
void CompareToOVGDB(IDbPlatform idbPlatform) { // There are no results in OVGDB for arcade, so skip it if (idbPlatform.Title.Contains("Arcade")) { Reporter.Report("Skiping platform \"Arcade\""); return; } Platform RPlatform = R.Data.Platforms.FirstOrDefault(x => x.ID == idbPlatform.ID); OVGRelease OVGRelease; foreach (Release release in RPlatform.Releases) { OVGRelease = R.Data.OVGReleases.FirstOrDefault(x => x.SHA1 == release.Rom.SHA1 && x.Region_ID == release.Region_ID && (x.BoxFrontUrl != null || x.BoxBackUrl != null)); if (OVGRelease != null) { release.ID_OVG = OVGRelease.ID; } } }
/// <summary> /// Returns an array of <see cref="string"/> object which contains a Native SQL resource <paramref name="name"/> /// to be executed while upgrading to version <paramref name="version"/> /// for platform <paramref name="dbPlatform"/>. /// </summary> /// <param name="dbPlatform"></param> /// <param name="name"></param> /// <param name="version"></param> /// <returns></returns> public string[] GetUpgradeResources(IDbPlatform dbPlatform, string name, long version) { var resourceFileName = string.Format("{0}.sql", name); var alias = DbPlatformUtil.GetDbPlatformAlias(dbPlatform); var potentialPaths = new[] { Path.Combine(Path.Combine(baseDirectory, Path.Combine(alias, version.ToString())), resourceFileName), Path.Combine(Path.Combine(baseDirectory, Path.Combine("shared", version.ToString())), resourceFileName) }; var resourceFilePath = potentialPaths.FirstOrDefault(File.Exists); if(string.IsNullOrEmpty(resourceFilePath)) return null; string nativeResource; using(var fileStream = File.Open(resourceFilePath, FileMode.Open, FileAccess.Read)) using(var streamReader = new StreamReader(fileStream, true)) nativeResource = streamReader.ReadToEnd(); var goRegex = new Regex(@"^\s*go\s*", RegexOptions.Multiline); return goRegex.Split(nativeResource); }
public void Deploy(IDbPlatform dbPlatform, string connectionString) { dbPlatform.DeploymentManager.Deploy(connectionString, DbDeploymentMode.Deploy); }
protected DbPlatformDependencyBase(IDbPlatform platform) { this.platform = platform; }
/// <summary> /// Initializes a new instance of the <see cref="SqlServer2000SchemaProvider"/> class. /// </summary> /// <param name="platform"></param> public SqlServer2000SchemaProvider(IDbPlatform platform) : base(platform) { }
private void EnsurePlatformResolved(MigrationParameters parameters, IDbPlatform dbPlatform) { if(dbPlatform == null) throw new MigrationException( string.Format(Resources.CouldNotResolvePlatformAlias, parameters.PlatformAlias)); }
public void Execute(IDbPlatform dbPlatform, IDbCommand dbCommand) { using(StreamWriter sw = new StreamWriter(fileName, true)) sw.WriteLine(dbCommand.CommandText); }
private static IDbTransaction BeginDdlTransaction(IDbPlatform dbPlatform, IDbConnection connection) { return dbPlatform.Capabilities.IsSupported(DbPlatformCapabilities.SupportsTransactionalDdl) ? connection.BeginTransaction() : new NullDbTransaction(connection); }
/// <summary> /// Initializes a new instance of the <see cref="MigrationService"/> class. /// </summary> /// <param name="dbPlatform"></param> /// <param name="migrationVersionInfoManager"></param> /// <param name="migrationScriptExecutive"></param> /// <param name="nativeSqlResourceProvider"></param> public MigrationService(IDbPlatform dbPlatform, IMigrationVersionInfoManager migrationVersionInfoManager, IMigrationScriptExecutive migrationScriptExecutive, INativeSqlResourceProvider nativeSqlResourceProvider) { this.dbPlatform = dbPlatform; this.migrationVersionInfoManager = migrationVersionInfoManager; this.migrationScriptExecutive = migrationScriptExecutive; this.nativeSqlResourceProvider = nativeSqlResourceProvider; this.migrationScriptExecutive.Migrating += delegate(object sender, MigrationScriptExecutionEventArgs args) { InvokeMigrating(new MigrationEventArgs(args.Version, args.Mode)); }; this.migrationScriptExecutive.Migrated += delegate(object sender, MigrationScriptExecutionEventArgs args) { InvokeMigrated(new MigrationEventArgs(args.Version, args.Mode)); }; }
public RefactoringStage(IDbPlatform dbPlatform) { this.dbPlatform = dbPlatform; }
public void ExecuteMigrationScripts(IDbPlatform dbPlatform, IMigrationVersionInfoManager migrationVersionInfoManager, string connectionString, MigrationScriptCollection migrationScripts, long currentVersion, long? targetVersion, MigrationMode migrationMode) { using(IDbConnection dbConnection = dbPlatform.ProviderFactory.CreateConnection()) { dbConnection.ConnectionString = connectionString; dbConnection.Open(); IList<MigrationScript> effectiveMigrationScripts = new List<MigrationScript>(GetMigrationScripts(migrationScripts, currentVersion, targetVersion, migrationMode)); foreach(MigrationScript migrationScript in effectiveMigrationScripts) { using(IDbTransaction ddlTransaction = BeginDdlTransaction(dbPlatform, dbConnection)) { using(IDbCommand dbCommand = dbConnection.CreateCommand()) { InvokeMigrating(new MigrationScriptExecutionEventArgs(migrationMode, migrationScript.MigrationVersion)); foreach(string ddlScript in migrationScript.DdlScripts) { dbCommand.CommandText = ddlScript; dbCommand.CommandType = CommandType.Text; Trace.WriteLine(ddlScript); // // Workaround for Jet if(!(ddlTransaction is NullDbTransaction)) dbCommand.Transaction = ddlTransaction; try { dbCommandExecutionStrategy.Execute(dbPlatform, dbCommand); } // try // TODO: Replace with DbPlatformException or something catch(Exception e) { throw new MigrationException( string.Format(migrationMode == MigrationMode.Upgrade ? Properties.Resources.ErrorWhileUpgradingToVersion: Properties.Resources.ErrorWhileDowngradingToVersion, migrationScript.MigrationVersion, e.ToString()), ddlScript, e); } // catch } // foreach } // using // // If we're downgrading all way down, do not register it, since SchemaInfo // will be deleted too. if(!(migrationMode == MigrationMode.Downgrade && targetVersion == 0 && effectiveMigrationScripts.IndexOf(migrationScript) == effectiveMigrationScripts.Count - 1)) migrationVersionInfoManager.RegisterMigrationVersion(ddlTransaction, migrationMode, migrationScript.MigrationVersion); ddlTransaction.Commit(); InvokeMigrated(new MigrationScriptExecutionEventArgs(migrationMode, migrationScript.MigrationVersion)); } // using } // foreach } // foreach }
public void TextFixtureSetUp() { connectionString = ConfigurationManager.AppSettings["connectionString"]; dbPlatform = new SQLitePlatform(); }
private static MigrationScriptCollection CompileMigrationScripts(IDbPlatform dbPlatform, INativeSqlResourceProvider nativeSqlResourceProvider, TextReader migrationDefinition, MigrationMode migrationMode) { MigrationScriptCompiler migrationScriptCompiler = new MigrationScriptCompiler(dbPlatform, nativeSqlResourceProvider, migrationMode); return migrationScriptCompiler.CompileMigrationScripts(migrationDefinition); }
public MigrationScriptCompiler(IDbPlatform dbPlatform, INativeSqlResourceProvider nativeSqlResourceProvider, MigrationMode migrationMode) { this.dbPlatform = dbPlatform; this.nativeSqlResourceProvider = nativeSqlResourceProvider; this.migrationMode = migrationMode; }
/// <summary> /// Initializes a new instance of the <see cref="DbSchemaProviderBase"/> class. /// </summary> /// <param name="platform"></param> protected DbSchemaProviderBase(IDbPlatform platform) : base(platform) { }
public SQLiteDeploymentManager(IDbPlatform platform) : base(platform) { }
/// <summary> /// Returns an array of <see cref="string"/> object which contains a Native SQL resource <paramref name="name"/> /// to be executed while downgrading from version <paramref name="version"/> /// for platform <paramref name="dbPlatform"/>. /// </summary> /// <param name="dbPlatform"></param> /// <param name="name"></param> /// <param name="version"></param> /// <returns></returns> public string[] GetDowngradeResources(IDbPlatform dbPlatform, string name, long version) { return GetUpgradeResources(dbPlatform, name, version); }
public SqlServer2000DeploymentManager(IDbPlatform platform) : base(platform) { }
/// <summary> /// Initializes a new instance of the <see cref="DbMigrationVersionInfoManager"/> class. /// </summary> /// <param name="dbPlatform"></param> /// <param name="dbCommandExecutionStrategy"></param> /// <param name="tableName"></param> public DbMigrationVersionInfoManager(IDbPlatform dbPlatform, IDbCommandExecutionStrategy dbCommandExecutionStrategy, string tableName) { this.dbPlatform = dbPlatform; this.dbCommandExecutionStrategy = dbCommandExecutionStrategy; this.tableName = tableName; }
public FirebirdDeploymentManager(IDbPlatform platform) : base(platform) { }
public static string GetDbPlatformAlias(IDbPlatform dbPlatform) { return GetDbPlatformAlias(dbPlatform.GetType()); }