2018-04-02 21:25:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								const  log  =  require ( './log' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  fs  =  require ( 'fs' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  resourceDir  =  require ( './resource_dir' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  sql  =  require ( './sql' ) ;  
						 
					
						
							
								
									
										
										
										
											2019-04-23 21:27:45 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  utils  =  require ( './utils' ) ;  
						 
					
						
							
								
									
										
										
										
											2018-07-24 20:35:03 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  optionService  =  require ( './options' ) ;  
						 
					
						
							
								
									
										
										
										
											2020-04-08 20:38:50 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  port  =  require ( './port' ) ;  
						 
					
						
							
								
									
										
										
										
											2018-07-24 20:35:03 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  Option  =  require ( '../entities/option' ) ;  
						 
					
						
							
								
									
										
										
										
											2019-10-17 21:11:35 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  TaskContext  =  require ( './task_context.js' ) ;  
						 
					
						
							
								
									
										
										
										
											2020-07-02 22:57:17 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  migrationService  =  require ( './migration' ) ;  
						 
					
						
							
								
									
										
										
										
											2020-07-23 22:31:06 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  cls  =  require ( './cls' ) ;  
						 
					
						
							
								
									
										
										
										
											2018-04-02 21:25:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 21:42:41 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  dbReady  =  utils . deferred ( ) ;  
						 
					
						
							
								
									
										
										
										
											2020-04-04 21:49:57 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-07-23 22:31:06 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								cls . init ( initDbConnection ) ;  
						 
					
						
							
								
									
										
										
										
											2018-04-02 21:25:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 12:31:38 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  schemaExists ( )  {  
						 
					
						
							
								
									
										
										
										
											2020-06-20 21:42:41 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  ! ! sql . getValue ( ` SELECT name FROM sqlite_master
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                 WHERE  type  =  'table'  AND  name  =  'options' ` );
 
							 
						 
					
						
							
								
									
										
										
										
											2018-07-22 19:56:20 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2018-07-21 08:55:24 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 12:31:38 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  isDbInitialized ( )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( ! schemaExists ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2018-07-24 08:12:36 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 12:31:38 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    const  initialized  =  sql . getValue ( "SELECT value FROM options WHERE name = 'initialized'" ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-07-24 08:12:36 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 21:42:41 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  initialized  ===  'true' ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-07-24 08:12:36 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-07-02 22:57:17 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								async  function  initDbConnection ( )  {  
						 
					
						
							
								
									
										
										
										
											2020-06-20 21:42:41 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( ! isDbInitialized ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-06 20:58:26 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        log . info ( ` DB not initialized, please visit setup page `  +  ( utils . isElectron ( )  ?  ''  :  `  - http://[your-server-host]: ${ await  port }  to see instructions on how to initialize Trilium. ` ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-04-02 21:25:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 21:42:41 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2018-04-03 22:15:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-07-02 22:57:17 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    await  migrationService . migrateIfNecessary ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-04-03 22:15:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 21:42:41 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    require ( './options_init' ) . initStartupOptions ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    dbReady . resolve ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-07-22 19:56:20 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2018-04-02 21:25:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-07-02 21:08:18 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								async  function  createInitialDatabase ( username ,  password ,  theme )  {  
						 
					
						
							
								
									
										
										
										
											2018-07-23 21:15:32 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    log . info ( "Creating initial database ..." ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-04-02 22:33:54 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 12:31:38 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( isDbInitialized ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2018-07-24 08:12:36 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        throw  new  Error ( "DB is already initialized" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-04-02 22:33:54 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    const  schema  =  fs . readFileSync ( resourceDir . DB _INIT _DIR  +  '/schema.sql' ,  'UTF-8' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-03-26 17:05:17 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    const  demoFile  =  fs . readFileSync ( resourceDir . DB _INIT _DIR  +  '/demo.zip' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-04-02 22:33:54 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-07-02 21:08:18 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    let  rootNote ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 12:31:38 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    sql . transactional ( ( )  =>  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        sql . executeScript ( schema ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-11-16 14:36:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        const  Note  =  require ( "../entities/note" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        const  Branch  =  require ( "../entities/branch" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-07-02 21:08:18 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        rootNote  =  new  Note ( { 
							 
						 
					
						
							
								
									
										
										
										
											2018-11-16 14:36:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            noteId :  'root' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            title :  'root' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            type :  'text' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            mime :  'text/html' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) . save ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 12:31:38 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        rootNote . setContent ( '' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-02-20 23:07:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 12:31:38 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        new  Branch ( { 
							 
						 
					
						
							
								
									
										
										
										
											2018-11-16 14:36:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            branchId :  'root' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            noteId :  'root' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            parentNoteId :  'none' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            isExpanded :  true , 
							 
						 
					
						
							
								
									
										
										
										
											2019-10-19 12:36:16 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            notePosition :  10 
							 
						 
					
						
							
								
									
										
										
										
											2018-11-16 14:36:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } ) . save ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-07-02 21:08:18 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    const  dummyTaskContext  =  new  TaskContext ( "initial-demo-import" ,  'import' ,  false ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-11-16 14:36:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-07-02 21:08:18 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    const  zipImportService  =  require ( "./import/zip" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    await  zipImportService . importZip ( dummyTaskContext ,  demoFile ,  rootNote ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-02-24 12:24:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-07-02 21:08:18 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    sql . transactional ( ( )  =>  { 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 12:31:38 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        const  startNoteId  =  sql . getValue ( "SELECT noteId FROM branches WHERE parentNoteId = 'root' AND isDeleted = 0 ORDER BY notePosition" ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-04-02 22:33:54 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-07-23 21:15:32 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        const  optionsInitService  =  require ( './options_init' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 12:31:38 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        optionsInitService . initDocumentOptions ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        optionsInitService . initSyncedOptions ( username ,  password ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        optionsInitService . initNotSyncedOptions ( true ,  startNoteId ,  {  theme  } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-04-02 22:33:54 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-07-23 21:15:32 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    log . info ( "Schema and initial content generated." ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-04-02 22:33:54 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 12:31:38 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    initDbConnection ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-04-02 21:25:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 12:31:38 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  createDatabaseForSync ( options ,  syncServerHost  =  '' ,  syncProxy  =  '' )  {  
						 
					
						
							
								
									
										
										
										
											2018-07-24 20:35:03 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    log . info ( "Creating database for sync" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 12:31:38 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( isDbInitialized ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2018-07-24 20:35:03 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        throw  new  Error ( "DB is already initialized" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2018-07-23 21:15:32 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    const  schema  =  fs . readFileSync ( resourceDir . DB _INIT _DIR  +  '/schema.sql' ,  'UTF-8' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 12:31:38 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    sql . transactional ( ( )  =>  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        sql . executeScript ( schema ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-07-23 21:15:32 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 12:31:38 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        require ( './options_init' ) . initNotSyncedOptions ( false ,  'root' ,  {  syncServerHost ,  syncProxy  } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-07-24 20:35:03 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // document options required for sync to kick off
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        for  ( const  opt  of  options )  { 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 12:31:38 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            new  Option ( opt ) . save ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-07-24 20:35:03 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2018-07-23 21:15:32 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    log . info ( "Schema and not synced options generated." ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 21:42:41 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  setDbAsInitialized ( )  {  
						 
					
						
							
								
									
										
										
										
											2020-06-20 12:31:38 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( ! isDbInitialized ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        optionService . setOption ( 'initialized' ,  'true' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-07-24 20:35:03 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 12:31:38 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        initDbConnection ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-11-30 11:36:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2018-07-24 20:35:03 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-07-02 22:57:17 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								dbReady . then ( ( )  =>  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    setInterval ( ( )  =>  require ( './backup' ) . regularBackup ( ) ,  4  *  60  *  60  *  1000 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // kickoff first backup soon after start up
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    setTimeout ( ( )  =>  require ( './backup' ) . regularBackup ( ) ,  5  *  60  *  1000 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 12:31:38 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								log . info ( "DB size: "  +  sql . getValue ( "SELECT page_count * page_size / 1000 as size FROM pragma_page_count(), pragma_page_size()" )  +  " KB" ) ;  
						 
					
						
							
								
									
										
										
										
											2019-01-15 20:00:24 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-04-02 21:25:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								module . exports  =  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    dbReady , 
							 
						 
					
						
							
								
									
										
										
										
											2018-07-24 08:12:36 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    schemaExists , 
							 
						 
					
						
							
								
									
										
										
										
											2018-07-22 19:56:20 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    isDbInitialized , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    initDbConnection , 
							 
						 
					
						
							
								
									
										
										
										
											2018-07-23 21:15:32 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    createInitialDatabase , 
							 
						 
					
						
							
								
									
										
										
										
											2018-07-24 20:35:03 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    createDatabaseForSync , 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-20 21:42:41 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    setDbAsInitialized 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-17 23:03:46 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} ;