addSql('CREATE TABLE portfolio (id SERIAL NOT NULL, client_agreement VARCHAR(255) NOT NULL, xml_data TEXT NOT NULL, start_date DATE NOT NULL, end_date DATE NOT NULL, PRIMARY KEY(id))'); $this->addSql('COMMENT ON COLUMN portfolio.start_date IS \'(DC2Type:date_immutable)\''); $this->addSql('COMMENT ON COLUMN portfolio.end_date IS \'(DC2Type:date_immutable)\''); $this->addSql('CREATE TABLE portfolio_detail (id SERIAL NOT NULL, portfolio_id INT NOT NULL, security VARCHAR(32) NOT NULL, quantity_start INT NOT NULL, quantity_end INT NOT NULL, price_start NUMERIC(10, 3) NOT NULL, price_end NUMERIC(10, 3) NOT NULL, sum_start NUMERIC(10, 3) NOT NULL, sum_end NUMERIC(10, 3) NOT NULL, issuer VARCHAR(255) NOT NULL, PRIMARY KEY(id))'); $this->addSql('CREATE INDEX IDX_28ED92A6B96B5643 ON portfolio_detail (portfolio_id)'); $this->addSql('CREATE TABLE portfolio_movement (id SERIAL NOT NULL, portfolio_id INT NOT NULL, security VARCHAR(255) NOT NULL, period TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, quantity_start INT NOT NULL, quantity_end INT NOT NULL, quantity_income INT NOT NULL, quantity_outcome INT NOT NULL, PRIMARY KEY(id))'); $this->addSql('CREATE INDEX IDX_8857CF6FB96B5643 ON portfolio_movement (portfolio_id)'); $this->addSql('COMMENT ON COLUMN portfolio_movement.period IS \'(DC2Type:datetime_immutable)\''); $this->addSql('ALTER TABLE portfolio_detail ADD CONSTRAINT FK_28ED92A6B96B5643 FOREIGN KEY (portfolio_id) REFERENCES portfolio (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); $this->addSql('ALTER TABLE portfolio_movement ADD CONSTRAINT FK_8857CF6FB96B5643 FOREIGN KEY (portfolio_id) REFERENCES portfolio (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); } public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->addSql('CREATE SCHEMA public'); $this->addSql('ALTER TABLE portfolio_detail DROP CONSTRAINT FK_28ED92A6B96B5643'); $this->addSql('ALTER TABLE portfolio_movement DROP CONSTRAINT FK_8857CF6FB96B5643'); $this->addSql('DROP TABLE portfolio'); $this->addSql('DROP TABLE portfolio_detail'); $this->addSql('DROP TABLE portfolio_movement'); } }