feat: automatic db creation and migration

This commit is contained in:
2026-08-28 16:32:25 +03:00
parent 114ba523f4
commit 4fbb8a8e2e
9 changed files with 104 additions and 120 deletions
+31 -1
View File
@@ -1,4 +1,6 @@
<?php
const UPDATES_STATUS_FILE = "k-api.updates-status.php";
const SQL_UPDATES_FOLDER = "./sql-updates";
/** @param callable(_K_Api): void $apiFun */
function CreateApi(callable $apiFun, bool $devmode = false)
@@ -66,13 +68,41 @@ class _K_Api
$_a = "unknown return type ($_type), (available bool, array, numeric, string)";
}
die("ERROR: " . $_a);
return;
}
return;
}
}
public function useUpdates(PDO $db)
{
$currentVersion = file_get_contents(UPDATES_STATUS_FILE);
if ($currentVersion === false) {
file_put_contents(UPDATES_STATUS_FILE, "<?php // -1");
$currentVersion = -1;
} else {
$currentVersion = intval(substr($currentVersion, 9));
}
$files = glob(SQL_UPDATES_FOLDER . '/*.sql');
$updateVersion = null;
foreach ($files as $file) {
if (!is_file($file)) {
continue;
}
$version = intval(basename($file, '.sql'));
if ($version > $currentVersion) {
$db->exec(file_get_contents($file));
$updateVersion = $version;
}
}
if ($updateVersion !== null) {
file_put_contents(
UPDATES_STATUS_FILE,
"<?php // " . $updateVersion
);
}
}
public function end()
{
if (!$this->has_exec) {