Release 2.8.1
This commit is contained in:
Vendored
+34
-9
@@ -15,11 +15,19 @@ async function bootstrapDatabase(pool) {
|
||||
}
|
||||
|
||||
for (const permission of PERMISSIONS) {
|
||||
await pool.query(
|
||||
`UPDATE a_permissions
|
||||
SET name = ?, section_name = ?, description = ?, modified_by = ?
|
||||
WHERE permission_key = ?`,
|
||||
[permission.name, permission.sectionName, permission.description || null, null, permission.key]
|
||||
);
|
||||
await pool.query(
|
||||
`INSERT INTO a_permissions (permission_key, name, section_name, description, created_by, modified_by)
|
||||
VALUES (?, ?, ?, ?, ?, ?)
|
||||
ON DUPLICATE KEY UPDATE name = VALUES(name), section_name = VALUES(section_name), description = VALUES(description), modified_by = VALUES(modified_by)` ,
|
||||
[permission.key, permission.name, permission.sectionName, permission.description || null, null, null]
|
||||
SELECT ?, ?, ?, ?, ?, ?
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM a_permissions WHERE permission_key = ?
|
||||
)`,
|
||||
[permission.key, permission.name, permission.sectionName, permission.description || null, null, null, permission.key]
|
||||
);
|
||||
}
|
||||
|
||||
@@ -35,20 +43,37 @@ async function bootstrapDatabase(pool) {
|
||||
);
|
||||
}
|
||||
|
||||
const [legacyRoleRows] = await pool.query('SELECT id FROM a_roles WHERE role_key = ? LIMIT 1', ['administrators']);
|
||||
const [currentRoleRows] = await pool.query('SELECT id FROM a_roles WHERE role_key = ? LIMIT 1', [DEFAULT_ROLE.key]);
|
||||
if (legacyRoleRows.length && !currentRoleRows.length) {
|
||||
await pool.query(
|
||||
`UPDATE a_roles
|
||||
SET role_key = ?, name = ?, description = ?, modified_by = ?
|
||||
WHERE role_key = ?`,
|
||||
[DEFAULT_ROLE.key, DEFAULT_ROLE.name, DEFAULT_ROLE.description || null, null, 'administrators']
|
||||
);
|
||||
}
|
||||
|
||||
await pool.query(
|
||||
`INSERT INTO a_roles (role_key, name, description, created_by, modified_by)
|
||||
VALUES (?, ?, ?, ?, ?)
|
||||
ON DUPLICATE KEY UPDATE name = VALUES(name), description = VALUES(description), modified_by = VALUES(modified_by)`,
|
||||
[DEFAULT_ROLE.key, DEFAULT_ROLE.name, DEFAULT_ROLE.description || null, null, null]
|
||||
SELECT ?, ?, ?, ?, ?
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM a_roles WHERE role_key = ?
|
||||
)`,
|
||||
[DEFAULT_ROLE.key, DEFAULT_ROLE.name, DEFAULT_ROLE.description || null, null, null, DEFAULT_ROLE.key]
|
||||
);
|
||||
|
||||
const [defaultRoleRows] = await pool.query('SELECT id FROM a_roles WHERE role_key = ? LIMIT 1', [DEFAULT_ROLE.key]);
|
||||
const defaultRoleId = defaultRoleRows.length ? Number(defaultRoleRows[0].id) : null;
|
||||
if (defaultRoleId) {
|
||||
await pool.query(
|
||||
`INSERT IGNORE INTO a_role_permissions (role_id, permission_id, created_by, modified_by)
|
||||
SELECT ?, id, NULL, NULL FROM a_permissions`,
|
||||
[defaultRoleId]
|
||||
`INSERT INTO a_role_permissions (role_id, permission_id, created_by, modified_by)
|
||||
SELECT ?, permissions.id, NULL, NULL
|
||||
FROM a_permissions permissions
|
||||
LEFT JOIN a_role_permissions existing
|
||||
ON existing.role_id = ? AND existing.permission_id = permissions.id
|
||||
WHERE existing.id IS NULL`,
|
||||
[defaultRoleId, defaultRoleId]
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -538,7 +538,7 @@ async function detectSchemaVersion(pool) {
|
||||
const scheduleGroupsExists = await tableExists(pool, 'i_schedule_groups');
|
||||
const scheduleEntriesExists = await tableExists(pool, 'i_schedule_entries');
|
||||
|
||||
if ((timetableGroupsExists || timetableEntriesExists) && !scheduleGroupsExists && !scheduleEntriesExists) {
|
||||
if (timetableGroupsExists && timetableEntriesExists && !scheduleGroupsExists && !scheduleEntriesExists) {
|
||||
return '2.6.18';
|
||||
}
|
||||
|
||||
@@ -556,9 +556,14 @@ async function recordSchemaVersion(pool, version) {
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci`
|
||||
);
|
||||
|
||||
const stateValue = String(version || appVersion || '0.0.0').trim();
|
||||
await pool.query(
|
||||
'INSERT INTO ' + APP_STATE_TABLE + ' (state_key, state_value) VALUES (?, ?) ON DUPLICATE KEY UPDATE state_value = VALUES(state_value)',
|
||||
[APP_STATE_SCHEMA_VERSION_KEY, String(version || appVersion || '0.0.0').trim()]
|
||||
'UPDATE ' + APP_STATE_TABLE + ' SET state_value = ? WHERE state_key = ?',
|
||||
[stateValue, APP_STATE_SCHEMA_VERSION_KEY]
|
||||
);
|
||||
await pool.query(
|
||||
'INSERT INTO ' + APP_STATE_TABLE + ' (state_key, state_value) SELECT ?, ? WHERE NOT EXISTS (SELECT 1 FROM ' + APP_STATE_TABLE + ' WHERE state_key = ?)',
|
||||
[APP_STATE_SCHEMA_VERSION_KEY, stateValue, APP_STATE_SCHEMA_VERSION_KEY]
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user