public static DesignSchemaMigrations FromStoreMigrations(StoreSchemaMigrations src) { var result = new DesignSchemaMigrations(); result.Migrations = src.Migrations.Select(s => new DesignMigration(s)).ToList(); return(result); }
public DesignSchemaMigrations GetCurrentMigrations() { StoreSchemaMigrations package = _migrationAggregator.GenerateMigrations(Schema, SchemaMigrations, _designRecords); var result = DesignSchemaMigrations.FromStoreMigrations(package); return(result); }
public StoreSchemaMigrations GenerateMigrations(DesignSchema schema, DesignSchemaMigrations src, List <DesignLogRecord> log) { if (schema.Version == INITIAL_VERSION) { var package = new StoreSchemaMigrations { SchemaName = schema.Name, Migrations = new StoreMigration[] { GenerateInitialMigration(schema, log) } }; return(package); } else { var package = new StoreSchemaMigrations { SchemaName = schema.Name, Migrations = src.GetStoreMigrations() }; var lastMigration = package.Migrations[package.Migrations.Length - 1]; // we clone it to make sure we don't modify SchemaMigrations data lastMigration = lastMigration.GetCopy() as StoreMigration; package.Migrations[package.Migrations.Length - 1] = lastMigration; var lastCommands = new List <MigrationCommand>(lastMigration.Commands ?? new MigrationCommand[0]); var newMigration = GenerateIncrementalMigration(schema, log); lastCommands.AddRange(newMigration.Commands); lastMigration.Commands = lastCommands.ToArray(); return(package); } }
public void SaveMigrations(string path) { StoreSchemaMigrations package = _migrationAggregator.GenerateMigrations(Schema, SchemaMigrations, _designRecords); var fileName = Path.Combine(path, GenerateMigrationFileName(path)); var parameters = new StorageParameters { FileName = fileName }; var schema = DesignSchemaConvert.ToStoreSchema(Schema); _schemaStorage.SaveMigration(package, parameters); SchemaMigrations = DesignSchemaMigrations.FromStoreMigrations(package); ClearLog(); }
public void SaveMigration(StoreSchemaMigrations package, StorageParameters parameters) { var options = new JsonSerializerOptions() { WriteIndented = true }; var json = System.Text.Json.JsonSerializer.Serialize(package, options); using (var sw = new StreamWriter(parameters.FileName, false)) { sw.Write(json); } }