fix: add DEFAULT CHARSET=utf8mb4 to all tables

Foreign key constraints fail if charset doesn't match between
referencing and referenced tables. Added utf8mb4 to user_companies,
reset_tokens, and login_attempts tables.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-10 16:24:25 +02:00
parent 796e1b3072
commit 8a630508f4

6
db.php
View File

@@ -148,7 +148,7 @@ function initDatabase(): void {
PRIMARY KEY (user_id, company_id), PRIMARY KEY (user_id, company_id),
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE, FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
FOREIGN KEY (company_id) REFERENCES companies(id) ON DELETE CASCADE FOREIGN KEY (company_id) REFERENCES companies(id) ON DELETE CASCADE
) ENGINE=InnoDB", ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4",
"CREATE TABLE IF NOT EXISTS user_signatures ( "CREATE TABLE IF NOT EXISTS user_signatures (
id INT AUTO_INCREMENT PRIMARY KEY, id INT AUTO_INCREMENT PRIMARY KEY,
@@ -170,14 +170,14 @@ function initDatabase(): void {
token VARCHAR(64) NOT NULL UNIQUE, token VARCHAR(64) NOT NULL UNIQUE,
created_at DATETIME NOT NULL, created_at DATETIME NOT NULL,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
) ENGINE=InnoDB", ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4",
"CREATE TABLE IF NOT EXISTS login_attempts ( "CREATE TABLE IF NOT EXISTS login_attempts (
id INT AUTO_INCREMENT PRIMARY KEY, id INT AUTO_INCREMENT PRIMARY KEY,
ip VARCHAR(45) NOT NULL, ip VARCHAR(45) NOT NULL,
attempted_at DATETIME NOT NULL, attempted_at DATETIME NOT NULL,
INDEX idx_ip_time (ip, attempted_at) INDEX idx_ip_time (ip, attempted_at)
) ENGINE=InnoDB", ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4",
"CREATE TABLE IF NOT EXISTS customers ( "CREATE TABLE IF NOT EXISTS customers (
id VARCHAR(20) PRIMARY KEY, id VARCHAR(20) PRIMARY KEY,