85 lines
3.3 KiB
PHP
85 lines
3.3 KiB
PHP
<?php
|
|
|
|
use Illuminate\Database\Migrations\Migration;
|
|
use Illuminate\Support\Facades\Schema;
|
|
|
|
return new class extends Migration {
|
|
|
|
/**
|
|
* Run the migrations.
|
|
*/
|
|
public function up(): void
|
|
{
|
|
DB::statement(
|
|
"
|
|
CREATE TABLE stocks (
|
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
date DATE NULL,
|
|
last_change_date DATE NULL,
|
|
supplier_article VARCHAR(255) NULL,
|
|
tech_size VARCHAR(255) NULL,
|
|
barcode VARCHAR(255) NULL,
|
|
quantity INT NOT NULL DEFAULT 0,
|
|
is_supply TINYINT(1) NULL,
|
|
is_realization TINYINT(1) NULL,
|
|
quantity_full INT NULL,
|
|
warehouse_name VARCHAR(255) NULL,
|
|
in_way_to_client INT NULL,
|
|
in_way_from_client INT NULL,
|
|
nm_id BIGINT NULL,
|
|
subject VARCHAR(255) NULL,
|
|
category VARCHAR(255) NULL,
|
|
brand VARCHAR(255) NULL,
|
|
sc_code VARCHAR(255) NULL,
|
|
price VARCHAR(255) NULL,
|
|
discount VARCHAR(255) NULL,
|
|
created_at TIMESTAMP NULL,
|
|
updated_at TIMESTAMP NULL,
|
|
|
|
PRIMARY KEY (id, date),
|
|
|
|
INDEX idx_warehouse_date (warehouse_name, date),
|
|
INDEX idx_nm_id_date (nm_id, date),
|
|
INDEX idx_barcode_date (barcode, date)
|
|
|
|
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
|
|
|
|
PARTITION BY RANGE COLUMNS(date) (
|
|
PARTITION p202602 VALUES LESS THAN ('2026-03-01'),
|
|
PARTITION p202603 VALUES LESS THAN ('2026-04-01'),
|
|
PARTITION p202604 VALUES LESS THAN ('2026-05-01'),
|
|
PARTITION p202605 VALUES LESS THAN ('2026-06-01'),
|
|
PARTITION p202606 VALUES LESS THAN ('2026-07-01'),
|
|
PARTITION p202607 VALUES LESS THAN ('2026-08-01'),
|
|
PARTITION p202608 VALUES LESS THAN ('2026-09-01'),
|
|
PARTITION p202609 VALUES LESS THAN ('2026-10-01'),
|
|
PARTITION p202610 VALUES LESS THAN ('2026-11-01'),
|
|
PARTITION p202611 VALUES LESS THAN ('2026-12-01'),
|
|
PARTITION p202612 VALUES LESS THAN ('2027-01-01'),
|
|
PARTITION p202701 VALUES LESS THAN ('2027-02-01'),
|
|
PARTITION p202702 VALUES LESS THAN ('2027-03-01'),
|
|
PARTITION p202703 VALUES LESS THAN ('2027-04-01'),
|
|
PARTITION p202704 VALUES LESS THAN ('2027-05-01'),
|
|
PARTITION p202705 VALUES LESS THAN ('2027-06-01'),
|
|
PARTITION p202706 VALUES LESS THAN ('2027-07-01'),
|
|
PARTITION p202707 VALUES LESS THAN ('2027-08-01'),
|
|
PARTITION p202708 VALUES LESS THAN ('2027-09-01'),
|
|
PARTITION p202709 VALUES LESS THAN ('2027-10-01'),
|
|
PARTITION p202710 VALUES LESS THAN ('2027-11-01'),
|
|
PARTITION p202711 VALUES LESS THAN ('2027-12-01'),
|
|
PARTITION p202712 VALUES LESS THAN ('2028-01-01'),
|
|
PARTITION future VALUES LESS THAN (MAXVALUE)
|
|
)
|
|
"
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Reverse the migrations.
|
|
*/
|
|
public function down(): void
|
|
{
|
|
Schema::dropIfExists('stocks');
|
|
}
|
|
};
|