|
@@ -17,6 +17,7 @@ import java.nio.file.Paths
|
|
|
import java.nio.file.StandardCopyOption
|
|
import java.nio.file.StandardCopyOption
|
|
|
import java.time.LocalDateTime
|
|
import java.time.LocalDateTime
|
|
|
import java.time.format.DateTimeFormatter
|
|
import java.time.format.DateTimeFormatter
|
|
|
|
|
+import kotlin.io.path.name
|
|
|
import kotlin.system.exitProcess
|
|
import kotlin.system.exitProcess
|
|
|
import kotlin.time.measureTimedValue
|
|
import kotlin.time.measureTimedValue
|
|
|
|
|
|
|
@@ -63,31 +64,59 @@ class MigrationFileService(
|
|
|
exitProcess(1)
|
|
exitProcess(1)
|
|
|
}
|
|
}
|
|
|
runBlocking {
|
|
runBlocking {
|
|
|
- runningTableMigration.addAll(migrationFile.map { it.table })
|
|
|
|
|
- migrationFile.map {
|
|
|
|
|
- val pathMigrationFile = renameToTemp(it.migrationFile)
|
|
|
|
|
- val pathHistoryFile = it.historyFile?.let { i -> renameToTemp(i) }
|
|
|
|
|
- val pathGroupFile = it.groupFile?.let { i -> renameToTemp(i) }
|
|
|
|
|
- val (migrationData, historyData, groupData) =
|
|
|
|
|
- prepareMigrationData(
|
|
|
|
|
- pathMigrationFile!!.toFile(),
|
|
|
|
|
- pathHistoryFile?.toFile(),
|
|
|
|
|
- pathGroupFile?.toFile()
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ runningTableMigration.addAll(migrationFile.map { it.migrationFile.name })
|
|
|
|
|
+ migrationFile.forEach { mi -> queuePrepareMigrationData.add(mi) }
|
|
|
|
|
+// migrationFile.map {
|
|
|
|
|
+// val pathMigrationFile = renameToTemp(it.migrationFile)
|
|
|
|
|
+// val pathHistoryFile = it.historyFile?.let { i -> renameToTemp(i) }
|
|
|
|
|
+// val pathGroupFile = it.groupFile?.let { i -> renameToTemp(i) }
|
|
|
|
|
+// val (migrationData, historyData, groupData) =
|
|
|
|
|
+// prepareMigrationData(
|
|
|
|
|
+// pathMigrationFile!!.toFile(),
|
|
|
|
|
+// pathHistoryFile?.toFile(),
|
|
|
|
|
+// pathGroupFile?.toFile()
|
|
|
|
|
+// )
|
|
|
|
|
+//
|
|
|
|
|
+// it.rootData = migrationData
|
|
|
|
|
+// it.historyData = historyData
|
|
|
|
|
+// it.groupData = groupData
|
|
|
|
|
+// it
|
|
|
|
|
+// }.forEach { fi ->
|
|
|
|
|
+// if (fi.table != "calltransaction") {
|
|
|
|
|
+// fi.unique?.let { unique -> loadTemporaryDataEntity(fi.table, unique) }
|
|
|
|
|
+// }
|
|
|
|
|
+// val finalizedData = finalizedDataService.processData(fi)
|
|
|
|
|
+// queueInsertMigrationData.add(fi to finalizedData)
|
|
|
|
|
+// }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- it.rootData = migrationData
|
|
|
|
|
- it.historyData = historyData
|
|
|
|
|
- it.groupData = groupData
|
|
|
|
|
- it
|
|
|
|
|
- }.forEach { fi ->
|
|
|
|
|
- if (fi.table != "calltransaction") {
|
|
|
|
|
- fi.unique?.let { unique -> loadTemporaryDataEntity(fi.table, unique) }
|
|
|
|
|
|
|
+ fun queueProcessingPrepareDataMigration() {
|
|
|
|
|
+ executorPrepareData.submit {
|
|
|
|
|
+ while (true) {
|
|
|
|
|
+ val migrationData = queuePrepareMigrationData.take()
|
|
|
|
|
+ migrationData.let {
|
|
|
|
|
+ val pathMigrationFile = renameToTemp(it.migrationFile)
|
|
|
|
|
+ val pathHistoryFile = it.historyFile?.let { i -> renameToTemp(i) }
|
|
|
|
|
+ val pathGroupFile = it.groupFile?.let { i -> renameToTemp(i) }
|
|
|
|
|
+ val (migrationData, historyData, groupData) =
|
|
|
|
|
+ prepareMigrationData(
|
|
|
|
|
+ pathMigrationFile!!.toFile(),
|
|
|
|
|
+ pathHistoryFile?.toFile(),
|
|
|
|
|
+ pathGroupFile?.toFile()
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
+ it.rootData = migrationData
|
|
|
|
|
+ it.historyData = historyData
|
|
|
|
|
+ it.groupData = groupData
|
|
|
|
|
+ if (it.table != "calltransaction") {
|
|
|
|
|
+ it.unique?.let { unique -> loadTemporaryDataEntity(it.table, unique) }
|
|
|
|
|
+ }
|
|
|
|
|
+ val finalizedData = finalizedDataService.processData(it)
|
|
|
|
|
+ queueInsertMigrationData.add(it to finalizedData)
|
|
|
}
|
|
}
|
|
|
- val finalizedData = finalizedDataService.processData(fi)
|
|
|
|
|
- queueInsertMigrationData.add(fi to finalizedData)
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private fun prepareFile(): MutableList<MigrationFileData> {
|
|
private fun prepareFile(): MutableList<MigrationFileData> {
|
|
@@ -133,20 +162,20 @@ class MigrationFileService(
|
|
|
return migrationFileData
|
|
return migrationFileData
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- suspend fun prepareMigrationData(
|
|
|
|
|
|
|
+ fun prepareMigrationData(
|
|
|
migrationFile: File,
|
|
migrationFile: File,
|
|
|
historyFile: File?,
|
|
historyFile: File?,
|
|
|
groupFile: File?
|
|
groupFile: File?
|
|
|
- ) = coroutineScope {
|
|
|
|
|
- val migrationDeferred = async(Dispatchers.IO) { readQueryDataToMap(migrationFile) }
|
|
|
|
|
- val historyDeferred = async(Dispatchers.IO) { historyFile?.let { readQueryDataToMap(it) } }
|
|
|
|
|
- val groupDeferred = async(Dispatchers.IO) { groupFile?.let { readQueryDataToMap(it) } }
|
|
|
|
|
|
|
+ ): Triple<List<Map<String, Any?>>, List<Map<String, Any?>>?, List<Map<String, Any?>>?> {
|
|
|
|
|
+ val migrationDeferred = readQueryDataToMap(migrationFile) //async(Dispatchers.IO) { readQueryDataToMap(migrationFile) }
|
|
|
|
|
+ val historyDeferred = historyFile?.let { readQueryDataToMap(it) } //async(Dispatchers.IO) { historyFile?.let { readQueryDataToMap(it) } }
|
|
|
|
|
+ val groupDeferred = groupFile?.let { readQueryDataToMap(it) } //async(Dispatchers.IO) { groupFile?.let { readQueryDataToMap(it) } }
|
|
|
|
|
|
|
|
- val migrationData = migrationDeferred.await()
|
|
|
|
|
- val historyData = historyDeferred.await()
|
|
|
|
|
- val groupData = groupDeferred.await()
|
|
|
|
|
|
|
+ val migrationData = migrationDeferred//.await()
|
|
|
|
|
+ val historyData = historyDeferred//.await()
|
|
|
|
|
+ val groupData = groupDeferred//.await()
|
|
|
|
|
|
|
|
- Triple(migrationData, historyData, groupData)
|
|
|
|
|
|
|
+ return Triple(migrationData, historyData, groupData)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private fun readQueryDataToMap(file: File): List<Map<String, Any?>> {
|
|
private fun readQueryDataToMap(file: File): List<Map<String, Any?>> {
|