/// <summary> /// Visits the given <paramref name="versionNode"/>. /// </summary> /// <param name="versionNode"></param> public override void Visit(IVersionNode versionNode) { IUpgradeNode upgradeNode = new UpgradeNode(versionNode); foreach(IAstNode astNode in versionNode.ChildNodes) { astNode.Parent = upgradeNode; upgradeNode.ChildNodes.Add(astNode); } // foreach versionNode.ChildNodes.Clear(); versionNode.ChildNodes.Add(upgradeNode); }
/// <summary> /// Visits the given <paramref name="versionNode"/>. /// </summary> /// <param name="versionNode"></param> public override void Visit(IVersionNode versionNode) { // // Add a IAddTableNode which will create "SchemaInfo" tabled // to the first IVersionNode we encounter if(builtSchemaInfo) return; IAddTableNode addSchemaInfoTableNode = new AddTableNode(versionNode, "SchemaInfo"); IAddColumnNode addVersionColumnNode = new AddColumnNode(addSchemaInfoTableNode, "Version"); addVersionColumnNode.Properties.AddProperty(AstNodeProperty.Symbol(MdlSyntax.Type, DbType.Int64.ToString())); addVersionColumnNode.Properties.AddProperty(AstNodeProperty.Symbol(MdlSyntax.Unique, "true")); addVersionColumnNode.Properties.AddProperty(AstNodeProperty.Symbol(MdlSyntax.Nullable, "false")); addSchemaInfoTableNode.ChildNodes.Add(addVersionColumnNode); builtSchemaInfo = true; versionNode.ChildNodes.Insert(0, addSchemaInfoTableNode); }
/// <summary> /// Visits the given <paramref name="versionNode"/>. /// </summary> /// <param name="versionNode"></param> public override void Visit(IVersionNode versionNode) { Visit(versionNode.ChildNodes); }
/// <summary> /// Visits the given <paramref name="versionNode"/>. /// </summary> /// <param name="versionNode"></param> public override void Visit(IVersionNode versionNode) { textWriter.Write("version {0}", versionNode.Number); WriteProperties(versionNode); VisitBlock(versionNode); }
private IAstNode GetNode(IVersionNode versionNode, MigrationMode migrationMode) { return migrationMode == MigrationMode.Upgrade ? (IAstNode)GetFirst<IUpgradeNode>(versionNode.ChildNodes) : (IAstNode)GetFirst<IDowngradeNode>(versionNode.ChildNodes); }