PluginProbe
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler / 1.6.4
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler v1.6.4
1.6.4 1.6.3 1.6.2 1.6.1 1.6.0 1.5.4 1.5.5 1.5.3 1.5.2 1.5.1 1.5.0 1.4.2 1.4.1 1.4.0 1.3.28 1.3.27 1.3.26 1.3.25 1.3.23 1.3.22 1.3.21 1.3.20 1.3.19 trunk 1.2.0 All 47 releases
fluent-cart / database / Migrations / AttributeObjectRelationsMigrator.php

AttributeObjectRelationsMigrator.php in FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler 1.6.4, at database/Migrations/AttributeObjectRelationsMigrator.php

44 lines 1.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace FluentCart\Database\Migrations;
4
5 use FluentCart\Database\Migrations\Migrator;
6 use FluentCart\Framework\Database\Schema;
7
8 class AttributeObjectRelationsMigrator extends Migrator
9 {
10
11 public static string $tableName = 'fct_atts_relations';
12
13 public static function getSqlSchema(): string
14 {
15 $indexPrefix = static::getDbPrefix() . 'fct_at_rel_';
16 return "`id` BIGINT(20) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
17 `group_id` BIGINT(20) UNSIGNED NOT NULL,
18 `term_id` BIGINT(20) UNSIGNED NOT NULL,
19 `object_id` BIGINT(20) UNSIGNED NOT NULL,
20 `created_at` DATETIME NULL,
21 `updated_at` DATETIME NULL,
22
23 INDEX `{$indexPrefix}_group_id_idx` (`group_id` ASC),
24 INDEX `{$indexPrefix}_term_id_idx` (`term_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 }
42 }
43 }
44