Index: src/libserializer/TSQLiteTaskSchema.cpp
===================================================================
diff -u -r08717141ce5f6926116c298cbc9442094a45bb67 -r9229cae5bff1308d7b096a0bd10d3dc3723918f9
--- src/libserializer/TSQLiteTaskSchema.cpp	(.../TSQLiteTaskSchema.cpp)	(revision 08717141ce5f6926116c298cbc9442094a45bb67)
+++ src/libserializer/TSQLiteTaskSchema.cpp	(.../TSQLiteTaskSchema.cpp)	(revision 9229cae5bff1308d7b096a0bd10d3dc3723918f9)
@@ -125,16 +125,30 @@
 			_T("buffer_index INT NOT NULL, current_path varchar(32768) NOT NULL, ci_silent_resume boolean NOT NULL)"));
 		tStatement.Step();
 
-		tStatement.Prepare(_T("CREATE TABLE feedback(id BIGINT UNIQUE, file_error INT NOT NULL, file_already_exists INT NOT NULL, not_enough_space INT NOT NULL, operation_finished INT NOT NULL, operation_error INT NOT NULL)"));
-		tStatement.Step();
-
 		tStatement.Prepare(_T("CREATE TABLE feedback_already_exists(id BIGINT UNIQUE, use_mask INT NOT NULL, mask varchar(32768) NOT NULL, ")
 			_T("use_exclude_mask INT NOT NULL, exclude_mask varchar(32768) NOT NULL, ")
 			_T("use_date_compare INT NOT NULL, date_compare_type INT NOT NULL, ")
 			_T("use_size_compare INT NOT NULL, size_compare_type INT NOT NULL, ")
 			_T("result INT NOT NULL)"));
 		tStatement.Step();
 
+		tStatement.Prepare(_T("CREATE TABLE feedback_error(id BIGINT UNIQUE, use_mask INT NOT NULL, mask varchar(32768) NOT NULL, ")
+			_T("use_exclude_mask INT NOT NULL, exclude_mask varchar(32768) NOT NULL, ")
+			_T("use_error_type INT NOT NULL, error_type INT NOT NULL, ")
+			_T("use_system_error_no INT NOT NULL, system_error_no INT NOT NULL, ")
+			_T("result INT NOT NULL)"));
+		tStatement.Step();
+
+		tStatement.Prepare(_T("CREATE TABLE feedback_not_enough_space(id BIGINT UNIQUE, use_mask INT NOT NULL, mask varchar(32768) NOT NULL, ")
+			_T("use_exclude_mask INT NOT NULL, exclude_mask varchar(32768) NOT NULL, ")
+			_T("result INT NOT NULL)"));
+		tStatement.Step();
+
+		tStatement.Prepare(_T("CREATE TABLE feedback_operation_event(id BIGINT UNIQUE,")
+			_T("use_operation_event INT NOT NULL, operation_event INT NOT NULL, ")
+			_T("result INT NOT NULL)"));
+		tStatement.Step();
+
 		// and finally set the database version to current one
 		tVersion.SetVersion(7);
 	}
@@ -274,8 +288,8 @@
 		sqlite::TSQLiteStatement tStatement(spDatabase);
 
 		// remove old feedback table (with no migration)
-// 		tStatement.Prepare(_T("DROP TABLE feedback"));
-// 		tStatement.Step();
+		tStatement.Prepare(_T("DROP TABLE feedback"));
+		tStatement.Step();
 
 		// create new feedback tables
 		tStatement.Prepare(_T("CREATE TABLE feedback_already_exists(id BIGINT UNIQUE, use_mask INT NOT NULL, mask varchar(32768) NOT NULL, ")
@@ -285,6 +299,23 @@
 			_T("result INT NOT NULL)"));
 		tStatement.Step();
 
+		tStatement.Prepare(_T("CREATE TABLE feedback_error(id BIGINT UNIQUE, use_mask INT NOT NULL, mask varchar(32768) NOT NULL, ")
+			_T("use_exclude_mask INT NOT NULL, exclude_mask varchar(32768) NOT NULL, ")
+			_T("use_error_type INT NOT NULL, error_type INT NOT NULL, ")
+			_T("use_system_error_no INT NOT NULL, system_error_no INT NOT NULL, ")
+			_T("result INT NOT NULL)"));
+		tStatement.Step();
+
+		tStatement.Prepare(_T("CREATE TABLE feedback_not_enough_space(id BIGINT UNIQUE, use_mask INT NOT NULL, mask varchar(32768) NOT NULL, ")
+			_T("use_exclude_mask INT NOT NULL, exclude_mask varchar(32768) NOT NULL, ")
+			_T("result INT NOT NULL)"));
+		tStatement.Step();
+
+		tStatement.Prepare(_T("CREATE TABLE feedback_operation_event(id BIGINT UNIQUE,")
+			_T("use_operation_event INT NOT NULL, operation_event INT NOT NULL, ")
+			_T("result INT NOT NULL)"));
+		tStatement.Step();
+
 		tVersion.SetVersion(7);
 	}
 }