extended metadata on questionnaires
Some checks failed
PHPUnit / test (push) Has been cancelled

This commit is contained in:
2026-07-01 09:13:32 +02:00
parent e589b46a8a
commit 13119f300a
4 changed files with 78 additions and 13 deletions

View File

@ -13,7 +13,7 @@ if (defined('QDB_TEST_UPLOADS')) {
define('QDB_LOCK', QDB_UPLOADS_DIR . '/.qdb_lock');
}
define('QDB_SCHEMA', __DIR__ . '/schema.sql');
define('QDB_VERSION', 14);
define('QDB_VERSION', 15);
function qdb_table_exists(PDO $pdo, string $table): bool {
$stmt = $pdo->prepare(
@ -107,6 +107,33 @@ function qdb_apply_migrations(PDO $pdo, string $schemaSql): bool {
$pdo->exec("ALTER TABLE questionnaire_submission ADD COLUMN structureSnapshotJson TEXT NOT NULL DEFAULT '{}'");
$changed = true;
}
if (!qdb_column_exists($pdo, 'questionnaire_submission', 'programCycleNumber')) {
$pdo->exec('ALTER TABLE questionnaire_submission ADD COLUMN programCycleNumber INTEGER');
$changed = true;
}
if (!qdb_column_exists($pdo, 'questionnaire_submission', 'programSessionID')) {
$pdo->exec('ALTER TABLE questionnaire_submission ADD COLUMN programSessionID TEXT');
$changed = true;
}
if (!qdb_column_exists($pdo, 'questionnaire_submission', 'programSessionNumber')) {
$pdo->exec('ALTER TABLE questionnaire_submission ADD COLUMN programSessionNumber INTEGER');
$changed = true;
}
}
if (qdb_table_exists($pdo, 'completed_questionnaire')) {
if (!qdb_column_exists($pdo, 'completed_questionnaire', 'programCycleNumber')) {
$pdo->exec('ALTER TABLE completed_questionnaire ADD COLUMN programCycleNumber INTEGER');
$changed = true;
}
if (!qdb_column_exists($pdo, 'completed_questionnaire', 'programSessionID')) {
$pdo->exec('ALTER TABLE completed_questionnaire ADD COLUMN programSessionID TEXT');
$changed = true;
}
if (!qdb_column_exists($pdo, 'completed_questionnaire', 'programSessionNumber')) {
$pdo->exec('ALTER TABLE completed_questionnaire ADD COLUMN programSessionNumber INTEGER');
$changed = true;
}
}
if (qdb_table_exists($pdo, 'questionnaire_structure_snapshot')