Exemple #1
0
        public static DesignSchemaMigrations FromStoreMigrations(StoreSchemaMigrations src)
        {
            var result = new DesignSchemaMigrations();

            result.Migrations = src.Migrations.Select(s => new DesignMigration(s)).ToList();
            return(result);
        }
Exemple #2
0
        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);
            }
        }
Exemple #4
0
        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);
            }
        }