diff --git a/app/DoctrineMigrations/Version20150302213116.php b/app/DoctrineMigrations/Version20150302213116.php new file mode 100644 index 0000000..741d8ba --- /dev/null +++ b/app/DoctrineMigrations/Version20150302213116.php @@ -0,0 +1,85 @@ +abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); + + // Tables structure + $this->write('Upgrading column names and setting...'); + + $this->addSql( + 'ALTER TABLE lang + CHANGE id id INT AUTO_INCREMENT NOT NULL, + CHANGE name name VARCHAR(100) NOT NULL, + CHANGE file code VARCHAR(24) NOT NULL, + CHANGE enabled enabled TINYINT(1) NOT NULL' + ); + $this->addSql('CREATE INDEX idx_code ON lang (code)'); + + $this->addSql( + 'ALTER TABLE paste + CHANGE id id INT AUTO_INCREMENT NOT NULL, + CHANGE code text LONGTEXT NOT NULL, + CHANGE code_comment description LONGTEXT DEFAULT NULL, + CHANGE lang language INT NOT NULL, + CHANGE filename file_name VARCHAR(128) DEFAULT NULL, + CHANGE name author VARCHAR(48) DEFAULT NULL, + CHANGE date_pub date_publish DATETIME NOT NULL, + CHANGE date_exp date_expire DATETIME DEFAULT NULL, + CHANGE ip ip VARCHAR(48) NOT NULL, + CHANGE secret secret VARCHAR(16) DEFAULT NULL' + ); + + // Renaming tables + $this->write('Renaming tables to the full name format...'); + $this->addSql('RENAME TABLE lang TO languages'); + $this->addSql('RENAME TABLE paste TO copypastes'); + } + + public function down(Schema $schema) + { + $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); + + // Tables structure + $this->write('Downgrading column names and setting...'); + + $this->addSql('DROP INDEX idx_code ON languages'); + $this->addSql( + 'ALTER TABLE lang + CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT \'ID\', + CHANGE name name VARCHAR(100) NOT NULL, + CHANGE code file VARCHAR(24) NOT NULL, + CHANGE enabled enabled TINYINT(1) NOT NULL COMMENT \'Is language usable\'' + ); + + $this->addSql( + 'ALTER TABLE paste + CHANGE id id INT AUTO_INCREMENT NOT NULL, + CHANGE text code LONGTEXT NOT NULL COMMENT \'Code\', + CHANGE description code_comment LONGTEXT NOT NULL COMMENT \'Comments for code\', + CHANGE language lang INT UNSIGNED NOT NULL COMMENT \'Language ID\', + CHANGE file_name filename VARCHAR(128) NOT NULL COMMENT \'Filename\', + CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT \'ID\', + CHANGE author name VARCHAR(48) NOT NULL COMMENT \'Author of quote name\', + CHANGE date_publish date_pub DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT \'Publish date\', + CHANGE date_expire date_exp DATETIME DEFAULT \'0000-00-00 00:00:00\' NOT NULL COMMENT \'Expire date\', + CHANGE ip ip varchar(48) NOT NULL COMMENT \'IP\', + CHANGE secret secret VARCHAR(16) NOT NULL COMMENT \'Paste secret\'' + ); + + // Renaming tables + $this->write('Renaming tables to the old short format...'); + $this->addSql('RENAME TABLE languages TO lang'); + $this->addSql('RENAME TABLE paste TO copypastes'); + } +} diff --git a/src/Skobkin/Bundle/CopyPasteBundle/Entity/Paste.php b/src/Skobkin/Bundle/CopyPasteBundle/Entity/Copypaste.php similarity index 88% rename from src/Skobkin/Bundle/CopyPasteBundle/Entity/Paste.php rename to src/Skobkin/Bundle/CopyPasteBundle/Entity/Copypaste.php index d8d5035..97496d2 100644 --- a/src/Skobkin/Bundle/CopyPasteBundle/Entity/Paste.php +++ b/src/Skobkin/Bundle/CopyPasteBundle/Entity/Copypaste.php @@ -5,17 +5,17 @@ namespace Skobkin\Bundle\CopyPasteBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** - * Paste + * Copypaste * * @ORM\Table( - * name="paste", + * name="copypastes", * indexes={ - * @ORM\Index(name="idx_expire", columns={"date_exp"}) + * @ORM\Index(name="idx_expire", columns={"date_expire"}) * } * ) * @ORM\Entity */ -class Paste +class Copypaste { /** * @var integer @@ -29,49 +29,49 @@ class Paste /** * @var string * - * @ORM\Column(name="code", type="text", nullable=false) + * @ORM\Column(name="text", type="text", nullable=false) */ private $text; /** * @var string * - * @ORM\Column(name="code_comment", type="text", nullable=true) + * @ORM\Column(name="description", type="text", nullable=true) */ private $description; /** * @var integer * - * @ORM\Column(name="lang", type="integer", nullable=false) + * @ORM\Column(name="language", type="integer", nullable=false) */ private $language; /** * @var string * - * @ORM\Column(name="filename", type="string", length=128, nullable=true) + * @ORM\Column(name="file_name", type="string", length=128, nullable=true) */ private $fileName; /** * @var string * - * @ORM\Column(name="name", type="string", length=48, nullable=true) + * @ORM\Column(name="author", type="string", length=48, nullable=true) */ private $author; /** * @var \DateTime * - * @ORM\Column(name="date_pub", type="datetime", nullable=false) + * @ORM\Column(name="date_publish", type="datetime", nullable=false) */ private $datePublished; /** * @var \DateTime * - * @ORM\Column(name="date_exp", type="datetime", nullable=true) + * @ORM\Column(name="date_expire", type="datetime", nullable=true) */ private $dateExpire; diff --git a/src/Skobkin/Bundle/CopyPasteBundle/Entity/Lang.php b/src/Skobkin/Bundle/CopyPasteBundle/Entity/Language.php similarity index 92% rename from src/Skobkin/Bundle/CopyPasteBundle/Entity/Lang.php rename to src/Skobkin/Bundle/CopyPasteBundle/Entity/Language.php index 38af62b..8ef60a1 100644 --- a/src/Skobkin/Bundle/CopyPasteBundle/Entity/Lang.php +++ b/src/Skobkin/Bundle/CopyPasteBundle/Entity/Language.php @@ -5,18 +5,18 @@ namespace Skobkin\Bundle\CopyPasteBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** - * Lang + * Language * * @ORM\Table( - * name="lang", + * name="languages", * indexes={ * @ORM\Index(name="idx_enabled", columns={"enabled"}), - * @ORM\Index(name="idx_file", columns={"file"}) + * @ORM\Index(name="idx_code", columns={"code"}) * } * ) * @ORM\Entity */ -class Lang +class Language { /** * @var integer @@ -37,7 +37,7 @@ class Lang /** * @var string * - * @ORM\Column(name="file", type="string", length=24, nullable=false) + * @ORM\Column(name="code", type="string", length=24, nullable=false) */ private $code;