Update: 2026-05-03 22:51:59
This commit is contained in:
@@ -56,6 +56,33 @@ foreach ($users as $user) {
|
||||
echo "User ID {$user['id']} migrated successfully.\n";
|
||||
}
|
||||
|
||||
// (Table creation logic removed because it is properly handled by schema.sql)
|
||||
// 4. Create user_company_assignments table
|
||||
try {
|
||||
$db->exec("CREATE TABLE IF NOT EXISTS user_company_assignments (
|
||||
id CHAR(36) NOT NULL DEFAULT (UUID()),
|
||||
user_id CHAR(36) NOT NULL,
|
||||
company_id CHAR(36) NOT NULL,
|
||||
assigned_by CHAR(36) NOT NULL,
|
||||
assigned_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uq_user_company (user_id, company_id),
|
||||
CONSTRAINT fk_uca_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
|
||||
CONSTRAINT fk_uca_company FOREIGN KEY (company_id) REFERENCES companies(id) ON DELETE CASCADE,
|
||||
CONSTRAINT fk_uca_admin FOREIGN KEY (assigned_by) REFERENCES users(id) ON DELETE RESTRICT
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");
|
||||
echo "[OK] User_company_assignments table created.\n";
|
||||
} catch (\Exception $e) {
|
||||
echo "[SKIP] user_company_assignments table: " . $e->getMessage() . "\n";
|
||||
}
|
||||
|
||||
// 5. Update invoices table to include uploaded_by
|
||||
try {
|
||||
$db->exec("ALTER TABLE invoices ADD COLUMN uploaded_by CHAR(36) NULL AFTER status");
|
||||
$db->exec("ALTER TABLE invoices ADD CONSTRAINT fk_inv_uploader FOREIGN KEY (uploaded_by) REFERENCES users(id) ON DELETE SET NULL");
|
||||
echo "[OK] Updated invoices table with uploaded_by tracker.\n";
|
||||
} catch (\Exception $e) {
|
||||
echo "[SKIP] invoices table update: " . $e->getMessage() . "\n";
|
||||
}
|
||||
|
||||
echo "--- Migration Complete ---\n";
|
||||
|
||||
Reference in New Issue
Block a user