Update: 2026-05-05 00:05:06
This commit is contained in:
@@ -18,13 +18,13 @@ echo "════════════════════════
|
||||
$migrations = [
|
||||
|
||||
// 1. Add deleted_at to companies
|
||||
'companies_soft_delete' => "ALTER TABLE companies ADD COLUMN IF NOT EXISTS deleted_at DATETIME NULL DEFAULT NULL",
|
||||
'companies_soft_delete' => "ALTER TABLE companies ADD COLUMN deleted_at DATETIME NULL DEFAULT NULL",
|
||||
|
||||
// 2. Add deleted_at to users
|
||||
'users_soft_delete' => "ALTER TABLE users ADD COLUMN IF NOT EXISTS deleted_at DATETIME NULL DEFAULT NULL",
|
||||
'users_soft_delete' => "ALTER TABLE users ADD COLUMN deleted_at DATETIME NULL DEFAULT NULL",
|
||||
|
||||
// 3. Add email_hash to users (if missing)
|
||||
'users_email_hash' => "ALTER TABLE users ADD COLUMN IF NOT EXISTS email_hash VARCHAR(64) NULL",
|
||||
'users_email_hash' => "ALTER TABLE users ADD COLUMN email_hash VARCHAR(64) NULL",
|
||||
|
||||
// 4. Create subscription_plans table
|
||||
'subscription_plans_table' => "
|
||||
@@ -68,16 +68,16 @@ $migrations = [
|
||||
",
|
||||
|
||||
// 6. Add plan_id column to subscriptions if upgrading from old schema
|
||||
'subscriptions_plan_id' => "ALTER TABLE subscriptions ADD COLUMN IF NOT EXISTS plan_id VARCHAR(20) NOT NULL DEFAULT 'free'",
|
||||
'subscriptions_plan_id' => "ALTER TABLE subscriptions ADD COLUMN plan_id VARCHAR(20) NOT NULL DEFAULT 'free'",
|
||||
|
||||
// 7. Add max_users column to subscriptions if missing
|
||||
'subscriptions_max_users' => "ALTER TABLE subscriptions ADD COLUMN IF NOT EXISTS max_users INT NOT NULL DEFAULT 1",
|
||||
'subscriptions_max_users' => "ALTER TABLE subscriptions ADD COLUMN max_users INT NOT NULL DEFAULT 1",
|
||||
|
||||
// 8. Add trial_ends_at to subscriptions if missing
|
||||
'subscriptions_trial' => "ALTER TABLE subscriptions ADD COLUMN IF NOT EXISTS trial_ends_at DATETIME NULL",
|
||||
'subscriptions_trial' => "ALTER TABLE subscriptions ADD COLUMN trial_ends_at DATETIME NULL",
|
||||
|
||||
// 9. Index on subscriptions status
|
||||
'subscriptions_status_idx' => "CREATE INDEX IF NOT EXISTS idx_sub_status ON subscriptions(status)",
|
||||
'subscriptions_status_idx' => "CREATE INDEX idx_sub_status ON subscriptions(status)",
|
||||
];
|
||||
|
||||
$success = 0;
|
||||
@@ -91,8 +91,8 @@ foreach ($migrations as $name => $sql) {
|
||||
$success++;
|
||||
} catch (\PDOException $e) {
|
||||
$msg = $e->getMessage();
|
||||
// Ignore "duplicate column" or "already exists" errors
|
||||
if (str_contains($msg, 'Duplicate column') || str_contains($msg, 'already exists')) {
|
||||
// Ignore "duplicate column" (1060), "duplicate key name" (1061), or "already exists" errors
|
||||
if (str_contains($msg, 'Duplicate column') || str_contains($msg, 'Duplicate key name') || str_contains($msg, 'already exists')) {
|
||||
echo " ⏭️ {$name} (already exists)\n";
|
||||
$skipped++;
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user