Beispiel #1
0
        /// <summary>
        /// Tests the given <see cref="SQLFile"/> on the given <see cref="Database"/>.
        /// </summary>
        public void CreateData(Database database, SQLFile target)
        {
            if (database.CurrentVersion < target.Version)
            {
                throw new InvalidOperationException("The target file was not executed on the database");
            }

            // read file
            PgDatabase postgresDatabase = PgDumpLoader.LoadDatabaseSchema(target.Path, database, false, false);

            // create data for tables
            foreach (var schema in postgresDatabase.Schemas)
            {
                var tables = new Dictionary <PgTable, bool>();
                foreach (var table in schema.Tables)
                {
                    tables.Add(table, false);
                }

                foreach (var table in schema.Tables)
                {
                    this.CreateData(database, target, schema, table, tables);
                }
            }
        }
Beispiel #2
0
        private static void LoadSchema(int i)
        {
            var assembly = Assembly.GetExecutingAssembly();

            using (var stream = assembly.GetManifestResourceStream($"pgdiff.test.scripts.loader.schema_{i}.sql"))
                using (var reader = new StreamReader(stream))
                {
                    PgDumpLoader.LoadDatabaseSchema(reader, "UTF-8", false, false);
                }
        }
Beispiel #3
0
        public void TestEmptyMethods(Database database, SQLFile target)
        {
            if (database.CurrentVersion < target.Version)
            {
                throw new InvalidOperationException("The target file was not executed on the database");
            }

            // read file
            PgDatabase oldDatabase = PgDumpLoader.LoadDatabaseSchema(target.Path, database, false, false);

            // call empty functions
        }
        public bool Create(StreamWriter writer, Database database, string oldDumpFile, string newDumpFile)
        {
            var oldDatabase = PgDumpLoader.LoadDatabaseSchema(oldDumpFile, database, false, false);
            var newDatabase = PgDumpLoader.LoadDatabaseSchema(newDumpFile, database, false, false);

            // mark the file as deleteable if no changes where made
            var created = false;

            created = this.DiffDatabaseSchemas(database, writer, oldDatabase, newDatabase, false);
            writer.Close();
            return(created);
        }
Beispiel #5
0
        public static void CreateDiff(TextWriter writer, PgDiffArguments arguments, TextReader oldInputStream, TextReader newInputStream)
        {
            var oldDatabase = PgDumpLoader.LoadDatabaseSchema(
                oldInputStream,
                arguments.InCharsetName,
                arguments.OutputIgnoredStatements,
                arguments.IgnoreSlonyTriggers);

            var newDatabase = PgDumpLoader.LoadDatabaseSchema(
                newInputStream,
                arguments.InCharsetName,
                arguments.OutputIgnoredStatements,
                arguments.IgnoreSlonyTriggers);

            DiffDatabaseSchemas(writer, arguments, oldDatabase, newDatabase);
        }
Beispiel #6
0
        public static void CreateDiff(TextWriter writer, PgDiffArguments arguments)
        {
            var oldDatabase = PgDumpLoader.LoadDatabaseSchema(
                arguments.OldDumpFile,
                arguments.InCharsetName,
                arguments.OutputIgnoredStatements,
                arguments.IgnoreSlonyTriggers);

            var newDatabase = PgDumpLoader.LoadDatabaseSchema(
                arguments.NewDumpFile,
                arguments.InCharsetName,
                arguments.OutputIgnoredStatements,
                arguments.IgnoreSlonyTriggers);

            DiffDatabaseSchemas(writer, arguments, oldDatabase, newDatabase);
        }