dudi/migrations/Version20260429141525.php

50 lines
4.6 KiB
PHP
Raw Normal View History

<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20260429141525 extends AbstractMigration
{
public function getDescription(): string
{
return 'Clean up legacy tables, align column types, add rememberme_token';
}
public function up(Schema $schema): void
{
$this->addSql('CREATE TABLE IF NOT EXISTS rememberme_token (series VARCHAR(88) NOT NULL, value VARCHAR(88) NOT NULL, lastUsed DATETIME NOT NULL, class VARCHAR(100) DEFAULT \'\' NOT NULL, username VARCHAR(200) NOT NULL, PRIMARY KEY (series)) DEFAULT CHARACTER SET utf8mb4');
$this->addSql('DROP TABLE IF EXISTS schema_migrations');
$this->addSql('DROP TABLE IF EXISTS users_confirmations');
$this->addSql('DROP TABLE IF EXISTS users_remembered');
$this->addSql('DROP TABLE IF EXISTS users_throttling');
$this->addSql('ALTER TABLE goals CHANGE unit unit VARCHAR(50) NOT NULL, CHANGE daily daily DOUBLE PRECISION NOT NULL, CHANGE days days INT NOT NULL, CHANGE sets sets JSON NOT NULL, CHANGE created_at created_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL');
$this->addSql('ALTER TABLE invites CHANGE note note VARCHAR(255) DEFAULT NULL, CHANGE created_at created_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL');
$this->addSql('ALTER TABLE invites RENAME INDEX token TO UNIQ_37E6A6C5F37A13B');
$this->addSql('ALTER TABLE users CHANGE password password VARCHAR(255) NOT NULL');
$this->addSql('ALTER TABLE users RENAME INDEX email TO UNIQ_1483A5E9E7927C74');
$this->addSql('ALTER TABLE users_resets RENAME INDEX selector TO UNIQ_1CD4E1099692E25D');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE TABLE schema_migrations (version VARCHAR(64) CHARACTER SET utf8mb4 NOT NULL COLLATE `utf8mb4_unicode_ci`, applied_at DATETIME DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (version)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB COMMENT = \'\' ');
$this->addSql('CREATE TABLE users_confirmations (id INT UNSIGNED AUTO_INCREMENT NOT NULL, email VARCHAR(249) CHARACTER SET utf8mb4 NOT NULL COLLATE `utf8mb4_unicode_ci`, selector VARCHAR(16) CHARACTER SET latin1 NOT NULL COLLATE `latin1_general_cs`, token VARCHAR(255) CHARACTER SET latin1 NOT NULL COLLATE `latin1_general_cs`, expires INT UNSIGNED NOT NULL, UNIQUE INDEX selector (selector), INDEX email_expires (email, expires), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = MyISAM COMMENT = \'\' ');
$this->addSql('CREATE TABLE users_remembered (id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, user INT UNSIGNED NOT NULL, selector VARCHAR(24) CHARACTER SET latin1 NOT NULL COLLATE `latin1_general_cs`, token VARCHAR(255) CHARACTER SET latin1 NOT NULL COLLATE `latin1_general_cs`, expires INT UNSIGNED NOT NULL, UNIQUE INDEX selector (selector), INDEX user (user), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = MyISAM COMMENT = \'\' ');
$this->addSql('CREATE TABLE users_throttling (id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, action_type ENUM(\'login\', \'register\', \'confirm_email\') CHARACTER SET utf8mb4 NOT NULL COLLATE `utf8mb4_unicode_ci`, selector VARCHAR(44) CHARACTER SET latin1 DEFAULT NULL COLLATE `latin1_general_cs`, time_bucket INT UNSIGNED NOT NULL, attempts INT UNSIGNED DEFAULT 1 NOT NULL, UNIQUE INDEX action_type_selector_time_bucket (action_type, selector, time_bucket), PRIMARY KEY (id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = MyISAM COMMENT = \'\' ');
$this->addSql('ALTER TABLE goals CHANGE unit unit VARCHAR(50) DEFAULT \'Stück\' NOT NULL, CHANGE daily daily FLOAT DEFAULT \'1\' NOT NULL, CHANGE days days INT DEFAULT 30 NOT NULL, CHANGE sets sets JSON DEFAULT \'[]\' NOT NULL, CHANGE created_at created_at DATETIME DEFAULT CURRENT_TIMESTAMP');
$this->addSql('ALTER TABLE invites CHANGE note note VARCHAR(100) DEFAULT NULL, CHANGE created_at created_at DATETIME DEFAULT CURRENT_TIMESTAMP');
$this->addSql('ALTER TABLE invites RENAME INDEX uniq_37e6a6c5f37a13b TO token');
$this->addSql('ALTER TABLE users CHANGE password password VARCHAR(255) CHARACTER SET latin1 NOT NULL COLLATE `latin1_general_cs`');
$this->addSql('ALTER TABLE users RENAME INDEX uniq_1483a5e9e7927c74 TO email');
$this->addSql('ALTER TABLE users_resets RENAME INDEX uniq_1cd4e1099692e25d TO selector');
}
}