Esempio n. 1
0
        /// <summary>
        /// Specify the table for the new column<br/>
        /// If <paramref name="migration"/>.SchemaPrefix have a value, the Syntax-TableName will be computed to {<paramref name="migration"/>.SchemaPrefix}{<paramref name="tableName"/>}<br/>
        /// If NOT, the Syntax-TableName will be the same as {<paramref name="tableName"/>}
        /// </summary>
        /// <param name="syntax">Syntax to extend</param>
        /// <param name="tableName">
        /// The table name for the new column <br/>
        /// See summary-section how this parameter is used
        /// </param>
        /// <param name="migration"></param>
        /// <returns>The interface to specify the table schema or column information</returns>
        public static ICreateColumnAsTypeOrInSchemaSyntax OnTable(this ICreateColumnOnTableSyntax syntax, string tableName, IMigrationModel migration)
        {
            var tableSyntax = syntax.OnTable(migration.GetPrefixedName(tableName));

            tableSyntax.InSchema(migration.SchemaName);
            return(tableSyntax);
        }
Esempio n. 2
0
        public override void Up()
        {
            var tool = new DataJsonDiff();

            var inTable  = tool.InCommingTables(json, srcJson);
            var outTable = tool.OutCommingTables(json, srcJson);

            var inCol  = tool.InCommingColumns(json, srcJson);
            var outCol = tool.OutCommingColumn(json, srcJson);

            var inRel  = tool.InCommingRelation(json, srcJson);
            var outRel = tool.OutCommingRelation(json, srcJson);

            var builder = Create;

            foreach (var item in inTable)
            {
                ICreateTableWithColumnOrSchemaOrDescriptionSyntax tableBuilder = builder.Table(item);
                tableBuilder.WithColumn("Id").AsGuid();
            }

            foreach (var item in inCol)
            {
                var colOnTableName = FindTableName(item.Key, json.tables);
                foreach (var colItem in item.Value)
                {
                    ICreateColumnOnTableSyntax colBuilder       = Create.Column(colItem.name.Value);
                    ICreateColumnAsTypeSyntax  coOptionlBuilder = colBuilder.OnTable(colOnTableName);
                    //coOptionlBuilder.AsString();
                    ProcessType(colItem.type.Value, coOptionlBuilder);
                }
            }

            foreach (var item in inRel)
            {
                ICreateForeignKeyFromTableSyntax relationBuilder = Create.ForeignKey(item);
                string tableName = json.tables[item.tableId].Value;
                relationBuilder.FromTable(tableName).ForeignColumn("").ToTable("").PrimaryColumn("");
            }

            var DelBuilder = Delete;

            foreach (var item in outTable)
            {
                DelBuilder.Table(item);
            }

            foreach (var item in outCol)
            {
                DelBuilder.Column("").FromTable("");
            }

            foreach (var item in outRel)
            {
                DelBuilder.ForeignKey("").OnTable("");
            }
        }
 public static ICreateColumnAsTypeSyntax OnTable(this ICreateColumnOnTableSyntax syntax, string schema, string table)
 {
     return(syntax.OnTable(table).InSchema(schema));
 }