wochenbericht-manager/src/jsx/static/migration-sc/0-1.jsx

75 lines
2.2 KiB
JavaScript

import {DB} from './../storage'
export class Mig_0_1{
constructor(){
var res = DB.cdb.exec("SELECT * FROM settings WHERE ke='version'");
if(res.length == 0){
console.log("UPDATE STORAGE")
this.mig_tasks();
}
}
mig_tasks(){
// TODO: MIGRATION TOOL FOR SAVE VERSION 1
DB.cdb.exec("CREATE TABLE IF NOT EXISTS days_have_tasks(day_id INTEGER ,task_id INTEGER);");
var res = DB.cdb.exec("SELECT * FROM days")[0].values;
console.log(res)
if(res.length>0){
for(var i = 0;i<res.length;i++){
// 5 = taskList
//console.log(res[i][5])
var tasks_for_day = res[i][5].split(',');
// 0 = Tag ID
var day_id = res[i][0];
for(var j = 0;j<tasks_for_day.length;j++){
console.log(tasks_for_day[j])
var sql2 = "INSERT INTO days_have_tasks VALUES ( "+day_id+","+tasks_for_day[j]+");";
//console.log(sql2)
DB.cdb.exec(sql2);
}
}
}
this.deleteOldTaskColumn();
}
deleteOldTaskColumn(){
//var sql = `ALTER TABLE "days" DROP COLUMN "taskList";`
var sql = `
PRAGMA foreign_keys=off;
BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS new_days(
id INTEGER PRIMARY KEY AUTOINCREMENT,
date DATETIME ,
startTime DATETIME ,
breakTime INTEGER ,
endTime DATETIME
);
INSERT INTO new_days(id,date,startTime,breakTime,endTime)
SELECT id,date,startTime,breakTime,endTime
FROM days;
DROP TABLE days;
ALTER TABLE new_days RENAME TO days;
COMMIT;
PRAGMA foreign_keys=on;
`
DB.cdb.exec(sql);
this.addNotesTable();
}
addNotesTable(){
var sql = `CREATE TABLE notes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
date DATETIME ,
title TEXT,
text TEXT,
priority TEXT
);`
DB.cdb.exec(sql);
this.updateVersion();
}
updateVersion(){
var sql = `INSERT INTO settings (ke,val) VALUES ("version","2")`
DB.cdb.exec(sql);
}
}