← All changes
|
database/Migrations/AttributeObjectRelationsMigrator.php
+18
-1
1.3.21
→
1.6.5
View file →
| @@ -1,8 +1,9 @@ | ||
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | 3 | namespace FluentCart\Database\Migrations; |
| 4 | 4 | |
| 5 | +use FluentCart\Database\Migrations\Migrator; | |
| 5 | 6 | use FluentCart\Framework\Database\Schema; |
| 6 | 7 | |
| 7 | 8 | class AttributeObjectRelationsMigrator extends Migrator |
| 8 | 9 | { |
| @@ -20,7 +21,23 @@ | ||
| 20 | 21 | `updated_at` DATETIME NULL, |
| 21 | 22 | |
| 22 | 23 | INDEX `{$indexPrefix}_group_id_idx` (`group_id` ASC), |
| 23 | 24 | INDEX `{$indexPrefix}_term_id_idx` (`term_id` ASC), |
| 24 | - INDEX `{$indexPrefix}_obj_id_idx` (`object_id` ASC)"; | |
| 25 | + INDEX `{$indexPrefix}_obj_id_idx` (`object_id` ASC), | |
| 26 | + | |
| 27 | + UNIQUE INDEX `{$indexPrefix}_obj_grp_term_unique` (`object_id` ASC, `group_id` ASC, `term_id` ASC)"; | |
| 28 | + } | |
| 29 | + | |
| 30 | + public static function migrated() | |
| 31 | + { | |
| 32 | + // Defensive guard so a missing relations table (e.g. dbDelta failed) | |
| 33 | + // does not bubble up as "unexpected output during activation". The | |
| 34 | + // dedupe + UNIQUE retry logic itself lives in AttributeTermsMigrator | |
| 35 | + // because it depends on the term-level cleanup that runs in that | |
| 36 | + // hook. Keeping this empty stub here surfaces the migrator's own | |
| 37 | + // post-migration phase so future per-table maintenance has a | |
| 38 | + // dedicated place to grow without breaking the layering. | |
| 39 | + if (!Schema::hasTable(static::$tableName)) { | |
| 40 | + return; | |
| 41 | + } | |
| 25 | 42 | } |
| 26 | 43 | } |