handle roleid FK in secrets table
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-01-08 15:49:06 +11:00
parent 1a2b6e5b41
commit fdfde7af0b

View File

@@ -304,7 +304,25 @@ func CreateTables() {
// Remove RoleId column from secrets table
secretsRoleIdCheck, _ := CheckColumnExists("secrets", "RoleId")
if secretsRoleIdCheck {
_, err := db.Exec("ALTER TABLE secrets DROP COLUMN RoleId;")
_, err := db.Exec(`
PRAGMA foreign_keys=off;
BEGIN TRANSACTION;
ALTER TABLE secrets RENAME TO _secrets_old;
CREATE TABLE secrets
(
SecretId INTEGER PRIMARY KEY ASC,
SafeId INTEGER,
DeviceName VARCHAR,
DeviceCategory VARCHAR,
UserName VARCHAR,
Secret VARCHAR,
FOREIGN KEY (SafeId) REFERENCES safes(SafeId)
);
INSERT INTO secrets SELECT * FROM _secrets_old;
COMMIT;
PRAGMA foreign_keys=on;
DROP TABLE _secrets_old;
`)
if err != nil {
log.Printf("Error altering secrets table to renmove RoleId column : '%s'\n", err)
os.Exit(1)