Bläddra i källkod

Poprawny commit

Mariusz Muszyński 8 år sedan
förälder
incheckning
336c32d7fa

BIN
SE/se-lib/Route/UrlAction/.BiAuditGenerate.php.swp


+ 71 - 0
SE/stuff/scripts/BI_audit_generate/script.truncate_all_data.php

@@ -0,0 +1,71 @@
+#!/usr/bin/env php
+<?php
+error_reporting(E_ALL & ~E_NOTICE);
+$_SERVER['SERVER_NAME'] = gethostname();
+//require("/Library/Server/Web/Data/Sites/Default/dev-bzyk/se-lib/bootstrap.php");
+require("/Library/Server/Web/Data/Sites/Default/SE/se-lib/bootstrap.php");
+date_default_timezone_set('Europe/Warsaw');
+
+
+$query = "show tables";
+$result = DB::getPDO()->fetchAll($query);
+$tables = array_map("reset", $result);
+$mainTables = array_filter($tables, function ($table) {
+	if (preg_match('/^BI_audit/', $table)) return true;
+	return false;
+});
+sort($mainTables);
+
+$refTables = [];
+foreach ($mainTables as $tableFrom) {
+	foreach ($mainTables as $tableTo) {
+		try {
+			$refTables[] = ACL::getRefTable("default_db/{$tableFrom}/{$tableFrom}", "default_db__x3A__{$tableTo}:{$tableTo}");
+		} catch (Exception $e) {
+		}
+	}
+}
+$refTables = array_filter($refTables, function ($table) {
+	if (preg_match('/_VIEW$/', $table)) return false;
+	return true;
+});
+sort($refTables);
+
+echo "Główne tabele do wyczyszczenia: (" . count($mainTables) . "):\n" . implode(", ", $mainTables) . "\n\n";
+echo "Tabele relacyjne do wyczyszczenia (" . count($refTables) . "):\n" . implode(", ", $refTables) . "\n\n";
+
+$prompt = null;
+while (!in_array($prompt, ['t', 'n'])) {
+	$prompt = strtolower(readline("Jesteś pewien, że chcesz wyczyścić te wszystkie tabele? [T/N]: "));
+}
+if ($prompt === 'n') die("Przerywam\n");
+
+try {
+	Lib::loadClass('Token');
+	$pass = Config::getConfFile('default_db')['pass'];
+	$tokenObj = new Token($pass);
+	$token = $tokenObj->genToken();
+	echo "Token: {$token}\n";
+	$hash = readline("Hash: ");
+	if ($pass !== $tokenObj->verify($hash)) die("Błędny token, przerywam\n"); 
+} catch (Exception $e) {
+	die("Wystąpił nieznany błąd, przerywam\n");
+}
+
+$prompt = null;
+while (!in_array($prompt, ['t', 'n'])) {
+	$prompt = strtolower(readline("Na pewno jesteś pewien, że chcesz wyczyścić te wszystkie tabele? [T/N]: "));
+}
+if ($prompt === 'n') die("Przerywam\n");
+
+echo  "\nCzyszczę tabele:\n";
+
+foreach (array_merge($mainTables, $refTables) as $table) {
+	echo $table;
+	try {
+		DB::getPDO()->query("truncate table `{$table}`");
+		echo " - OK\n";
+	} catch (Exception $e) {
+		echo " - ERROR\n";
+	}
+}