Skip to content

Instantly share code, notes, and snippets.

@sbalukoff
Created February 25, 2016 22:23
Show Gist options
  • Save sbalukoff/4682465d0cfa21e62f59 to your computer and use it in GitHub Desktop.
Save sbalukoff/4682465d0cfa21e62f59 to your computer and use it in GitHub Desktop.
MySQL alembic migration consistency test for https://review.openstack.org/#/c/283802/
MySQL alembic migration consistency test for https://review.openstack.org/#/c/283802/
=======================================================================
BEFORE shared-pools migration:
stack@empty:/opt/stack/neutron-lbaas$ git log|head -8
commit 995e2664239dd5897b517301313585a9b687ed0e
Author: OpenStack Proposal Bot <openstack-infra@lists.openstack.org>
Date: Sat Feb 20 21:57:40 2016 +0000
Updated from global requirements
Change-Id: If7b13817fa6289039a3a05b460f5b2c78d386961
mysql> show create table neutron.lbaas_listeners \G
*************************** 1. row ***************************
Table: lbaas_listeners
Create Table: CREATE TABLE `lbaas_listeners` (
`tenant_id` varchar(255) DEFAULT NULL,
`id` varchar(36) NOT NULL,
`name` varchar(255) DEFAULT NULL,
`description` varchar(255) DEFAULT NULL,
`protocol` enum('HTTP','HTTPS','TCP','TERMINATED_HTTPS') NOT NULL,
`protocol_port` int(11) NOT NULL,
`connection_limit` int(11) DEFAULT NULL,
`loadbalancer_id` varchar(36) DEFAULT NULL,
`default_pool_id` varchar(36) DEFAULT NULL,
`admin_state_up` tinyint(1) NOT NULL,
`provisioning_status` varchar(16) NOT NULL,
`operating_status` varchar(16) NOT NULL,
`default_tls_container_id` varchar(128) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `default_pool_id` (`default_pool_id`),
UNIQUE KEY `uniq_loadbalancer_listener_port` (`loadbalancer_id`,`protocol_port`),
KEY `ix_lbaas_listeners_tenant_id` (`tenant_id`),
CONSTRAINT `lbaas_listeners_ibfk_1` FOREIGN KEY (`loadbalancer_id`) REFERENCES `lbaas_loadbalancers` (`id`),
CONSTRAINT `lbaas_listeners_ibfk_2` FOREIGN KEY (`default_pool_id`) REFERENCES `lbaas_pools` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
=======================================================================
AFTER shared-pools migration (ie. PostgreSQL migration broken):
mysql> show create table neutron.lbaas_listeners \G
*************************** 1. row ***************************
Table: lbaas_listeners
Create Table: CREATE TABLE `lbaas_listeners` (
`tenant_id` varchar(255) DEFAULT NULL,
`id` varchar(36) NOT NULL,
`name` varchar(255) DEFAULT NULL,
`description` varchar(255) DEFAULT NULL,
`protocol` enum('HTTP','HTTPS','TCP','TERMINATED_HTTPS') NOT NULL,
`protocol_port` int(11) NOT NULL,
`connection_limit` int(11) DEFAULT NULL,
`loadbalancer_id` varchar(36) DEFAULT NULL,
`default_pool_id` varchar(36) DEFAULT NULL,
`admin_state_up` tinyint(1) NOT NULL,
`provisioning_status` varchar(16) NOT NULL,
`operating_status` varchar(16) NOT NULL,
`default_tls_container_id` varchar(128) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_loadbalancer_listener_port` (`loadbalancer_id`,`protocol_port`),
KEY `ix_lbaas_listeners_tenant_id` (`tenant_id`),
KEY `lbaas_listeners_ibfk_2` (`default_pool_id`),
CONSTRAINT `lbaas_listeners_ibfk_1` FOREIGN KEY (`loadbalancer_id`) REFERENCES `lbaas_loadbalancers` (`id`),
CONSTRAINT `lbaas_listeners_ibfk_2` FOREIGN KEY (`default_pool_id`) REFERENCES `lbaas_pools` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
=======================================================================
AFTER shared-pools migration with PostgreSQL alembic-migration fix:
mysql> show create table neutron.lbaas_listeners \G
*************************** 1. row ***************************
Table: lbaas_listeners
Create Table: CREATE TABLE `lbaas_listeners` (
`tenant_id` varchar(255) DEFAULT NULL,
`id` varchar(36) NOT NULL,
`name` varchar(255) DEFAULT NULL,
`description` varchar(255) DEFAULT NULL,
`protocol` enum('HTTP','HTTPS','TCP','TERMINATED_HTTPS') NOT NULL,
`protocol_port` int(11) NOT NULL,
`connection_limit` int(11) DEFAULT NULL,
`loadbalancer_id` varchar(36) DEFAULT NULL,
`default_pool_id` varchar(36) DEFAULT NULL,
`admin_state_up` tinyint(1) NOT NULL,
`provisioning_status` varchar(16) NOT NULL,
`operating_status` varchar(16) NOT NULL,
`default_tls_container_id` varchar(128) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_loadbalancer_listener_port` (`loadbalancer_id`,`protocol_port`),
KEY `ix_lbaas_listeners_tenant_id` (`tenant_id`),
KEY `lbaas_listeners_ibfk_2` (`default_pool_id`),
CONSTRAINT `lbaas_listeners_ibfk_1` FOREIGN KEY (`loadbalancer_id`) REFERENCES `lbaas_loadbalancers` (`id`),
CONSTRAINT `lbaas_listeners_ibfk_2` FOREIGN KEY (`default_pool_id`) REFERENCES `lbaas_pools` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.01 sec)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment