// maintenance database setup

        private void run_maintenance_database_setup(bool restoring_the_database, Migrate migrator, ConfigurationPropertyHolder configuration, Assembly mappings_assembly, Assembly conventions_assembly, string name_of_script)
        {
            var updateScriptFileName = Path.Combine(path_to_sql_scripts_up_folder, name_of_script);
            if (File.Exists(updateScriptFileName)) { File.Delete(updateScriptFileName); }

            if (restoring_the_database)
            {
                configuration.Restore = true;
                migrator.RunRestore();
            }

            upgrade_database_schema(configuration.DatabaseName, mappings_assembly, conventions_assembly);

            configuration.Restore = false;
            migrator.Run();
        }
        // maintenance database setup
        private void run_maintenance_database_setup(bool restoring_the_database, Migrate migrator, ConfigurationPropertyHolder configuration, Assembly mappings_assembly, Assembly conventions_assembly)
        {
            if (restoring_the_database)
            {
                configuration.Restore = true;
                migrator.RunRestore();
            }

            upgrade_database_schema(configuration.DatabaseName, mappings_assembly, conventions_assembly);

            configuration.Restore = false;
            migrator.Run();
        }