@ -216,9 +216,10 @@ sub archive_database
# Make sure I have sane values.
$ anvil - > data - > { sys } { database } { archive } { compress } = 1 if not defined $ anvil - > data - > { sys } { database } { archive } { compress } ;
$ anvil - > data - > { sys } { database } { archive } { count } = 10000 if not defined $ anvil - > data - > { sys } { database } { archive } { count } ;
$ anvil - > data - > { sys } { database } { archive } { division } = 25000 if not defined $ anvil - > data - > { sys } { database } { archive } { division } ;
$ anvil - > data - > { sys } { database } { archive } { trigger } = 20000 if not defined $ anvil - > data - > { sys } { database } { archive } { trigger } ;
$ anvil - > data - > { sys } { database } { archive } { count } = 25000 if not defined $ anvil - > data - > { sys } { database } { archive } { count } ;
$ anvil - > data - > { sys } { database } { archive } { division } = 30000 if not defined $ anvil - > data - > { sys } { database } { archive } { division } ;
$ anvil - > data - > { sys } { database } { archive } { trigger } = 50000 if not defined $ anvil - > data - > { sys } { database } { archive } { trigger } ;
$ anvil - > data - > { sys } { database } { archive } { save_to_disk } = 0
$ anvil - > Log - > variables ( { source = > $ THIS_FILE , line = > __LINE__ , level = > $ debug , list = > {
"sys::database::archive::compress" = > $ anvil - > data - > { sys } { database } { archive } { compress } ,
"sys::database::archive::count" = > $ anvil - > data - > { sys } { database } { archive } { count } ,
@ -234,25 +235,6 @@ sub archive_database
"sys::database::archive::directory" = > $ anvil - > data - > { sys } { database } { archive } { directory } ,
} } ) ;
}
if ( not - d $ anvil - > data - > { sys } { database } { archive } { directory } )
{
my $ failed = $ anvil - > Storage - > make_directory ( {
debug = > $ debug ,
directory = > $ anvil - > data - > { sys } { database } { archive } { directory } ,
mode = > "0700" ,
user = > "root" ,
group = > "root" ,
} ) ;
$ anvil - > Log - > variables ( { source = > $ THIS_FILE , line = > __LINE__ , level = > $ debug , list = > { failed = > $ failed } } ) ;
if ( $ failed )
{
# No directory to archive into...
$ anvil - > Log - > entry ( { source = > $ THIS_FILE , line = > __LINE__ , level = > $ debug , priority = > "err" , key = > "error_0098" , variables = > {
directory = > $ anvil - > data - > { sys } { database } { archive } { directory } ,
} } ) ;
return ( "!!error!!" ) ;
}
}
# Make sure the numerical values are sane
if ( $ anvil - > data - > { sys } { database } { archive } { count } !~ /^\d+$/ )
@ -15609,10 +15591,36 @@ sub _archive_table
my $ offset = $ count - $ records_per_loop ;
my $ loop = 0 ;
my $ do_delete = 1 ;
for ( 1 .. $ loops )
{
# We need to date stamp from the closest record to the offset.
$ loop + + ;
# Are we archiving to disk?
$ do_delete = 1 ;
if ( $ anvil - > data - > { sys } { database } { archive } { save_to_disk } )
{
if ( not - d $ anvil - > data - > { sys } { database } { archive } { directory } )
{
my $ failed = $ anvil - > Storage - > make_directory ( {
debug = > $ debug ,
directory = > $ anvil - > data - > { sys } { database } { archive } { directory } ,
mode = > "0700" ,
user = > "root" ,
group = > "root" ,
} ) ;
$ anvil - > Log - > variables ( { source = > $ THIS_FILE , line = > __LINE__ , level = > $ debug , list = > { failed = > $ failed } } ) ;
if ( $ failed )
{
# No directory to archive into...
$ anvil - > Log - > entry ( { source = > $ THIS_FILE , line = > __LINE__ , level = > $ debug , priority = > "err" , key = > "error_0098" , variables = > {
directory = > $ anvil - > data - > { sys } { database } { archive } { directory } ,
} } ) ;
return ( "!!error!!" ) ;
}
}
my $ sql_file = "
- - Dump created at: [ ".$anvil->Get->date_and_time()." ]
SET statement_timeout = 0 ;
@ -15709,13 +15717,17 @@ COPY history.".$table." (";
if ( $ failed )
{
$ do_delete = 0 ;
$ anvil - > Log - > entry ( { source = > $ THIS_FILE , line = > __LINE__ , level = > 0 , priority = > "err" , key = > "error_0099" , variables = > {
file = > $ archive_file ,
table = > $ table ,
} } ) ;
last ;
}
else
}
# Do Delete.
if ( $ do_delete )
{
$ anvil - > Log - > entry ( { source = > $ THIS_FILE , line = > __LINE__ , level = > 1 , key = > "log_0283" } ) ;
$ vacuum = 1 ;
@ -15739,7 +15751,6 @@ COPY history.".$table." (";
$ offset -= $ records_per_loop ;
$ anvil - > Log - > variables ( { source = > $ THIS_FILE , line = > __LINE__ , level = > $ debug , list = > { offset = > $ offset } } ) ;
}
$ anvil - > Log - > variables ( { source = > $ THIS_FILE , line = > __LINE__ , level = > $ debug , list = > { vacuum = > $ vacuum } } ) ;