CreateProductVariantsTable::up()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 30
Code Lines 23

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 23
c 1
b 0
f 0
dl 0
loc 30
rs 9.552
cc 1
nc 1
nop 0
1
<?php
2
3
use Illuminate\Database\Migrations\Migration;
4
use Illuminate\Database\Schema\Blueprint;
5
use Illuminate\Support\Facades\Schema;
6
7
class CreateProductVariantsTable extends Migration
8
{
9
    /**
10
     * Run the migrations.
11
     *
12
     * @return void
13
     */
14
    public function up()
15
    {
16
        Schema::create('product_variations', function (Blueprint $table) {
17
            $table->bigIncrements('id');
18
            $table->unsignedBigInteger('product_id');
19
            $table->unsignedBigInteger('product_sku_id');
20
            $table->unsignedBigInteger('product_attribute_id');
21
            $table->unsignedBigInteger('product_attribute_value_id');
22
23
            $table->foreign('product_id')
24
                ->references('id')
25
                ->on('products')
26
                ->onDelete('cascade');
27
28
            $table->foreign('product_sku_id')
29
                ->references('id')
30
                ->on('product_skus')
31
                ->onDelete('cascade');
32
33
            $table->foreign('product_attribute_id')
34
                ->references('id')
35
                ->on('product_attributes')
36
                ->onDelete('cascade');
37
            
38
            $table->foreign('product_attribute_value_id')
39
                ->references('id')
40
                ->on('product_attribute_values')
41
                ->onDelete('cascade');
42
43
            $table->unique(['product_id', 'product_attribute_id', 'product_sku_id'], 'product_variation_sku');
44
            // $table->unique(['product_id', 'product_attribute_id', 'product_attribute_value_id'], 'product_variation_attribute');
45
        });
46
    }
47
48
    /**
49
     * Reverse the migrations.
50
     *
51
     * @return void
52
     */
53
    public function down()
54
    {
55
        Schema::dropIfExists('product_variants');
56
    }
57
}
58