zend-blog-3-backend
78 строк · 9.1 Кб
1<?php
2
3namespace Application\Migrations;4
5use Doctrine\DBAL\Schema\Schema;6use Doctrine\Migrations\AbstractMigration;7
8/**
9* Auto-generated Migration: Please modify to your needs!
10*/
11class Version20141025170346 extends AbstractMigration12{
13public function up(Schema $schema): void14{15// this up() migration is auto-generated, please modify it to your needs16$this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.');17
18$this->addSql('CREATE TABLE avatar (id INT AUTO_INCREMENT NOT NULL, hash VARCHAR(32) NOT NULL, `default` SMALLINT NOT NULL, src VARCHAR(48) NOT NULL, last_modified DATETIME NOT NULL, UNIQUE INDEX UNIQ_1677722FD1B862B8 (hash), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');19$this->addSql('CREATE TABLE category (id INT AUTO_INCREMENT NOT NULL, parent_id INT DEFAULT NULL, name VARCHAR(100) NOT NULL, url VARCHAR(255) NOT NULL, UNIQUE INDEX UNIQ_64C19C1F47645AE (url), INDEX IDX_64C19C1727ACA70 (parent_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');20$this->addSql('CREATE TABLE comments (id INT AUTO_INCREMENT NOT NULL, parent_id INT DEFAULT NULL, post_id INT DEFAULT NULL, commentator_id INT DEFAULT NULL, user_id INT DEFAULT NULL, user_agent_id INT DEFAULT NULL, text LONGTEXT NOT NULL, deleted TINYINT(1) NOT NULL, ip_addr VARCHAR(15) DEFAULT NULL, time_created DATETIME NOT NULL, disqus_id INT DEFAULT NULL, INDEX IDX_5F9E962A727ACA70 (parent_id), INDEX IDX_5F9E962A4B89032C (post_id), INDEX IDX_5F9E962A506AFCC0 (commentator_id), INDEX IDX_5F9E962AA76ED395 (user_id), INDEX IDX_5F9E962AD499950B (user_agent_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');21$this->addSql('CREATE TABLE commentators (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(80) NOT NULL, mail VARCHAR(80) DEFAULT NULL, website VARCHAR(160) DEFAULT NULL, disqus_id INT DEFAULT NULL, email_hash VARCHAR(32) DEFAULT NULL, UNIQUE INDEX UNIQ_6AB0FB335E237E065126AC48476F5DE7 (name, mail, website), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');22$this->addSql('CREATE TABLE posts (id INT AUTO_INCREMENT NOT NULL, category_id INT DEFAULT NULL, user_id INT DEFAULT NULL, title VARCHAR(128) NOT NULL, url VARCHAR(255) NOT NULL, hide TINYINT(1) NOT NULL, text_post LONGTEXT NOT NULL, description VARCHAR(255) DEFAULT NULL, time_created DATETIME NOT NULL, last_update DATETIME DEFAULT NULL, disqus_thread INT DEFAULT NULL, UNIQUE INDEX UNIQ_885DBAFAF47645AE (url), INDEX IDX_885DBAFA12469DE2 (category_id), INDEX IDX_885DBAFAA76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');23$this->addSql('CREATE TABLE relation_topictag (post_id INT NOT NULL, tag_id INT NOT NULL, INDEX IDX_5D8668364B89032C (post_id), INDEX IDX_5D866836BAD26311 (tag_id), PRIMARY KEY(post_id, tag_id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');24$this->addSql('CREATE TABLE posts_counts (id INT AUTO_INCREMENT NOT NULL, post_id INT DEFAULT NULL, comments INT NOT NULL, views INT NOT NULL, UNIQUE INDEX UNIQ_D23531924B89032C (post_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');25$this->addSql('CREATE TABLE sys_parameters (id INT AUTO_INCREMENT NOT NULL, optionkey VARCHAR(128) NOT NULL, value LONGTEXT NOT NULL, UNIQUE INDEX UNIQ_275FC35B4B1573F6 (optionkey), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');26$this->addSql('CREATE TABLE tags (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(100) NOT NULL, url VARCHAR(255) NOT NULL, UNIQUE INDEX UNIQ_6FBC94265E237E06 (name), UNIQUE INDEX UNIQ_6FBC9426F47645AE (url), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');27$this->addSql('CREATE TABLE tracking (id INT AUTO_INCREMENT NOT NULL, post_id INT DEFAULT NULL, user_agent_id INT DEFAULT NULL, ip_addr VARCHAR(15) DEFAULT NULL, time_created DATETIME NOT NULL, INDEX IDX_A87C621C4B89032C (post_id), INDEX IDX_A87C621CD499950B (user_agent_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');28$this->addSql('CREATE TABLE tracking_agent (id INT AUTO_INCREMENT NOT NULL, user_agent VARCHAR(255) NOT NULL, bot_filter TINYINT(1) NOT NULL, UNIQUE INDEX UNIQ_CDD78530C44967C5 (user_agent), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');29$this->addSql('CREATE TABLE tracking_archive (id INT AUTO_INCREMENT NOT NULL, post_id INT NOT NULL, user_agent_id INT DEFAULT NULL, ip_addr VARCHAR(15) DEFAULT NULL, time_created DATETIME NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');30$this->addSql('CREATE TABLE users (id INT AUTO_INCREMENT NOT NULL, username VARCHAR(128) NOT NULL, mail VARCHAR(64) NOT NULL, password VARCHAR(32) NOT NULL, password_salt VARCHAR(32) NOT NULL, user_type VARCHAR(16) NOT NULL, time_created DATETIME NOT NULL, time_last DATETIME DEFAULT NULL, ip_addr VARCHAR(15) DEFAULT NULL, ip_last VARCHAR(15) DEFAULT NULL, email_hash VARCHAR(32) DEFAULT NULL, UNIQUE INDEX UNIQ_1483A5E9F85E0677 (username), UNIQUE INDEX UNIQ_1483A5E95126AC48 (mail), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');31$this->addSql('ALTER TABLE category ADD CONSTRAINT FK_64C19C1727ACA70 FOREIGN KEY (parent_id) REFERENCES category (id) ON DELETE SET NULL');32$this->addSql('ALTER TABLE comments ADD CONSTRAINT FK_5F9E962A727ACA70 FOREIGN KEY (parent_id) REFERENCES comments (id) ON DELETE SET NULL');33$this->addSql('ALTER TABLE comments ADD CONSTRAINT FK_5F9E962A4B89032C FOREIGN KEY (post_id) REFERENCES posts (id)');34$this->addSql('ALTER TABLE comments ADD CONSTRAINT FK_5F9E962A506AFCC0 FOREIGN KEY (commentator_id) REFERENCES commentators (id)');35$this->addSql('ALTER TABLE comments ADD CONSTRAINT FK_5F9E962AA76ED395 FOREIGN KEY (user_id) REFERENCES users (id)');36$this->addSql('ALTER TABLE comments ADD CONSTRAINT FK_5F9E962AD499950B FOREIGN KEY (user_agent_id) REFERENCES tracking_agent (id) ON DELETE SET NULL');37$this->addSql('ALTER TABLE posts ADD CONSTRAINT FK_885DBAFA12469DE2 FOREIGN KEY (category_id) REFERENCES category (id)');38$this->addSql('ALTER TABLE posts ADD CONSTRAINT FK_885DBAFAA76ED395 FOREIGN KEY (user_id) REFERENCES users (id)');39$this->addSql('ALTER TABLE relation_topictag ADD CONSTRAINT FK_5D8668364B89032C FOREIGN KEY (post_id) REFERENCES posts (id) ON DELETE CASCADE');40$this->addSql('ALTER TABLE relation_topictag ADD CONSTRAINT FK_5D866836BAD26311 FOREIGN KEY (tag_id) REFERENCES tags (id) ON DELETE CASCADE');41$this->addSql('ALTER TABLE posts_counts ADD CONSTRAINT FK_D23531924B89032C FOREIGN KEY (post_id) REFERENCES posts (id)');42$this->addSql('ALTER TABLE tracking ADD CONSTRAINT FK_A87C621C4B89032C FOREIGN KEY (post_id) REFERENCES posts (id)');43$this->addSql('ALTER TABLE tracking ADD CONSTRAINT FK_A87C621CD499950B FOREIGN KEY (user_agent_id) REFERENCES tracking_agent (id) ON DELETE SET NULL');44}45
46public function down(Schema $schema): void47{48// this down() migration is auto-generated, please modify it to your needs49$this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.');50
51$this->addSql('ALTER TABLE category DROP FOREIGN KEY FK_64C19C1727ACA70');52$this->addSql('ALTER TABLE posts DROP FOREIGN KEY FK_885DBAFA12469DE2');53$this->addSql('ALTER TABLE comments DROP FOREIGN KEY FK_5F9E962A727ACA70');54$this->addSql('ALTER TABLE comments DROP FOREIGN KEY FK_5F9E962A506AFCC0');55$this->addSql('ALTER TABLE comments DROP FOREIGN KEY FK_5F9E962A4B89032C');56$this->addSql('ALTER TABLE relation_topictag DROP FOREIGN KEY FK_5D8668364B89032C');57$this->addSql('ALTER TABLE posts_counts DROP FOREIGN KEY FK_D23531924B89032C');58$this->addSql('ALTER TABLE tracking DROP FOREIGN KEY FK_A87C621C4B89032C');59$this->addSql('ALTER TABLE relation_topictag DROP FOREIGN KEY FK_5D866836BAD26311');60$this->addSql('ALTER TABLE comments DROP FOREIGN KEY FK_5F9E962AD499950B');61$this->addSql('ALTER TABLE tracking DROP FOREIGN KEY FK_A87C621CD499950B');62$this->addSql('ALTER TABLE comments DROP FOREIGN KEY FK_5F9E962AA76ED395');63$this->addSql('ALTER TABLE posts DROP FOREIGN KEY FK_885DBAFAA76ED395');64$this->addSql('DROP TABLE avatar');65$this->addSql('DROP TABLE category');66$this->addSql('DROP TABLE comments');67$this->addSql('DROP TABLE commentators');68$this->addSql('DROP TABLE posts');69$this->addSql('DROP TABLE relation_topictag');70$this->addSql('DROP TABLE posts_counts');71$this->addSql('DROP TABLE sys_parameters');72$this->addSql('DROP TABLE tags');73$this->addSql('DROP TABLE tracking');74$this->addSql('DROP TABLE tracking_agent');75$this->addSql('DROP TABLE tracking_archive');76$this->addSql('DROP TABLE users');77}78}
79