Example #1
0
        public SchemaDefinitionCreateResult CreateSchemaDefinition(IEnumerable <Type> types, string schemaName = null)
        {
            SchemaName = schemaName ?? "null";
            FireEvent(CreatingSchemaStarted, EventArgs.Empty);

            AddAugmentations();

            FireEvent(CreatingTypeSchemaStarted, EventArgs.Empty);
            TypeSchema typeSchema = CreateTypeSchema(types, schemaName);

            FireEvent(CreatingTypeSchemaFinished, EventArgs.Empty);

            schemaName = schemaName ?? string.Format("_{0}_", typeSchema.Name);
            SchemaManager.SetSchema(schemaName, false); //TODO: enable more granular manipulation of schema file path in schema manager by giving it a PathProvider property
            SchemaName = schemaName;

            FireEvent(WritingDaoSchemaStarted, EventArgs.Empty);
            List <KeyColumn>        missingKeyColumns        = new List <KeyColumn>();
            List <ForeignKeyColumn> missingForeignKeyColumns = new List <ForeignKeyColumn>();

            WriteDaoSchema(typeSchema, SchemaManager, missingKeyColumns, missingForeignKeyColumns, TableNameProvider);
            FireEvent(WritingDaoSchemaFinished, EventArgs.Empty);

            SchemaDefinitionCreateResult result = new SchemaDefinitionCreateResult(SchemaManager.GetCurrentSchema(), typeSchema,
                                                                                   missingKeyColumns.ToArray(), missingForeignKeyColumns.ToArray());

            return(result);
        }
 public SqlStringBuilder WriteSchemaScript(Database database, TypeSchemaGenerator typeSchemaGenerator, SchemaManager schemaManager = null)
 {
     schemaManager = schemaManager ?? new SchemaManager {
         AutoSave = false
     };
     typeSchemaGenerator.SchemaManager = schemaManager;
     LastSchemaDefinitionCreateResult  = typeSchemaGenerator.CreateSchemaDefinition();
     return(WriteSchemaScript(database, LastSchemaDefinitionCreateResult));
 }
        public SqlStringBuilder WriteSchemaScript(Database database, SchemaDefinitionCreateResult schemaDefinitionCreateResult)
        {
            SchemaDefinition schemaDefinition     = schemaDefinitionCreateResult.SchemaDefinition;
            SchemaWriter     writer               = database.GetService <SchemaWriter>();
            IEnumerable <ForeignKeyAttribute> fks = GetForeignKeyAttributes(schemaDefinition);

            schemaDefinition.Tables.Each(table =>
            {
                string columnDefinitions = GetColumnDefinitions(table, writer);
                writer.WriteCreateTable(table.Name, columnDefinitions, fks.Where(fk => fk.Table.Equals(table.Name)).ToArray());
                writer.Go();
            });

            schemaDefinition.ForeignKeys.Each(fk =>
            {
                writer.WriteAddForeignKey(fk.TableName, fk.ReferenceName, fk.Name, fk.ReferencedTable, fk.ReferencedKey);
                writer.Go();
            });

            return(writer);
        }
Example #4
0
 public static void CommitSchema(this Database db, SchemaDefinitionCreateResult schemaInfo)
 {
     db.ExecuteSql(WriteSchemaScript(db, schemaInfo));
 }
Example #5
0
        public static SqlStringBuilder WriteSchemaScript(this Database db, SchemaDefinitionCreateResult schemaInfo)
        {
            TypeSchemaScriptWriter writer = new TypeSchemaScriptWriter();

            return(writer.WriteSchemaScript(db, schemaInfo));
        }