try sqlite transaction FK removal
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-01-08 10:04:26 +11:00
parent 71c5de3762
commit d8da3027e2

View File

@@ -222,7 +222,25 @@ func CreateTables() {
// Remove users RoleId column // Remove users RoleId column
userRoleIdCheck, _ := CheckColumnExists("users", "RoleId") userRoleIdCheck, _ := CheckColumnExists("users", "RoleId")
if userRoleIdCheck { if userRoleIdCheck {
_, err := db.Exec("ALTER TABLE users DROP COLUMN RoleId;") //_, err := db.Exec("ALTER TABLE users DROP COLUMN RoleId;")
_, err := db.Exec(`
PRAGMA foreign_keys=off;
BEGIN TRANSACTION;
ALTER TABLE users RENAME TO _users_old;
CREATE TABLE users
(
UserId INTEGER PRIMARY KEY ASC,
GroupId INTEGER,
UserName VARCHAR,
Password VARCHAR,
LdapUser BOOLEAN DEFAULT 0,
LdapDN VARCHAR DEFAULT '',
FOREIGN KEY (GroupId) REFERENCES groups(GroupId)
);
INSERT INTO users SELECT * FROM _users_old;
COMMIT;
PRAGMA foreign_keys=on;
`)
if err != nil { if err != nil {
log.Printf("Error altering users table to drop RoleId column : '%s'\n", err) log.Printf("Error altering users table to drop RoleId column : '%s'\n", err)
os.Exit(1) os.Exit(1)