2023-04-02 19:10:36 +02:00
< ? php
declare ( strict_types = 1 );
namespace DoctrineMigrations ;
2023-04-03 00:47:51 +02:00
use App\Migration\AbstractMultiPlatformMigration ;
2023-04-02 19:10:36 +02:00
use Doctrine\DBAL\Schema\Schema ;
use Doctrine\Migrations\AbstractMigration ;
/**
* Auto - generated Migration : Please modify to your needs !
*/
2023-04-03 00:47:51 +02:00
final class Version20230402170923 extends AbstractMultiPlatformMigration
2023-04-02 19:10:36 +02:00
{
public function getDescription () : string
{
2023-04-03 00:53:39 +02:00
return 'Create database schema for user aboutMe and part lot owners' ;
2023-04-02 19:10:36 +02:00
}
2023-04-03 00:47:51 +02:00
public function mySQLUp ( Schema $schema ) : void
2023-04-02 19:10:36 +02:00
{
$this -> addSql ( 'ALTER TABLE part_lots ADD id_owner INT DEFAULT NULL' );
$this -> addSql ( 'ALTER TABLE part_lots ADD CONSTRAINT FK_EBC8F94321E5A74C FOREIGN KEY (id_owner) REFERENCES `users` (id) ON DELETE SET NULL' );
$this -> addSql ( 'CREATE INDEX IDX_EBC8F94321E5A74C ON part_lots (id_owner)' );
$this -> addSql ( 'ALTER TABLE projects ADD CONSTRAINT FK_5C93B3A4727ACA70 FOREIGN KEY (parent_id) REFERENCES projects (id)' );
2023-04-03 00:53:39 +02:00
$this -> addSql ( 'ALTER TABLE storelocations ADD id_owner INT DEFAULT NULL, ADD part_owner_must_match TINYINT(1) DEFAULT 0 NOT NULL' );
2023-04-02 19:10:36 +02:00
$this -> addSql ( 'ALTER TABLE storelocations ADD CONSTRAINT FK_751702021E5A74C FOREIGN KEY (id_owner) REFERENCES `users` (id) ON DELETE SET NULL' );
$this -> addSql ( 'CREATE INDEX IDX_751702021E5A74C ON storelocations (id_owner)' );
2023-04-08 19:51:29 +02:00
$this -> addSql ( 'ALTER TABLE `users` ADD about_me LONGTEXT NOT NULL' );
2023-04-03 00:53:39 +02:00
2023-04-03 01:03:16 +02:00
$this -> addSql ( 'ALTER TABLE projects CHANGE description description LONGTEXT NOT NULL' );
2023-04-02 19:10:36 +02:00
}
2023-04-03 00:47:51 +02:00
public function mySQLDown ( Schema $schema ) : void
2023-04-02 19:10:36 +02:00
{
$this -> addSql ( 'ALTER TABLE log CHANGE level level TINYINT(1) NOT NULL' );
$this -> addSql ( 'ALTER TABLE part_lots DROP FOREIGN KEY FK_EBC8F94321E5A74C' );
$this -> addSql ( 'DROP INDEX IDX_EBC8F94321E5A74C ON part_lots' );
$this -> addSql ( 'ALTER TABLE part_lots DROP id_owner' );
$this -> addSql ( 'ALTER TABLE projects DROP FOREIGN KEY FK_5C93B3A4727ACA70' );
$this -> addSql ( 'ALTER TABLE `storelocations` DROP FOREIGN KEY FK_751702021E5A74C' );
$this -> addSql ( 'DROP INDEX IDX_751702021E5A74C ON `storelocations`' );
$this -> addSql ( 'ALTER TABLE `storelocations` DROP id_owner, DROP part_owner_must_match' );
$this -> addSql ( 'ALTER TABLE `users` DROP about_me' );
}
2023-04-03 00:47:51 +02:00
public function sqLiteUp ( Schema $schema ) : void
{
//In Version20230219225340 the type of project description was set to an empty string, which caused problems with doctrine migrations, fix it here
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__projects AS SELECT id, parent_id, id_preview_attachment, order_quantity, order_only_missing_parts, comment, not_selectable, name, last_modified, datetime_added, status, description FROM projects' );
$this -> addSql ( 'DROP TABLE projects' );
$this -> addSql ( 'CREATE TABLE projects (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, parent_id INTEGER DEFAULT NULL, id_preview_attachment INTEGER DEFAULT NULL, order_quantity INTEGER NOT NULL, order_only_missing_parts BOOLEAN NOT NULL, comment CLOB NOT NULL, not_selectable BOOLEAN NOT NULL, name VARCHAR(255) NOT NULL, last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, status VARCHAR(64) DEFAULT NULL, description CLOB DEFAULT \'\', CONSTRAINT FK_11074E9A727ACA70 FOREIGN KEY (parent_id) REFERENCES projects (id) ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_5C93B3A4EA7100A1 FOREIGN KEY (id_preview_attachment) REFERENCES "attachments" (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE)' );
$this -> addSql ( 'INSERT INTO projects (id, parent_id, id_preview_attachment, order_quantity, order_only_missing_parts, comment, not_selectable, name, last_modified, datetime_added, status, description) SELECT id, parent_id, id_preview_attachment, order_quantity, order_only_missing_parts, comment, not_selectable, name, last_modified, datetime_added, status, description FROM __temp__projects' );
$this -> addSql ( 'DROP TABLE __temp__projects' );
$this -> addSql ( 'CREATE INDEX IDX_5C93B3A4727ACA70 ON projects (parent_id)' );
$this -> addSql ( 'CREATE INDEX IDX_5C93B3A4EA7100A1 ON projects (id_preview_attachment)' );
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__currencies AS SELECT id, parent_id, id_preview_attachment, exchange_rate, iso_code, comment, not_selectable, name, last_modified, datetime_added FROM currencies' );
$this -> addSql ( 'DROP TABLE currencies' );
$this -> addSql ( ' CREATE TABLE currencies ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , parent_id INTEGER DEFAULT NULL , id_preview_attachment INTEGER DEFAULT NULL , exchange_rate NUMERIC ( 11 , 5 ) DEFAULT NULL -- ( DC2Type : big_decimal )
, iso_code VARCHAR ( 255 ) NOT NULL , comment CLOB NOT NULL , not_selectable BOOLEAN NOT NULL , name VARCHAR ( 255 ) NOT NULL , last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , CONSTRAINT FK_37C44693727ACA70 FOREIGN KEY ( parent_id ) REFERENCES currencies ( id ) ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE , CONSTRAINT FK_37C44693EA7100A1 FOREIGN KEY ( id_preview_attachment ) REFERENCES attachments ( id ) ON UPDATE NO ACTION ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE ) ' );
$this -> addSql ( 'INSERT INTO currencies (id, parent_id, id_preview_attachment, exchange_rate, iso_code, comment, not_selectable, name, last_modified, datetime_added) SELECT id, parent_id, id_preview_attachment, exchange_rate, iso_code, comment, not_selectable, name, last_modified, datetime_added FROM __temp__currencies' );
$this -> addSql ( 'DROP TABLE __temp__currencies' );
$this -> addSql ( 'CREATE INDEX IDX_37C44693EA7100A1 ON currencies (id_preview_attachment)' );
$this -> addSql ( 'CREATE INDEX currency_idx_parent_name ON currencies (parent_id, name)' );
$this -> addSql ( 'CREATE INDEX currency_idx_name ON currencies (name)' );
$this -> addSql ( 'CREATE INDEX IDX_37C44693727ACA70 ON currencies (parent_id)' );
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__groups AS SELECT id, parent_id, id_preview_attachment, enforce_2fa, comment, not_selectable, name, last_modified, datetime_added, permissions_data FROM groups' );
$this -> addSql ( 'DROP TABLE groups' );
$this -> addSql ( ' CREATE TABLE groups ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , parent_id INTEGER DEFAULT NULL , id_preview_attachment INTEGER DEFAULT NULL , enforce_2fa BOOLEAN NOT NULL , comment CLOB NOT NULL , not_selectable BOOLEAN NOT NULL , name VARCHAR ( 255 ) NOT NULL , last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , permissions_data CLOB DEFAULT \ ' [] \ ' NOT NULL -- ( DC2Type : json )
, CONSTRAINT FK_F06D3970727ACA70 FOREIGN KEY ( parent_id ) REFERENCES groups ( id ) ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE , CONSTRAINT FK_F06D3970EA7100A1 FOREIGN KEY ( id_preview_attachment ) REFERENCES attachments ( id ) ON UPDATE NO ACTION ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE ) ' );
$this -> addSql ( 'INSERT INTO groups (id, parent_id, id_preview_attachment, enforce_2fa, comment, not_selectable, name, last_modified, datetime_added, permissions_data) SELECT id, parent_id, id_preview_attachment, enforce_2fa, comment, not_selectable, name, last_modified, datetime_added, permissions_data FROM __temp__groups' );
$this -> addSql ( 'DROP TABLE __temp__groups' );
$this -> addSql ( 'CREATE INDEX IDX_F06D3970EA7100A1 ON groups (id_preview_attachment)' );
$this -> addSql ( 'CREATE INDEX IDX_F06D3970727ACA70 ON groups (parent_id)' );
$this -> addSql ( 'CREATE INDEX group_idx_name ON groups (name)' );
$this -> addSql ( 'CREATE INDEX group_idx_parent_name ON groups (parent_id, name)' );
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__log AS SELECT id, id_user, datetime, level, target_id, target_type, extra, type, username FROM log' );
$this -> addSql ( 'DROP TABLE log' );
$this -> addSql ( ' CREATE TABLE log ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , id_user INTEGER DEFAULT NULL , datetime DATETIME NOT NULL , level TINYINT ( 4 ) NOT NULL , target_id INTEGER NOT NULL , target_type SMALLINT NOT NULL , extra CLOB NOT NULL -- ( DC2Type : json )
, type SMALLINT NOT NULL , username VARCHAR ( 255 ) NOT NULL , CONSTRAINT FK_8F3F68C56B3CA4B FOREIGN KEY ( id_user ) REFERENCES users ( id ) ON UPDATE NO ACTION ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE ) ' );
$this -> addSql ( 'INSERT INTO log (id, id_user, datetime, level, target_id, target_type, extra, type, username) SELECT id, id_user, datetime, level, target_id, target_type, extra, type, username FROM __temp__log' );
$this -> addSql ( 'DROP TABLE __temp__log' );
$this -> addSql ( 'CREATE INDEX IDX_8F3F68C56B3CA4B ON log (id_user)' );
$this -> addSql ( 'CREATE INDEX log_idx_type ON log (type)' );
$this -> addSql ( 'CREATE INDEX log_idx_type_target ON log (type, target_type, target_id)' );
$this -> addSql ( 'CREATE INDEX log_idx_datetime ON log (datetime)' );
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__part_lots AS SELECT id, id_store_location, id_part, description, comment, expiration_date, instock_unknown, amount, needs_refill, last_modified, datetime_added FROM part_lots' );
$this -> addSql ( 'DROP TABLE part_lots' );
$this -> addSql ( 'CREATE TABLE part_lots (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, id_store_location INTEGER DEFAULT NULL, id_part INTEGER NOT NULL, id_owner INTEGER DEFAULT NULL, description CLOB NOT NULL, comment CLOB NOT NULL, expiration_date DATETIME DEFAULT NULL, instock_unknown BOOLEAN NOT NULL, amount DOUBLE PRECISION NOT NULL, needs_refill BOOLEAN NOT NULL, last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, CONSTRAINT FK_EBC8F9435D8F4B37 FOREIGN KEY (id_store_location) REFERENCES storelocations (id) ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_EBC8F943C22F6CC4 FOREIGN KEY (id_part) REFERENCES parts (id) ON UPDATE NO ACTION ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_EBC8F94321E5A74C FOREIGN KEY (id_owner) REFERENCES "users" (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE)' );
$this -> addSql ( 'INSERT INTO part_lots (id, id_store_location, id_part, description, comment, expiration_date, instock_unknown, amount, needs_refill, last_modified, datetime_added) SELECT id, id_store_location, id_part, description, comment, expiration_date, instock_unknown, amount, needs_refill, last_modified, datetime_added FROM __temp__part_lots' );
$this -> addSql ( 'DROP TABLE __temp__part_lots' );
$this -> addSql ( 'CREATE INDEX part_lots_idx_needs_refill ON part_lots (needs_refill)' );
$this -> addSql ( 'CREATE INDEX part_lots_idx_instock_un_expiration_id_part ON part_lots (instock_unknown, expiration_date, id_part)' );
$this -> addSql ( 'CREATE INDEX IDX_EBC8F9435D8F4B37 ON part_lots (id_store_location)' );
$this -> addSql ( 'CREATE INDEX IDX_EBC8F943C22F6CC4 ON part_lots (id_part)' );
$this -> addSql ( 'CREATE INDEX IDX_EBC8F94321E5A74C ON part_lots (id_owner)' );
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__pricedetails AS SELECT id, id_currency, orderdetails_id, price, price_related_quantity, min_discount_quantity, manual_input, last_modified, datetime_added FROM pricedetails' );
$this -> addSql ( 'DROP TABLE pricedetails' );
$this -> addSql ( ' CREATE TABLE pricedetails ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , id_currency INTEGER DEFAULT NULL , orderdetails_id INTEGER NOT NULL , price NUMERIC ( 11 , 5 ) NOT NULL -- ( DC2Type : big_decimal )
, price_related_quantity DOUBLE PRECISION NOT NULL , min_discount_quantity DOUBLE PRECISION NOT NULL , manual_input BOOLEAN NOT NULL , last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , CONSTRAINT FK_C68C4459398D64AA FOREIGN KEY ( id_currency ) REFERENCES currencies ( id ) ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE , CONSTRAINT FK_C68C44594A01DDC7 FOREIGN KEY ( orderdetails_id ) REFERENCES orderdetails ( id ) ON UPDATE NO ACTION ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE ) ' );
$this -> addSql ( 'INSERT INTO pricedetails (id, id_currency, orderdetails_id, price, price_related_quantity, min_discount_quantity, manual_input, last_modified, datetime_added) SELECT id, id_currency, orderdetails_id, price, price_related_quantity, min_discount_quantity, manual_input, last_modified, datetime_added FROM __temp__pricedetails' );
$this -> addSql ( 'DROP TABLE __temp__pricedetails' );
$this -> addSql ( 'CREATE INDEX pricedetails_idx_min_discount_price_qty ON pricedetails (min_discount_quantity, price_related_quantity)' );
$this -> addSql ( 'CREATE INDEX pricedetails_idx_min_discount ON pricedetails (min_discount_quantity)' );
$this -> addSql ( 'CREATE INDEX IDX_C68C4459398D64AA ON pricedetails (id_currency)' );
$this -> addSql ( 'CREATE INDEX IDX_C68C44594A01DDC7 ON pricedetails (orderdetails_id)' );
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__project_bom_entries AS SELECT id, id_device, id_part, price_currency_id, quantity, mountnames, name, comment, price, last_modified, datetime_added FROM project_bom_entries' );
$this -> addSql ( 'DROP TABLE project_bom_entries' );
$this -> addSql ( ' CREATE TABLE project_bom_entries ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , id_device INTEGER DEFAULT NULL , id_part INTEGER DEFAULT NULL , price_currency_id INTEGER DEFAULT NULL , quantity DOUBLE PRECISION NOT NULL , mountnames CLOB NOT NULL , name VARCHAR ( 255 ) DEFAULT NULL , comment CLOB NOT NULL , price NUMERIC ( 11 , 5 ) DEFAULT NULL -- ( DC2Type : big_decimal )
, last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , CONSTRAINT FK_AFC547992F180363 FOREIGN KEY ( id_device ) REFERENCES projects ( id ) ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE , CONSTRAINT FK_AFC54799C22F6CC4 FOREIGN KEY ( id_part ) REFERENCES parts ( id ) ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE , CONSTRAINT FK_1AA2DD313FFDCD60 FOREIGN KEY ( price_currency_id ) REFERENCES currencies ( id ) ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE ) ' );
$this -> addSql ( 'INSERT INTO project_bom_entries (id, id_device, id_part, price_currency_id, quantity, mountnames, name, comment, price, last_modified, datetime_added) SELECT id, id_device, id_part, price_currency_id, quantity, mountnames, name, comment, price, last_modified, datetime_added FROM __temp__project_bom_entries' );
$this -> addSql ( 'DROP TABLE __temp__project_bom_entries' );
$this -> addSql ( 'CREATE INDEX IDX_1AA2DD313FFDCD60 ON project_bom_entries (price_currency_id)' );
$this -> addSql ( 'CREATE INDEX IDX_1AA2DD312F180363 ON project_bom_entries (id_device)' );
$this -> addSql ( 'CREATE INDEX IDX_1AA2DD31C22F6CC4 ON project_bom_entries (id_part)' );
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__projects AS SELECT id, parent_id, id_preview_attachment, order_quantity, order_only_missing_parts, comment, not_selectable, name, last_modified, datetime_added, status, description FROM projects' );
$this -> addSql ( 'DROP TABLE projects' );
$this -> addSql ( 'CREATE TABLE projects (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, parent_id INTEGER DEFAULT NULL, id_preview_attachment INTEGER DEFAULT NULL, order_quantity INTEGER NOT NULL, order_only_missing_parts BOOLEAN NOT NULL, comment CLOB NOT NULL, not_selectable BOOLEAN NOT NULL, name VARCHAR(255) NOT NULL, last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, status VARCHAR(64) DEFAULT NULL, description CLOB DEFAULT \'\' NOT NULL, CONSTRAINT FK_11074E9A727ACA70 FOREIGN KEY (parent_id) REFERENCES projects (id) ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_5C93B3A4EA7100A1 FOREIGN KEY (id_preview_attachment) REFERENCES attachments (id) ON UPDATE NO ACTION ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE)' );
$this -> addSql ( 'INSERT INTO projects (id, parent_id, id_preview_attachment, order_quantity, order_only_missing_parts, comment, not_selectable, name, last_modified, datetime_added, status, description) SELECT id, parent_id, id_preview_attachment, order_quantity, order_only_missing_parts, comment, not_selectable, name, last_modified, datetime_added, status, description FROM __temp__projects' );
$this -> addSql ( 'DROP TABLE __temp__projects' );
$this -> addSql ( 'CREATE INDEX IDX_5C93B3A4EA7100A1 ON projects (id_preview_attachment)' );
$this -> addSql ( 'CREATE INDEX IDX_5C93B3A4727ACA70 ON projects (parent_id)' );
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__storelocations AS SELECT id, parent_id, storage_type_id, id_preview_attachment, is_full, only_single_part, limit_to_existing_parts, comment, not_selectable, name, last_modified, datetime_added FROM storelocations' );
$this -> addSql ( 'DROP TABLE storelocations' );
$this -> addSql ( 'CREATE TABLE storelocations (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, parent_id INTEGER DEFAULT NULL, storage_type_id INTEGER DEFAULT NULL, id_preview_attachment INTEGER DEFAULT NULL, id_owner INTEGER DEFAULT NULL, is_full BOOLEAN NOT NULL, only_single_part BOOLEAN NOT NULL, limit_to_existing_parts BOOLEAN NOT NULL, comment CLOB NOT NULL, not_selectable BOOLEAN NOT NULL, name VARCHAR(255) NOT NULL, last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, part_owner_must_match BOOLEAN DEFAULT 0 NOT NULL, CONSTRAINT FK_7517020727ACA70 FOREIGN KEY (parent_id) REFERENCES storelocations (id) ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_7517020B270BFF1 FOREIGN KEY (storage_type_id) REFERENCES measurement_units (id) ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_7517020EA7100A1 FOREIGN KEY (id_preview_attachment) REFERENCES attachments (id) ON UPDATE NO ACTION ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_751702021E5A74C FOREIGN KEY (id_owner) REFERENCES "users" (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE)' );
$this -> addSql ( 'INSERT INTO storelocations (id, parent_id, storage_type_id, id_preview_attachment, is_full, only_single_part, limit_to_existing_parts, comment, not_selectable, name, last_modified, datetime_added) SELECT id, parent_id, storage_type_id, id_preview_attachment, is_full, only_single_part, limit_to_existing_parts, comment, not_selectable, name, last_modified, datetime_added FROM __temp__storelocations' );
$this -> addSql ( 'DROP TABLE __temp__storelocations' );
$this -> addSql ( 'CREATE INDEX IDX_7517020EA7100A1 ON storelocations (id_preview_attachment)' );
$this -> addSql ( 'CREATE INDEX IDX_7517020B270BFF1 ON storelocations (storage_type_id)' );
$this -> addSql ( 'CREATE INDEX IDX_7517020727ACA70 ON storelocations (parent_id)' );
$this -> addSql ( 'CREATE INDEX location_idx_name ON storelocations (name)' );
$this -> addSql ( 'CREATE INDEX location_idx_parent_name ON storelocations (parent_id, name)' );
$this -> addSql ( 'CREATE INDEX IDX_751702021E5A74C ON storelocations (id_owner)' );
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__suppliers AS SELECT id, parent_id, default_currency_id, id_preview_attachment, shipping_costs, address, phone_number, fax_number, email_address, website, auto_product_url, comment, not_selectable, name, last_modified, datetime_added FROM suppliers' );
$this -> addSql ( 'DROP TABLE suppliers' );
$this -> addSql ( ' CREATE TABLE suppliers ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , parent_id INTEGER DEFAULT NULL , default_currency_id INTEGER DEFAULT NULL , id_preview_attachment INTEGER DEFAULT NULL , shipping_costs NUMERIC ( 11 , 5 ) DEFAULT NULL -- ( DC2Type : big_decimal )
, address VARCHAR ( 255 ) NOT NULL , phone_number VARCHAR ( 255 ) NOT NULL , fax_number VARCHAR ( 255 ) NOT NULL , email_address VARCHAR ( 255 ) NOT NULL , website VARCHAR ( 255 ) NOT NULL , auto_product_url VARCHAR ( 255 ) NOT NULL , comment CLOB NOT NULL , not_selectable BOOLEAN NOT NULL , name VARCHAR ( 255 ) NOT NULL , last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , CONSTRAINT FK_AC28B95C727ACA70 FOREIGN KEY ( parent_id ) REFERENCES suppliers ( id ) ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE , CONSTRAINT FK_AC28B95CECD792C0 FOREIGN KEY ( default_currency_id ) REFERENCES currencies ( id ) ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE , CONSTRAINT FK_AC28B95CEA7100A1 FOREIGN KEY ( id_preview_attachment ) REFERENCES attachments ( id ) ON UPDATE NO ACTION ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE ) ' );
$this -> addSql ( 'INSERT INTO suppliers (id, parent_id, default_currency_id, id_preview_attachment, shipping_costs, address, phone_number, fax_number, email_address, website, auto_product_url, comment, not_selectable, name, last_modified, datetime_added) SELECT id, parent_id, default_currency_id, id_preview_attachment, shipping_costs, address, phone_number, fax_number, email_address, website, auto_product_url, comment, not_selectable, name, last_modified, datetime_added FROM __temp__suppliers' );
$this -> addSql ( 'DROP TABLE __temp__suppliers' );
$this -> addSql ( 'CREATE INDEX IDX_AC28B95CEA7100A1 ON suppliers (id_preview_attachment)' );
$this -> addSql ( 'CREATE INDEX supplier_idx_parent_name ON suppliers (parent_id, name)' );
$this -> addSql ( 'CREATE INDEX supplier_idx_name ON suppliers (name)' );
$this -> addSql ( 'CREATE INDEX IDX_AC28B95C727ACA70 ON suppliers (parent_id)' );
$this -> addSql ( 'CREATE INDEX IDX_AC28B95CECD792C0 ON suppliers (default_currency_id)' );
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__users AS SELECT id, group_id, currency_id, id_preview_attachment, disabled, config_theme, pw_reset_token, config_instock_comment_a, config_instock_comment_w, trusted_device_cookie_version, backup_codes, google_authenticator_secret, config_timezone, config_language, email, department, last_name, first_name, need_pw_change, password, name, settings, backup_codes_generation_date, pw_reset_expires, last_modified, datetime_added, permissions_data, saml_user FROM users' );
$this -> addSql ( 'DROP TABLE users' );
$this -> addSql ( ' CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , group_id INTEGER DEFAULT NULL , currency_id INTEGER DEFAULT NULL , id_preview_attachment INTEGER DEFAULT NULL , disabled BOOLEAN NOT NULL , config_theme VARCHAR ( 255 ) DEFAULT NULL , pw_reset_token VARCHAR ( 255 ) DEFAULT NULL , config_instock_comment_a CLOB NOT NULL , config_instock_comment_w CLOB NOT NULL , trusted_device_cookie_version INTEGER NOT NULL , backup_codes CLOB NOT NULL -- ( DC2Type : json )
, google_authenticator_secret VARCHAR ( 255 ) DEFAULT NULL , config_timezone VARCHAR ( 255 ) DEFAULT NULL , config_language VARCHAR ( 255 ) DEFAULT NULL , email VARCHAR ( 255 ) DEFAULT NULL , department VARCHAR ( 255 ) DEFAULT NULL , last_name VARCHAR ( 255 ) DEFAULT NULL , first_name VARCHAR ( 255 ) DEFAULT NULL , need_pw_change BOOLEAN NOT NULL , password VARCHAR ( 255 ) DEFAULT NULL , name VARCHAR ( 180 ) NOT NULL , settings CLOB NOT NULL -- ( DC2Type : json )
, backup_codes_generation_date DATETIME DEFAULT NULL , pw_reset_expires DATETIME DEFAULT NULL , last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , permissions_data CLOB DEFAULT \ ' [] \ ' NOT NULL -- ( DC2Type : json )
, saml_user BOOLEAN NOT NULL , about_me CLOB DEFAULT \ '\' NOT NULL, CONSTRAINT FK_1483A5E9FE54D947 FOREIGN KEY (group_id) REFERENCES groups (id) ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_1483A5E938248176 FOREIGN KEY (currency_id) REFERENCES currencies (id) ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_1483A5E9EA7100A1 FOREIGN KEY (id_preview_attachment) REFERENCES attachments (id) ON UPDATE NO ACTION ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE)' );
$this -> addSql ( 'INSERT INTO users (id, group_id, currency_id, id_preview_attachment, disabled, config_theme, pw_reset_token, config_instock_comment_a, config_instock_comment_w, trusted_device_cookie_version, backup_codes, google_authenticator_secret, config_timezone, config_language, email, department, last_name, first_name, need_pw_change, password, name, settings, backup_codes_generation_date, pw_reset_expires, last_modified, datetime_added, permissions_data, saml_user) SELECT id, group_id, currency_id, id_preview_attachment, disabled, config_theme, pw_reset_token, config_instock_comment_a, config_instock_comment_w, trusted_device_cookie_version, backup_codes, google_authenticator_secret, config_timezone, config_language, email, department, last_name, first_name, need_pw_change, password, name, settings, backup_codes_generation_date, pw_reset_expires, last_modified, datetime_added, permissions_data, saml_user FROM __temp__users' );
$this -> addSql ( 'DROP TABLE __temp__users' );
$this -> addSql ( 'CREATE INDEX IDX_1483A5E9EA7100A1 ON users (id_preview_attachment)' );
$this -> addSql ( 'CREATE INDEX IDX_1483A5E938248176 ON users (currency_id)' );
$this -> addSql ( 'CREATE INDEX IDX_1483A5E9FE54D947 ON users (group_id)' );
$this -> addSql ( 'CREATE UNIQUE INDEX UNIQ_1483A5E95E237E06 ON users (name)' );
$this -> addSql ( 'CREATE INDEX user_idx_username ON users (name)' );
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__webauthn_keys AS SELECT id, user_id, public_key_credential_id, type, transports, attestation_type, trust_path, aaguid, credential_public_key, user_handle, counter, name, last_modified, datetime_added FROM webauthn_keys' );
$this -> addSql ( 'DROP TABLE webauthn_keys' );
$this -> addSql ( ' CREATE TABLE webauthn_keys ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , user_id INTEGER DEFAULT NULL , public_key_credential_id CLOB NOT NULL -- ( DC2Type : base64 )
, type VARCHAR ( 255 ) NOT NULL , transports CLOB NOT NULL -- ( DC2Type : array )
, attestation_type VARCHAR ( 255 ) NOT NULL , trust_path CLOB NOT NULL -- ( DC2Type : trust_path )
, aaguid CLOB NOT NULL -- ( DC2Type : aaguid )
, credential_public_key CLOB NOT NULL -- ( DC2Type : base64 )
, user_handle VARCHAR ( 255 ) NOT NULL , counter INTEGER NOT NULL , name VARCHAR ( 255 ) NOT NULL , last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , CONSTRAINT FK_799FD143A76ED395 FOREIGN KEY ( user_id ) REFERENCES users ( id ) ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE ) ' );
$this -> addSql ( 'INSERT INTO webauthn_keys (id, user_id, public_key_credential_id, type, transports, attestation_type, trust_path, aaguid, credential_public_key, user_handle, counter, name, last_modified, datetime_added) SELECT id, user_id, public_key_credential_id, type, transports, attestation_type, trust_path, aaguid, credential_public_key, user_handle, counter, name, last_modified, datetime_added FROM __temp__webauthn_keys' );
$this -> addSql ( 'DROP TABLE __temp__webauthn_keys' );
$this -> addSql ( 'CREATE INDEX IDX_799FD143A76ED395 ON webauthn_keys (user_id)' );
}
public function sqLiteDown ( Schema $schema ) : void
{
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__currencies AS SELECT id, parent_id, id_preview_attachment, exchange_rate, iso_code, comment, not_selectable, name, last_modified, datetime_added FROM currencies' );
$this -> addSql ( 'DROP TABLE currencies' );
$this -> addSql ( ' CREATE TABLE currencies ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , parent_id INTEGER DEFAULT NULL , id_preview_attachment INTEGER DEFAULT NULL , exchange_rate NUMERIC ( 11 , 5 ) DEFAULT NULL --
( DC2Type : big_decimal )
, iso_code VARCHAR ( 255 ) NOT NULL , comment CLOB NOT NULL , not_selectable BOOLEAN NOT NULL , name VARCHAR ( 255 ) NOT NULL , last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , CONSTRAINT FK_37C44693727ACA70 FOREIGN KEY ( parent_id ) REFERENCES currencies ( id ) NOT DEFERRABLE INITIALLY IMMEDIATE , CONSTRAINT FK_37C44693EA7100A1 FOREIGN KEY ( id_preview_attachment ) REFERENCES " attachments " ( id ) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE ) ' );
$this -> addSql ( 'INSERT INTO currencies (id, parent_id, id_preview_attachment, exchange_rate, iso_code, comment, not_selectable, name, last_modified, datetime_added) SELECT id, parent_id, id_preview_attachment, exchange_rate, iso_code, comment, not_selectable, name, last_modified, datetime_added FROM __temp__currencies' );
$this -> addSql ( 'DROP TABLE __temp__currencies' );
$this -> addSql ( 'CREATE INDEX IDX_37C44693727ACA70 ON currencies (parent_id)' );
$this -> addSql ( 'CREATE INDEX IDX_37C44693EA7100A1 ON currencies (id_preview_attachment)' );
$this -> addSql ( 'CREATE INDEX currency_idx_name ON currencies (name)' );
$this -> addSql ( 'CREATE INDEX currency_idx_parent_name ON currencies (parent_id, name)' );
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__groups AS SELECT id, parent_id, id_preview_attachment, enforce_2fa, comment, not_selectable, name, last_modified, datetime_added, permissions_data FROM "groups"' );
$this -> addSql ( 'DROP TABLE "groups"' );
$this -> addSql ( ' CREATE TABLE " groups " ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , parent_id INTEGER DEFAULT NULL , id_preview_attachment INTEGER DEFAULT NULL , enforce_2fa BOOLEAN NOT NULL , comment CLOB NOT NULL , not_selectable BOOLEAN NOT NULL , name VARCHAR ( 255 ) NOT NULL , last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , permissions_data CLOB DEFAULT \ ' [] \ ' NOT NULL --
( DC2Type : json )
, CONSTRAINT FK_F06D3970727ACA70 FOREIGN KEY ( parent_id ) REFERENCES " groups " ( id ) NOT DEFERRABLE INITIALLY IMMEDIATE , CONSTRAINT FK_F06D3970EA7100A1 FOREIGN KEY ( id_preview_attachment ) REFERENCES " attachments " ( id ) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE ) ' );
$this -> addSql ( 'INSERT INTO "groups" (id, parent_id, id_preview_attachment, enforce_2fa, comment, not_selectable, name, last_modified, datetime_added, permissions_data) SELECT id, parent_id, id_preview_attachment, enforce_2fa, comment, not_selectable, name, last_modified, datetime_added, permissions_data FROM __temp__groups' );
$this -> addSql ( 'DROP TABLE __temp__groups' );
$this -> addSql ( 'CREATE INDEX IDX_F06D3970727ACA70 ON "groups" (parent_id)' );
$this -> addSql ( 'CREATE INDEX IDX_F06D3970EA7100A1 ON "groups" (id_preview_attachment)' );
$this -> addSql ( 'CREATE INDEX group_idx_name ON "groups" (name)' );
$this -> addSql ( 'CREATE INDEX group_idx_parent_name ON "groups" (parent_id, name)' );
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__log AS SELECT id, id_user, username, datetime, level, target_id, target_type, extra, type FROM log' );
$this -> addSql ( 'DROP TABLE log' );
$this -> addSql ( ' CREATE TABLE log ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , id_user INTEGER DEFAULT NULL , username VARCHAR ( 255 ) NOT NULL , datetime DATETIME NOT NULL , level BOOLEAN NOT NULL , target_id INTEGER NOT NULL , target_type SMALLINT NOT NULL , extra CLOB NOT NULL --
( DC2Type : json )
, type SMALLINT NOT NULL , CONSTRAINT FK_8F3F68C56B3CA4B FOREIGN KEY ( id_user ) REFERENCES " users " ( id ) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE ) ' );
$this -> addSql ( 'INSERT INTO log (id, id_user, username, datetime, level, target_id, target_type, extra, type) SELECT id, id_user, username, datetime, level, target_id, target_type, extra, type FROM __temp__log' );
$this -> addSql ( 'DROP TABLE __temp__log' );
$this -> addSql ( 'CREATE INDEX IDX_8F3F68C56B3CA4B ON log (id_user)' );
$this -> addSql ( 'CREATE INDEX log_idx_type ON log (type)' );
$this -> addSql ( 'CREATE INDEX log_idx_type_target ON log (type, target_type, target_id)' );
$this -> addSql ( 'CREATE INDEX log_idx_datetime ON log (datetime)' );
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__part_lots AS SELECT id, id_store_location, id_part, description, comment, expiration_date, instock_unknown, amount, needs_refill, last_modified, datetime_added FROM part_lots' );
$this -> addSql ( 'DROP TABLE part_lots' );
$this -> addSql ( 'CREATE TABLE part_lots (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, id_store_location INTEGER DEFAULT NULL, id_part INTEGER NOT NULL, description CLOB NOT NULL, comment CLOB NOT NULL, expiration_date DATETIME DEFAULT NULL, instock_unknown BOOLEAN NOT NULL, amount DOUBLE PRECISION NOT NULL, needs_refill BOOLEAN NOT NULL, last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, CONSTRAINT FK_EBC8F9435D8F4B37 FOREIGN KEY (id_store_location) REFERENCES "storelocations" (id) NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_EBC8F943C22F6CC4 FOREIGN KEY (id_part) REFERENCES "parts" (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE)' );
$this -> addSql ( 'INSERT INTO part_lots (id, id_store_location, id_part, description, comment, expiration_date, instock_unknown, amount, needs_refill, last_modified, datetime_added) SELECT id, id_store_location, id_part, description, comment, expiration_date, instock_unknown, amount, needs_refill, last_modified, datetime_added FROM __temp__part_lots' );
$this -> addSql ( 'DROP TABLE __temp__part_lots' );
$this -> addSql ( 'CREATE INDEX IDX_EBC8F9435D8F4B37 ON part_lots (id_store_location)' );
$this -> addSql ( 'CREATE INDEX IDX_EBC8F943C22F6CC4 ON part_lots (id_part)' );
$this -> addSql ( 'CREATE INDEX part_lots_idx_instock_un_expiration_id_part ON part_lots (instock_unknown, expiration_date, id_part)' );
$this -> addSql ( 'CREATE INDEX part_lots_idx_needs_refill ON part_lots (needs_refill)' );
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__pricedetails AS SELECT id, id_currency, orderdetails_id, price, price_related_quantity, min_discount_quantity, manual_input, last_modified, datetime_added FROM "pricedetails"' );
$this -> addSql ( 'DROP TABLE "pricedetails"' );
$this -> addSql ( ' CREATE TABLE " pricedetails " ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , id_currency INTEGER DEFAULT NULL , orderdetails_id INTEGER NOT NULL , price NUMERIC ( 11 , 5 ) NOT NULL --
( DC2Type : big_decimal )
, price_related_quantity DOUBLE PRECISION NOT NULL , min_discount_quantity DOUBLE PRECISION NOT NULL , manual_input BOOLEAN NOT NULL , last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , CONSTRAINT FK_C68C4459398D64AA FOREIGN KEY ( id_currency ) REFERENCES currencies ( id ) NOT DEFERRABLE INITIALLY IMMEDIATE , CONSTRAINT FK_C68C44594A01DDC7 FOREIGN KEY ( orderdetails_id ) REFERENCES " orderdetails " ( id ) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE ) ' );
$this -> addSql ( 'INSERT INTO "pricedetails" (id, id_currency, orderdetails_id, price, price_related_quantity, min_discount_quantity, manual_input, last_modified, datetime_added) SELECT id, id_currency, orderdetails_id, price, price_related_quantity, min_discount_quantity, manual_input, last_modified, datetime_added FROM __temp__pricedetails' );
$this -> addSql ( 'DROP TABLE __temp__pricedetails' );
$this -> addSql ( 'CREATE INDEX IDX_C68C4459398D64AA ON "pricedetails" (id_currency)' );
$this -> addSql ( 'CREATE INDEX IDX_C68C44594A01DDC7 ON "pricedetails" (orderdetails_id)' );
$this -> addSql ( 'CREATE INDEX pricedetails_idx_min_discount ON "pricedetails" (min_discount_quantity)' );
$this -> addSql ( 'CREATE INDEX pricedetails_idx_min_discount_price_qty ON "pricedetails" (min_discount_quantity, price_related_quantity)' );
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__project_bom_entries AS SELECT id, id_device, id_part, price_currency_id, quantity, mountnames, name, comment, price, last_modified, datetime_added FROM project_bom_entries' );
$this -> addSql ( 'DROP TABLE project_bom_entries' );
$this -> addSql ( ' CREATE TABLE project_bom_entries ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , id_device INTEGER DEFAULT NULL , id_part INTEGER DEFAULT NULL , price_currency_id INTEGER DEFAULT NULL , quantity DOUBLE PRECISION NOT NULL , mountnames CLOB NOT NULL , name VARCHAR ( 255 ) DEFAULT NULL , comment CLOB NOT NULL , price NUMERIC ( 11 , 5 ) DEFAULT NULL --
( DC2Type : big_decimal )
, last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , CONSTRAINT FK_1AA2DD312F180363 FOREIGN KEY ( id_device ) REFERENCES projects ( id ) NOT DEFERRABLE INITIALLY IMMEDIATE , CONSTRAINT FK_1AA2DD31C22F6CC4 FOREIGN KEY ( id_part ) REFERENCES " parts " ( id ) NOT DEFERRABLE INITIALLY IMMEDIATE , CONSTRAINT FK_1AA2DD313FFDCD60 FOREIGN KEY ( price_currency_id ) REFERENCES currencies ( id ) NOT DEFERRABLE INITIALLY IMMEDIATE ) ' );
$this -> addSql ( 'INSERT INTO project_bom_entries (id, id_device, id_part, price_currency_id, quantity, mountnames, name, comment, price, last_modified, datetime_added) SELECT id, id_device, id_part, price_currency_id, quantity, mountnames, name, comment, price, last_modified, datetime_added FROM __temp__project_bom_entries' );
$this -> addSql ( 'DROP TABLE __temp__project_bom_entries' );
$this -> addSql ( 'CREATE INDEX IDX_1AA2DD312F180363 ON project_bom_entries (id_device)' );
$this -> addSql ( 'CREATE INDEX IDX_1AA2DD31C22F6CC4 ON project_bom_entries (id_part)' );
$this -> addSql ( 'CREATE INDEX IDX_1AA2DD313FFDCD60 ON project_bom_entries (price_currency_id)' );
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__projects AS SELECT id, parent_id, id_preview_attachment, order_quantity, status, order_only_missing_parts, description, comment, not_selectable, name, last_modified, datetime_added FROM projects' );
$this -> addSql ( 'DROP TABLE projects' );
$this -> addSql ( 'CREATE TABLE projects (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, parent_id INTEGER DEFAULT NULL, id_preview_attachment INTEGER DEFAULT NULL, order_quantity INTEGER NOT NULL, status VARCHAR(64) DEFAULT NULL, order_only_missing_parts BOOLEAN NOT NULL, description CLOB DEFAULT \'\', comment CLOB NOT NULL, not_selectable BOOLEAN NOT NULL, name VARCHAR(255) NOT NULL, last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, CONSTRAINT FK_5C93B3A4727ACA70 FOREIGN KEY (parent_id) REFERENCES projects (id) NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_5C93B3A4EA7100A1 FOREIGN KEY (id_preview_attachment) REFERENCES "attachments" (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE)' );
$this -> addSql ( 'INSERT INTO projects (id, parent_id, id_preview_attachment, order_quantity, status, order_only_missing_parts, description, comment, not_selectable, name, last_modified, datetime_added) SELECT id, parent_id, id_preview_attachment, order_quantity, status, order_only_missing_parts, description, comment, not_selectable, name, last_modified, datetime_added FROM __temp__projects' );
$this -> addSql ( 'DROP TABLE __temp__projects' );
$this -> addSql ( 'CREATE INDEX IDX_5C93B3A4727ACA70 ON projects (parent_id)' );
$this -> addSql ( 'CREATE INDEX IDX_5C93B3A4EA7100A1 ON projects (id_preview_attachment)' );
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__storelocations AS SELECT id, parent_id, storage_type_id, id_preview_attachment, is_full, only_single_part, limit_to_existing_parts, comment, not_selectable, name, last_modified, datetime_added FROM "storelocations"' );
$this -> addSql ( 'DROP TABLE "storelocations"' );
$this -> addSql ( 'CREATE TABLE "storelocations" (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, parent_id INTEGER DEFAULT NULL, storage_type_id INTEGER DEFAULT NULL, id_preview_attachment INTEGER DEFAULT NULL, is_full BOOLEAN NOT NULL, only_single_part BOOLEAN NOT NULL, limit_to_existing_parts BOOLEAN NOT NULL, comment CLOB NOT NULL, not_selectable BOOLEAN NOT NULL, name VARCHAR(255) NOT NULL, last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, CONSTRAINT FK_7517020727ACA70 FOREIGN KEY (parent_id) REFERENCES "storelocations" (id) NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_7517020B270BFF1 FOREIGN KEY (storage_type_id) REFERENCES "measurement_units" (id) NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_7517020EA7100A1 FOREIGN KEY (id_preview_attachment) REFERENCES "attachments" (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE)' );
$this -> addSql ( 'INSERT INTO "storelocations" (id, parent_id, storage_type_id, id_preview_attachment, is_full, only_single_part, limit_to_existing_parts, comment, not_selectable, name, last_modified, datetime_added) SELECT id, parent_id, storage_type_id, id_preview_attachment, is_full, only_single_part, limit_to_existing_parts, comment, not_selectable, name, last_modified, datetime_added FROM __temp__storelocations' );
$this -> addSql ( 'DROP TABLE __temp__storelocations' );
$this -> addSql ( 'CREATE INDEX IDX_7517020727ACA70 ON "storelocations" (parent_id)' );
$this -> addSql ( 'CREATE INDEX IDX_7517020B270BFF1 ON "storelocations" (storage_type_id)' );
$this -> addSql ( 'CREATE INDEX IDX_7517020EA7100A1 ON "storelocations" (id_preview_attachment)' );
$this -> addSql ( 'CREATE INDEX location_idx_name ON "storelocations" (name)' );
$this -> addSql ( 'CREATE INDEX location_idx_parent_name ON "storelocations" (parent_id, name)' );
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__suppliers AS SELECT id, parent_id, default_currency_id, id_preview_attachment, shipping_costs, address, phone_number, fax_number, email_address, website, auto_product_url, comment, not_selectable, name, last_modified, datetime_added FROM "suppliers"' );
$this -> addSql ( 'DROP TABLE "suppliers"' );
$this -> addSql ( ' CREATE TABLE " suppliers " ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , parent_id INTEGER DEFAULT NULL , default_currency_id INTEGER DEFAULT NULL , id_preview_attachment INTEGER DEFAULT NULL , shipping_costs NUMERIC ( 11 , 5 ) DEFAULT NULL --
( DC2Type : big_decimal )
, address VARCHAR ( 255 ) NOT NULL , phone_number VARCHAR ( 255 ) NOT NULL , fax_number VARCHAR ( 255 ) NOT NULL , email_address VARCHAR ( 255 ) NOT NULL , website VARCHAR ( 255 ) NOT NULL , auto_product_url VARCHAR ( 255 ) NOT NULL , comment CLOB NOT NULL , not_selectable BOOLEAN NOT NULL , name VARCHAR ( 255 ) NOT NULL , last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , CONSTRAINT FK_AC28B95C727ACA70 FOREIGN KEY ( parent_id ) REFERENCES " suppliers " ( id ) NOT DEFERRABLE INITIALLY IMMEDIATE , CONSTRAINT FK_AC28B95CECD792C0 FOREIGN KEY ( default_currency_id ) REFERENCES currencies ( id ) NOT DEFERRABLE INITIALLY IMMEDIATE , CONSTRAINT FK_AC28B95CEA7100A1 FOREIGN KEY ( id_preview_attachment ) REFERENCES " attachments " ( id ) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE ) ' );
$this -> addSql ( 'INSERT INTO "suppliers" (id, parent_id, default_currency_id, id_preview_attachment, shipping_costs, address, phone_number, fax_number, email_address, website, auto_product_url, comment, not_selectable, name, last_modified, datetime_added) SELECT id, parent_id, default_currency_id, id_preview_attachment, shipping_costs, address, phone_number, fax_number, email_address, website, auto_product_url, comment, not_selectable, name, last_modified, datetime_added FROM __temp__suppliers' );
$this -> addSql ( 'DROP TABLE __temp__suppliers' );
$this -> addSql ( 'CREATE INDEX IDX_AC28B95C727ACA70 ON "suppliers" (parent_id)' );
$this -> addSql ( 'CREATE INDEX IDX_AC28B95CECD792C0 ON "suppliers" (default_currency_id)' );
$this -> addSql ( 'CREATE INDEX IDX_AC28B95CEA7100A1 ON "suppliers" (id_preview_attachment)' );
$this -> addSql ( 'CREATE INDEX supplier_idx_name ON "suppliers" (name)' );
$this -> addSql ( 'CREATE INDEX supplier_idx_parent_name ON "suppliers" (parent_id, name)' );
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__users AS SELECT id, group_id, currency_id, id_preview_attachment, disabled, config_theme, pw_reset_token, config_instock_comment_a, config_instock_comment_w, trusted_device_cookie_version, backup_codes, google_authenticator_secret, config_timezone, config_language, email, department, last_name, first_name, need_pw_change, password, name, settings, backup_codes_generation_date, pw_reset_expires, saml_user, last_modified, datetime_added, permissions_data FROM "users"' );
$this -> addSql ( 'DROP TABLE "users"' );
$this -> addSql ( ' CREATE TABLE " users " ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , group_id INTEGER DEFAULT NULL , currency_id INTEGER DEFAULT NULL , id_preview_attachment INTEGER DEFAULT NULL , disabled BOOLEAN NOT NULL , config_theme VARCHAR ( 255 ) DEFAULT NULL , pw_reset_token VARCHAR ( 255 ) DEFAULT NULL , config_instock_comment_a CLOB NOT NULL , config_instock_comment_w CLOB NOT NULL , trusted_device_cookie_version INTEGER NOT NULL , backup_codes CLOB NOT NULL --
( DC2Type : json )
, google_authenticator_secret VARCHAR ( 255 ) DEFAULT NULL , config_timezone VARCHAR ( 255 ) DEFAULT NULL , config_language VARCHAR ( 255 ) DEFAULT NULL , email VARCHAR ( 255 ) DEFAULT NULL , department VARCHAR ( 255 ) DEFAULT NULL , last_name VARCHAR ( 255 ) DEFAULT NULL , first_name VARCHAR ( 255 ) DEFAULT NULL , need_pw_change BOOLEAN NOT NULL , password VARCHAR ( 255 ) DEFAULT NULL , name VARCHAR ( 180 ) NOT NULL , settings CLOB NOT NULL --
( DC2Type : json )
, backup_codes_generation_date DATETIME DEFAULT NULL , pw_reset_expires DATETIME DEFAULT NULL , saml_user BOOLEAN DEFAULT 0 NOT NULL , last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , permissions_data CLOB DEFAULT \ ' [] \ ' NOT NULL --
( DC2Type : json )
, CONSTRAINT FK_1483A5E9FE54D947 FOREIGN KEY ( group_id ) REFERENCES " groups " ( id ) NOT DEFERRABLE INITIALLY IMMEDIATE , CONSTRAINT FK_1483A5E938248176 FOREIGN KEY ( currency_id ) REFERENCES currencies ( id ) NOT DEFERRABLE INITIALLY IMMEDIATE , CONSTRAINT FK_1483A5E9EA7100A1 FOREIGN KEY ( id_preview_attachment ) REFERENCES " attachments " ( id ) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE ) ' );
$this -> addSql ( 'INSERT INTO "users" (id, group_id, currency_id, id_preview_attachment, disabled, config_theme, pw_reset_token, config_instock_comment_a, config_instock_comment_w, trusted_device_cookie_version, backup_codes, google_authenticator_secret, config_timezone, config_language, email, department, last_name, first_name, need_pw_change, password, name, settings, backup_codes_generation_date, pw_reset_expires, saml_user, last_modified, datetime_added, permissions_data) SELECT id, group_id, currency_id, id_preview_attachment, disabled, config_theme, pw_reset_token, config_instock_comment_a, config_instock_comment_w, trusted_device_cookie_version, backup_codes, google_authenticator_secret, config_timezone, config_language, email, department, last_name, first_name, need_pw_change, password, name, settings, backup_codes_generation_date, pw_reset_expires, saml_user, last_modified, datetime_added, permissions_data FROM __temp__users' );
$this -> addSql ( 'DROP TABLE __temp__users' );
$this -> addSql ( 'CREATE UNIQUE INDEX UNIQ_1483A5E95E237E06 ON "users" (name)' );
$this -> addSql ( 'CREATE INDEX IDX_1483A5E9FE54D947 ON "users" (group_id)' );
$this -> addSql ( 'CREATE INDEX IDX_1483A5E938248176 ON "users" (currency_id)' );
$this -> addSql ( 'CREATE INDEX IDX_1483A5E9EA7100A1 ON "users" (id_preview_attachment)' );
$this -> addSql ( 'CREATE INDEX user_idx_username ON "users" (name)' );
$this -> addSql ( 'CREATE TEMPORARY TABLE __temp__webauthn_keys AS SELECT id, user_id, public_key_credential_id, type, transports, attestation_type, trust_path, aaguid, credential_public_key, user_handle, counter, name, last_modified, datetime_added FROM webauthn_keys' );
$this -> addSql ( 'DROP TABLE webauthn_keys' );
$this -> addSql ( ' CREATE TABLE webauthn_keys ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , user_id INTEGER DEFAULT NULL , public_key_credential_id CLOB NOT NULL --
( DC2Type : base64 )
, type VARCHAR ( 255 ) NOT NULL , transports CLOB NOT NULL --
( DC2Type : array )
, attestation_type VARCHAR ( 255 ) NOT NULL , trust_path CLOB NOT NULL --
( DC2Type : trust_path )
, aaguid CLOB NOT NULL --
( DC2Type : aaguid )
, credential_public_key CLOB NOT NULL --
( DC2Type : base64 )
, user_handle VARCHAR ( 255 ) NOT NULL , counter INTEGER NOT NULL , name VARCHAR ( 255 ) NOT NULL , last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL , CONSTRAINT FK_799FD143A76ED395 FOREIGN KEY ( user_id ) REFERENCES " users " ( id ) NOT DEFERRABLE INITIALLY IMMEDIATE ) ' );
$this -> addSql ( 'INSERT INTO webauthn_keys (id, user_id, public_key_credential_id, type, transports, attestation_type, trust_path, aaguid, credential_public_key, user_handle, counter, name, last_modified, datetime_added) SELECT id, user_id, public_key_credential_id, type, transports, attestation_type, trust_path, aaguid, credential_public_key, user_handle, counter, name, last_modified, datetime_added FROM __temp__webauthn_keys' );
$this -> addSql ( 'DROP TABLE __temp__webauthn_keys' );
$this -> addSql ( 'CREATE INDEX IDX_799FD143A76ED395 ON webauthn_keys (user_id)' );
}
2023-04-02 19:10:36 +02:00
}