2017-03-11 1 views
0

App Maker 데이터베이스의 야간 백업을 수행 할 수있는 방법이 있습니까? 사용자가 우발적으로 데이터를 삭제하는 경우를 대비하여?야간 앱 제조업체 데이터 백업

출력 된 스프레드 시트 만있는 경우에도 허용됩니다.

답변

2

Installable Trigger 기반의 시계를 만들 수 있습니다.이 시계는 근무 시간 전 아침에 하루에 한 번 실행됩니다.

이 코드 조각은 서버 측 스크립트에있을 것입니다과 같이 보일 것입니다 :

function createInstallableTrigger() { 
 
    // Runs at 5am in the timezone of the script 
 
    ScriptApp.newTrigger("backUp") 
 
    .timeBased() 
 
    .atHour(5) 
 
    .everyDays(1) // Frequency is required if you are using atHour() or nearMinute() 
 
    .create(); 
 
} 
 

 
function backUp() { 
 
    try { 
 
    var spreadSheet = SpreadsheetApp.openById("").getActiveSheet(), 
 
     dataToBackUp = [], 
 
     globalKeys = { 
 
      model: ["first_name", "last_name", "email"], 
 
      label: ["First Name", "Last Name", "Email"] 
 
     }, 
 
    var records = app.models.requests.newQuery().run(); 
 
    if(records.length >= 1) { 
 
     for (var i = 0; i < records.length; i++) { 
 
     var newLine = []; 
 
     for (var x = 0; x < globalKeys.model.length; x++) { 
 
      newLine.push(records[i][globalKeys.model[x]]); 
 
     } 
 
     dataToBackUp.push(newLine); 
 
     // at the end, push it all on the spreadsheet 
 
     if(i === records.length - 1) { 
 
      // check if there is any entry at all 
 
      if(dataToBackUp.length >= 1) { 
 
      // append column titles first 
 
      spreadSheet.appendRow(globalKeys.label); 
 
      // 
 
      spreadSheet.getRange(2, 1, dataToBackUp.length, globalKeys.model.length).setValues(dataToBackUp); 
 
      } 
 
     } 
 
     } 
 
    } 
 
    } catch(e) { 
 
    console.log(e); 
 
    } 
 
}

+0

이 도움을 주셔서 감사합니다! –

+0

작동한다면 알려주세요. 답변을 선택하십시오. –

+0

이 코드가 많은 것이어서 죄송합니다. 그래서 나는 Server Side Script를 만들고 거기에 그 코드를 복사하겠습니까? 어디에서 스프레드 시트를 만들거나 저장할 것입니까? 또한 모델/라벨 섹션에서 모든 모델의 모든 라벨을 전체 앱에 입력해야합니까? 그렇다면 라벨의 수와 그 라벨이 아직도 변하고 있기 때문에 가치가있는 것보다 더 많은 문제가 될 수 있습니다. 배포 섹션에서 수동으로 데이터 내보내기를 할 수 있다는 것을 알고 있습니다. 제 희망은 그것을 수동으로하지 않고도 시작할 수있는 방법이 있다는 것입니다. 그러나 나는 그것이 더 간단한 선택일지도 모른다라고 생각한다. –