Skip to content

Commit

Permalink
Merge pull request #1980 from justcarakas/change-meta-table-to-innodb
Browse files Browse the repository at this point in the history
Change meta table to InnoDB
  • Loading branch information
carakas committed Feb 20, 2017
2 parents c9f8302 + 7d3db6c commit c7f4ab3
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 22 deletions.
24 changes: 24 additions & 0 deletions UPGRADE_5.0.md
Expand Up @@ -171,6 +171,30 @@ PATH_WWW is removed. From now on you need to get the path to the web directory b
Twig has trouble with traversing directories, so in that or similar cases you can wrap it with the `realpath` function.

$this->getContainer()->getParameter('site.path_www')

## meta table is now using InnoDB

In order to use constraints in mysql 5.5 we need to use InnoDB
Execute the following queries to migrate

RENAME TABLE meta TO old_meta;
CREATE TABLE `meta` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`keywords` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`keywords_overwrite` enum('Y','N') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'N' COMMENT '(DC2Type:enum_bool)',
`description` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`description_overwrite` enum('Y','N') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'N' COMMENT '(DC2Type:enum_bool)',
`title` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`title_overwrite` enum('Y','N') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'N' COMMENT '(DC2Type:enum_bool)',
`url` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`url_overwrite` enum('Y','N') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'N' COMMENT '(DC2Type:enum_bool)',
`custom` longtext COLLATE utf8mb4_unicode_ci,
`data` longtext COLLATE utf8mb4_unicode_ci,
PRIMARY KEY (`id`),
KEY `idx_url` (`url`(191))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO meta SELECT * FROM old_meta;
DROP TABLE old_meta;

## PSR-4

Expand Down
25 changes: 12 additions & 13 deletions src/Backend/Core/Installer/Data/install.sql
@@ -1,19 +1,18 @@
CREATE TABLE IF NOT EXISTS `meta` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`keywords` varchar(255) NOT NULL,
`keywords_overwrite` enum('N','Y') NOT NULL DEFAULT 'N',
`description` varchar(255) NOT NULL,
`description_overwrite` enum('N','Y') NOT NULL DEFAULT 'N',
`title` varchar(255) NOT NULL,
`title_overwrite` enum('N','Y') NOT NULL DEFAULT 'N',
`url` varchar(255) NOT NULL,
`url_overwrite` enum('N','Y') NOT NULL DEFAULT 'N',
`custom` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT 'used for custom meta-information',
`data` text COMMENT 'used for extra meta-information',
`keywords` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`keywords_overwrite` enum('Y','N') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'N' COMMENT '(DC2Type:enum_bool)',
`description` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`description_overwrite` enum('Y','N') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'N' COMMENT '(DC2Type:enum_bool)',
`title` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`title_overwrite` enum('Y','N') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'N' COMMENT '(DC2Type:enum_bool)',
`url` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`url_overwrite` enum('Y','N') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'N' COMMENT '(DC2Type:enum_bool)',
`custom` longtext COLLATE utf8mb4_unicode_ci,
`data` longtext COLLATE utf8mb4_unicode_ci,
PRIMARY KEY (`id`),
KEY `idx_url` (`url`(249))
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Meta-information' AUTO_INCREMENT=1 ;

KEY `idx_url` (`url`(191))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `modules` (
`name` varchar(255) CHARACTER SET utf8 NOT NULL COMMENT 'unique module name',
Expand Down
2 changes: 1 addition & 1 deletion src/Common/Doctrine/Entity/Meta.php
Expand Up @@ -8,7 +8,7 @@
use Doctrine\ORM\Mapping as ORM;

/**
* @ORM\Table(name="meta")
* @ORM\Table(name="meta", indexes={@ORM\Index(name="idx_url", columns={"url"})})
* @ORM\Entity(repositoryClass="Common\Doctrine\Repository\MetaRepository")
* @ORM\HasLifecycleCallbacks()
*/
Expand Down
16 changes: 8 additions & 8 deletions tests/data/test_db.sql
Expand Up @@ -1833,18 +1833,18 @@ DROP TABLE IF EXISTS `meta`;
CREATE TABLE `meta` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`keywords` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`keywords_overwrite` enum('N','Y') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'N',
`keywords_overwrite` enum('Y','N') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'N' COMMENT '(DC2Type:enum_bool)',
`description` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`description_overwrite` enum('N','Y') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'N',
`description_overwrite` enum('Y','N') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'N' COMMENT '(DC2Type:enum_bool)',
`title` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`title_overwrite` enum('N','Y') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'N',
`title_overwrite` enum('Y','N') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'N' COMMENT '(DC2Type:enum_bool)',
`url` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`url_overwrite` enum('N','Y') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'N',
`custom` text CHARACTER SET utf8 COMMENT 'used for custom meta-information',
`data` text COLLATE utf8mb4_unicode_ci COMMENT 'used for extra meta-information',
`url_overwrite` enum('Y','N') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'N' COMMENT '(DC2Type:enum_bool)',
`custom` longtext COLLATE utf8mb4_unicode_ci,
`data` longtext COLLATE utf8mb4_unicode_ci,
PRIMARY KEY (`id`),
KEY `idx_url` (`url`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Meta-information';
KEY `idx_url` (`url`(191))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

LOCK TABLES `meta` WRITE;
/*!40000 ALTER TABLE `meta` DISABLE KEYS */;
Expand Down

0 comments on commit c7f4ab3

Please sign in to comment.