Assemblies einführen

This commit is contained in:
Marcel Diegelmann 2025-03-19 08:13:45 +01:00
parent c79fc47c1e
commit 55828d830d
45 changed files with 2754 additions and 127 deletions

View file

@ -18,42 +18,42 @@ final class Version20250304081039 extends AbstractMultiPlatformMigration
{
$this->addSql(<<<'SQL'
CREATE TABLE assemblies (
id INT AUTO_INCREMENT NOT NULL,
parent_id INT DEFAULT NULL,
id_preview_attachment INT DEFAULT NULL,
name VARCHAR(255) NOT NULL,
comment LONGTEXT NOT NULL,
not_selectable TINYINT(1) NOT NULL,
alternative_names LONGTEXT DEFAULT NULL,
order_quantity INT NOT NULL,
status VARCHAR(64) DEFAULT NULL,
order_only_missing_parts TINYINT(1) NOT NULL,
description LONGTEXT NOT NULL,
last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
INDEX IDX_5F3832C0727ACA70 (parent_id),
INDEX IDX_5F3832C0EA7100A1 (id_preview_attachment),
id INT AUTO_INCREMENT NOT NULL,
parent_id INT DEFAULT NULL,
id_preview_attachment INT DEFAULT NULL,
name VARCHAR(255) NOT NULL,
comment LONGTEXT NOT NULL,
not_selectable TINYINT(1) NOT NULL,
alternative_names LONGTEXT DEFAULT NULL,
order_quantity INT NOT NULL,
status VARCHAR(64) DEFAULT NULL,
order_only_missing_parts TINYINT(1) NOT NULL,
description LONGTEXT NOT NULL,
last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
INDEX IDX_5F3832C0727ACA70 (parent_id),
INDEX IDX_5F3832C0EA7100A1 (id_preview_attachment),
PRIMARY KEY(id)
) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci`
SQL);
$this->addSql(<<<'SQL'
CREATE TABLE assembly_bom_entries (
id INT AUTO_INCREMENT NOT NULL,
id_assembly INT DEFAULT NULL,
id_part INT DEFAULT NULL,
id_project INT DEFAULT NULL,
quantity DOUBLE PRECISION NOT NULL,
mountnames LONGTEXT NOT NULL,
name VARCHAR(255) DEFAULT NULL,
comment LONGTEXT NOT NULL,
price NUMERIC(11, 5) DEFAULT NULL,
price_currency_id INT DEFAULT NULL,
last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
INDEX IDX_8C74887E2F180363 (id_assembly),
INDEX IDX_8C74887EC22F6CC4 (id_part),
INDEX IDX_8C74887EF12E799E (id_project),
INDEX IDX_8C74887E3FFDCD60 (price_currency_id),
id INT AUTO_INCREMENT NOT NULL,
id_assembly INT DEFAULT NULL,
id_part INT DEFAULT NULL,
id_project INT DEFAULT NULL,
quantity DOUBLE PRECISION NOT NULL,
mountnames LONGTEXT NOT NULL,
name VARCHAR(255) DEFAULT NULL,
comment LONGTEXT NOT NULL,
price NUMERIC(11, 5) DEFAULT NULL,
price_currency_id INT DEFAULT NULL,
last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
INDEX IDX_8C74887E2F180363 (id_assembly),
INDEX IDX_8C74887EC22F6CC4 (id_part),
INDEX IDX_8C74887EF12E799E (id_project),
INDEX IDX_8C74887E3FFDCD60 (price_currency_id),
PRIMARY KEY(id)
) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci`
SQL);
@ -109,7 +109,7 @@ final class Version20250304081039 extends AbstractMultiPlatformMigration
{
$this->addSql(<<<'SQL'
CREATE TABLE assemblies (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
parent_id INTEGER DEFAULT NULL,
id_preview_attachment INTEGER DEFAULT NULL,
order_quantity INTEGER NOT NULL,
@ -120,7 +120,7 @@ final class Version20250304081039 extends AbstractMultiPlatformMigration
last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
status VARCHAR(64) DEFAULT NULL,
ipn VARCHAR(100) DEFAULT NULL,
ipn VARCHAR(100) DEFAULT NULL,
description CLOB NOT NULL,
alternative_names CLOB DEFAULT NULL,
CONSTRAINT FK_5F3832C0727ACA70 FOREIGN KEY (parent_id) REFERENCES assemblies (id) NOT DEFERRABLE INITIALLY IMMEDIATE,
@ -145,7 +145,7 @@ final class Version20250304081039 extends AbstractMultiPlatformMigration
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
id_assembly INTEGER DEFAULT NULL,
id_part INTEGER DEFAULT NULL,
id_project INTEGER DEFAULT NULL,
id_project INTEGER DEFAULT NULL,
id_referenced_assembly INTEGER DEFAULT NULL,
price_currency_id INTEGER DEFAULT NULL,
quantity DOUBLE PRECISION NOT NULL,
@ -158,8 +158,8 @@ final class Version20250304081039 extends AbstractMultiPlatformMigration
CONSTRAINT FK_8C74887E4AD2039E FOREIGN KEY (id_assembly) REFERENCES assemblies (id) NOT DEFERRABLE INITIALLY IMMEDIATE,
CONSTRAINT FK_8C74887EC22F6CC4 FOREIGN KEY (id_part) REFERENCES "parts" (id) NOT DEFERRABLE INITIALLY IMMEDIATE,
CONSTRAINT FK_8C74887EF12E799E FOREIGN KEY (id_project) REFERENCES projects (id) NOT DEFERRABLE INITIALLY IMMEDIATE,
CONSTRAINT FK_8C74887E22522999 FOREIGN KEY (id_referenced_assembly) REFERENCES assemblies (id) ON UPDATE NO ACTION ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE,
CONSTRAINT FK_8C74887E3FFDCD60 FOREIGN KEY (price_currency_id) REFERENCES currencies (id) NOT DEFERRABLE INITIALLY IMMEDIATE
CONSTRAINT FK_8C74887E22522999 FOREIGN KEY (id_referenced_assembly) REFERENCES assemblies (id) ON UPDATE NO ACTION ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE,
CONSTRAINT FK_8C74887E3FFDCD60 FOREIGN KEY (price_currency_id) REFERENCES currencies (id) NOT DEFERRABLE INITIALLY IMMEDIATE
)
SQL);
$this->addSql(<<<'SQL'
@ -193,19 +193,19 @@ final class Version20250304081039 extends AbstractMultiPlatformMigration
{
$this->addSql(<<<'SQL'
CREATE TABLE assemblies (
id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
name VARCHAR(255) NOT NULL,
last_modified TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL,
datetime_added TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL,
comment TEXT NOT NULL,
not_selectable BOOLEAN NOT NULL,
alternative_names TEXT DEFAULT NULL,
order_quantity INT NOT NULL,
status VARCHAR(64) DEFAULT NULL,
order_only_missing_parts BOOLEAN NOT NULL,
description TEXT NOT NULL,
parent_id INT DEFAULT NULL,
id_preview_attachment INT DEFAULT NULL,
id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
name VARCHAR(255) NOT NULL,
last_modified TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL,
datetime_added TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL,
comment TEXT NOT NULL,
not_selectable BOOLEAN NOT NULL,
alternative_names TEXT DEFAULT NULL,
order_quantity INT NOT NULL,
status VARCHAR(64) DEFAULT NULL,
order_only_missing_parts BOOLEAN NOT NULL,
description TEXT NOT NULL,
parent_id INT DEFAULT NULL,
id_preview_attachment INT DEFAULT NULL,
PRIMARY KEY(id)
)
SQL);
@ -217,18 +217,18 @@ final class Version20250304081039 extends AbstractMultiPlatformMigration
SQL);
$this->addSql(<<<'SQL'
CREATE TABLE assembly_bom_entries (
id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
id_assembly INT DEFAULT NULL,
id_part INT DEFAULT NULL,
id_project INT DEFAULT NULL,
quantity DOUBLE PRECISION NOT NULL,
mountnames TEXT NOT NULL,
name VARCHAR(255) DEFAULT NULL,
comment TEXT NOT NULL,
price NUMERIC(11, 5) DEFAULT NULL,
id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
id_assembly INT DEFAULT NULL,
id_part INT DEFAULT NULL,
id_project INT DEFAULT NULL,
quantity DOUBLE PRECISION NOT NULL,
mountnames TEXT NOT NULL,
name VARCHAR(255) DEFAULT NULL,
comment TEXT NOT NULL,
price NUMERIC(11, 5) DEFAULT NULL,
price_currency_id INT DEFAULT NULL,
last_modified TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL,
datetime_added TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL,
last_modified TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL,
datetime_added TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL,
PRIMARY KEY(id)
)
SQL);

View file

@ -44,8 +44,8 @@ final class Version20250304154507 extends AbstractMultiPlatformMigration
public function sqLiteUp(Schema $schema): void
{
$this->addSql(<<<'SQL'
CREATE TEMPORARY TABLE __temp__parts AS
SELECT
CREATE TEMPORARY TABLE __temp__parts AS
SELECT
id,
id_preview_attachment,
id_category,
@ -82,7 +82,7 @@ final class Version20250304154507 extends AbstractMultiPlatformMigration
eda_info_exclude_from_board,
eda_info_exclude_from_sim,
eda_info_kicad_symbol,
eda_info_kicad_footprint
eda_info_kicad_footprint
FROM parts
SQL);
$this->addSql('DROP TABLE parts');
@ -148,8 +148,8 @@ final class Version20250304154507 extends AbstractMultiPlatformMigration
id_part_unit,
id_manufacturer,
order_orderdetails_id,
built_project_id,
datetime_added,
built_project_id,
datetime_added,
name,
last_modified,
needs_review,
@ -164,12 +164,12 @@ final class Version20250304154507 extends AbstractMultiPlatformMigration
manufacturer_product_number,
manufacturing_status,
order_quantity,
manual_order,
manual_order,
ipn,
provider_reference_provider_key,
provider_reference_provider_id,
provider_reference_provider_url,
provider_reference_last_updated,
provider_reference_last_updated,
eda_info_reference_prefix,
eda_info_value,
eda_info_invisible,
@ -223,8 +223,8 @@ final class Version20250304154507 extends AbstractMultiPlatformMigration
public function sqLiteDown(Schema $schema): void
{
$this->addSql(<<<'SQL'
CREATE TEMPORARY TABLE __temp__parts AS
SELECT
CREATE TEMPORARY TABLE __temp__parts AS
SELECT
id,
id_preview_attachment,
id_category,
@ -326,8 +326,8 @@ final class Version20250304154507 extends AbstractMultiPlatformMigration
id_part_unit,
id_manufacturer,
order_orderdetails_id,
built_project_id,
datetime_added,
built_project_id,
datetime_added,
name,
last_modified,
needs_review,
@ -342,12 +342,12 @@ final class Version20250304154507 extends AbstractMultiPlatformMigration
manufacturer_product_number,
manufacturing_status,
order_quantity,
manual_order,
manual_order,
ipn,
provider_reference_provider_key,
provider_reference_provider_id,
provider_reference_provider_url,
provider_reference_last_updated,
provider_reference_last_updated,
eda_info_reference_prefix,
eda_info_value,
eda_info_invisible,

View file

@ -0,0 +1,27 @@
<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20250310160354 extends AbstractMigration
{
public function up(Schema $schema): void
{
$this->addSql('ALTER TABLE assembly_bom_entries RENAME INDEX idx_8c74887e2f180363 TO IDX_8C74887E4AD2039E');
$this->addSql('ALTER TABLE project_bom_entries ADD id_assembly INT DEFAULT NULL AFTER id_part');
$this->addSql('ALTER TABLE project_bom_entries ADD CONSTRAINT FK_1AA2DD314AD2039E FOREIGN KEY (id_assembly) REFERENCES assemblies (id)');
$this->addSql('CREATE INDEX IDX_1AA2DD314AD2039E ON project_bom_entries (id_assembly)');
}
public function down(Schema $schema): void
{
$this->addSql('ALTER TABLE assembly_bom_entries RENAME INDEX idx_8c74887e4ad2039e TO IDX_8C74887E2F180363');
$this->addSql('ALTER TABLE project_bom_entries DROP FOREIGN KEY FK_1AA2DD314AD2039E');
$this->addSql('DROP INDEX IDX_1AA2DD314AD2039E ON project_bom_entries');
$this->addSql('ALTER TABLE project_bom_entries DROP id_assembly');
}
}