migrations/Version20220726072232.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. /**
  7.  * Auto-generated Migration: Please modify to your needs!
  8.  */
  9. final class Version20220726072232 extends AbstractMigration
  10. {
  11.     public function getDescription(): string
  12.     {
  13.         return '';
  14.     }
  15.     public function up(Schema $schema): void
  16.     {
  17.         // this up() migration is auto-generated, please modify it to your needs
  18.         $this->addSql('CREATE TABLE author (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
  19.         $this->addSql('CREATE TABLE author_book (author_id INT NOT NULL, book_id INT NOT NULL, INDEX IDX_2F0A2BEEF675F31B (author_id), INDEX IDX_2F0A2BEE16A2B381 (book_id), PRIMARY KEY(author_id, book_id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
  20.         $this->addSql('CREATE TABLE book (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, synopsys TEXT DEFAULT NULL, date_added DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', image VARCHAR(255) DEFAULT NULL, updated_at DATETIME DEFAULT NULL, release_date DATE NOT NULL, isbn VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
  21.         $this->addSql('CREATE TABLE copy (id INT AUTO_INCREMENT NOT NULL, book_id INT NOT NULL, loan_id INT DEFAULT NULL, qr_code VARCHAR(255) DEFAULT NULL, INDEX IDX_4DBABB8216A2B381 (book_id), UNIQUE INDEX UNIQ_4DBABB82CE73868F (loan_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
  22.         $this->addSql('CREATE TABLE device (id INT AUTO_INCREMENT NOT NULL, expo_push_token VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_92FB68EC61E8814 (expo_push_token), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
  23.         $this->addSql('CREATE TABLE device_user (device_id INT NOT NULL, user_id INT NOT NULL, INDEX IDX_4AA037394A4C7D4 (device_id), INDEX IDX_4AA0373A76ED395 (user_id), PRIMARY KEY(device_id, user_id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
  24.         $this->addSql('CREATE TABLE favorite (book_id INT NOT NULL, user_id INT NOT NULL, INDEX IDX_68C58ED916A2B381 (book_id), INDEX IDX_68C58ED9A76ED395 (user_id), PRIMARY KEY(book_id, user_id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
  25.         $this->addSql('CREATE TABLE genre (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, UNIQUE INDEX UNIQ_835033F85E237E06 (name), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
  26.         $this->addSql('CREATE TABLE genre_book (genre_id INT NOT NULL, book_id INT NOT NULL, INDEX IDX_70087AC14296D31F (genre_id), INDEX IDX_70087AC116A2B381 (book_id), PRIMARY KEY(genre_id, book_id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
  27.         $this->addSql('CREATE TABLE history (id INT AUTO_INCREMENT NOT NULL, book_id INT NOT NULL, user_id INT DEFAULT NULL, history_type_id INT NOT NULL, date DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_27BA704B16A2B381 (book_id), INDEX IDX_27BA704BA76ED395 (user_id), INDEX IDX_27BA704BE12BA079 (history_type_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
  28.         $this->addSql('CREATE TABLE history_type (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, UNIQUE INDEX UNIQ_87EB27555E237E06 (name), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
  29.         $this->addSql('CREATE TABLE loan (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, copy_id INT NOT NULL, issued_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_C5D30D03A76ED395 (user_id), UNIQUE INDEX UNIQ_C5D30D03A8752772 (copy_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
  30.         $this->addSql('CREATE TABLE refresh_tokens (id INT AUTO_INCREMENT NOT NULL, refresh_token VARCHAR(128) NOT NULL, username VARCHAR(255) NOT NULL, valid DATETIME NOT NULL, UNIQUE INDEX UNIQ_9BACE7E1C74F2195 (refresh_token), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
  31.         $this->addSql('CREATE TABLE review (book_id INT NOT NULL, user_id INT NOT NULL, rating SMALLINT NOT NULL, review LONGTEXT NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', updated_at DATETIME DEFAULT NULL, deleted_at DATETIME DEFAULT NULL, INDEX IDX_794381C616A2B381 (book_id), INDEX IDX_794381C6A76ED395 (user_id), PRIMARY KEY(book_id, user_id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
  32.         $this->addSql('CREATE TABLE user (id INT AUTO_INCREMENT NOT NULL, email VARCHAR(180) NOT NULL, roles LONGTEXT NOT NULL COMMENT \'(DC2Type:json)\', password VARCHAR(255) NOT NULL, username VARCHAR(255) DEFAULT NULL, firstname VARCHAR(255) DEFAULT NULL, lastname VARCHAR(255) DEFAULT NULL, birth_date DATE DEFAULT NULL, updated_at DATETIME DEFAULT NULL, photo VARCHAR(255) DEFAULT NULL, password_reset_token VARCHAR(255) DEFAULT NULL, password_reset_expires DATETIME DEFAULT NULL, password_reset_code VARCHAR(8) DEFAULT NULL, deleted_at DATETIME DEFAULT NULL, UNIQUE INDEX UNIQ_8D93D649E7927C74 (email), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
  33.         $this->addSql('ALTER TABLE author_book ADD CONSTRAINT FK_2F0A2BEEF675F31B FOREIGN KEY (author_id) REFERENCES author (id) ON DELETE CASCADE');
  34.         $this->addSql('ALTER TABLE author_book ADD CONSTRAINT FK_2F0A2BEE16A2B381 FOREIGN KEY (book_id) REFERENCES book (id) ON DELETE CASCADE');
  35.         $this->addSql('ALTER TABLE copy ADD CONSTRAINT FK_4DBABB8216A2B381 FOREIGN KEY (book_id) REFERENCES book (id)');
  36.         $this->addSql('ALTER TABLE copy ADD CONSTRAINT FK_4DBABB82CE73868F FOREIGN KEY (loan_id) REFERENCES loan (id) ON DELETE SET NULL');
  37.         $this->addSql('ALTER TABLE device_user ADD CONSTRAINT FK_4AA037394A4C7D4 FOREIGN KEY (device_id) REFERENCES device (id) ON DELETE CASCADE');
  38.         $this->addSql('ALTER TABLE device_user ADD CONSTRAINT FK_4AA0373A76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE');
  39.         $this->addSql('ALTER TABLE favorite ADD CONSTRAINT FK_68C58ED916A2B381 FOREIGN KEY (book_id) REFERENCES book (id)');
  40.         $this->addSql('ALTER TABLE favorite ADD CONSTRAINT FK_68C58ED9A76ED395 FOREIGN KEY (user_id) REFERENCES user (id)');
  41.         $this->addSql('ALTER TABLE genre_book ADD CONSTRAINT FK_70087AC14296D31F FOREIGN KEY (genre_id) REFERENCES genre (id) ON DELETE CASCADE');
  42.         $this->addSql('ALTER TABLE genre_book ADD CONSTRAINT FK_70087AC116A2B381 FOREIGN KEY (book_id) REFERENCES book (id) ON DELETE CASCADE');
  43.         $this->addSql('ALTER TABLE history ADD CONSTRAINT FK_27BA704B16A2B381 FOREIGN KEY (book_id) REFERENCES book (id)');
  44.         $this->addSql('ALTER TABLE history ADD CONSTRAINT FK_27BA704BA76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE SET NULL');
  45.         $this->addSql('ALTER TABLE history ADD CONSTRAINT FK_27BA704BE12BA079 FOREIGN KEY (history_type_id) REFERENCES history_type (id)');
  46.         $this->addSql('ALTER TABLE loan ADD CONSTRAINT FK_C5D30D03A76ED395 FOREIGN KEY (user_id) REFERENCES user (id)');
  47.         $this->addSql('ALTER TABLE loan ADD CONSTRAINT FK_C5D30D03A8752772 FOREIGN KEY (copy_id) REFERENCES copy (id) ON DELETE RESTRICT');
  48.         $this->addSql('ALTER TABLE review ADD CONSTRAINT FK_794381C616A2B381 FOREIGN KEY (book_id) REFERENCES book (id)');
  49.         $this->addSql('ALTER TABLE review ADD CONSTRAINT FK_794381C6A76ED395 FOREIGN KEY (user_id) REFERENCES user (id)');
  50.     }
  51.     public function down(Schema $schema): void
  52.     {
  53.         // this down() migration is auto-generated, please modify it to your needs
  54.         $this->addSql('ALTER TABLE author_book DROP FOREIGN KEY FK_2F0A2BEEF675F31B');
  55.         $this->addSql('ALTER TABLE author_book DROP FOREIGN KEY FK_2F0A2BEE16A2B381');
  56.         $this->addSql('ALTER TABLE copy DROP FOREIGN KEY FK_4DBABB8216A2B381');
  57.         $this->addSql('ALTER TABLE favorite DROP FOREIGN KEY FK_68C58ED916A2B381');
  58.         $this->addSql('ALTER TABLE genre_book DROP FOREIGN KEY FK_70087AC116A2B381');
  59.         $this->addSql('ALTER TABLE history DROP FOREIGN KEY FK_27BA704B16A2B381');
  60.         $this->addSql('ALTER TABLE review DROP FOREIGN KEY FK_794381C616A2B381');
  61.         $this->addSql('ALTER TABLE loan DROP FOREIGN KEY FK_C5D30D03A8752772');
  62.         $this->addSql('ALTER TABLE device_user DROP FOREIGN KEY FK_4AA037394A4C7D4');
  63.         $this->addSql('ALTER TABLE genre_book DROP FOREIGN KEY FK_70087AC14296D31F');
  64.         $this->addSql('ALTER TABLE history DROP FOREIGN KEY FK_27BA704BE12BA079');
  65.         $this->addSql('ALTER TABLE copy DROP FOREIGN KEY FK_4DBABB82CE73868F');
  66.         $this->addSql('ALTER TABLE device_user DROP FOREIGN KEY FK_4AA0373A76ED395');
  67.         $this->addSql('ALTER TABLE favorite DROP FOREIGN KEY FK_68C58ED9A76ED395');
  68.         $this->addSql('ALTER TABLE history DROP FOREIGN KEY FK_27BA704BA76ED395');
  69.         $this->addSql('ALTER TABLE loan DROP FOREIGN KEY FK_C5D30D03A76ED395');
  70.         $this->addSql('ALTER TABLE review DROP FOREIGN KEY FK_794381C6A76ED395');
  71.         $this->addSql('DROP TABLE author');
  72.         $this->addSql('DROP TABLE author_book');
  73.         $this->addSql('DROP TABLE book');
  74.         $this->addSql('DROP TABLE copy');
  75.         $this->addSql('DROP TABLE device');
  76.         $this->addSql('DROP TABLE device_user');
  77.         $this->addSql('DROP TABLE favorite');
  78.         $this->addSql('DROP TABLE genre');
  79.         $this->addSql('DROP TABLE genre_book');
  80.         $this->addSql('DROP TABLE history');
  81.         $this->addSql('DROP TABLE history_type');
  82.         $this->addSql('DROP TABLE loan');
  83.         $this->addSql('DROP TABLE refresh_tokens');
  84.         $this->addSql('DROP TABLE review');
  85.         $this->addSql('DROP TABLE user');
  86.     }
  87. }