[ 
https://issues.apache.org/jira/browse/CLOUDSTACK-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16366772#comment-16366772
 ] 

ASF GitHub Bot commented on CLOUDSTACK-10278:
---------------------------------------------

ernjvr commented on a change in pull request #2449: WIP CLOUDSTACK-10278 
idempotent column addition
URL: https://github.com/apache/cloudstack/pull/2449#discussion_r168703831
 
 

 ##########
 File path: engine/schema/resources/META-INF/db/schema-41000to41100.sql
 ##########
 @@ -19,8 +19,54 @@
 -- Schema upgrade from 4.10.0.0 to 4.11.0.0
 --;
 
+--;
+-- Stored procedure to do idempotent column add;
+--;
+DROP PROCEDURE IF EXISTS `cloud`.`IDEMPOTENT_ADD_COLUMN`;
 
 Review comment:
   @rafaelweingartner yes, we will have to make sure that everyone creating new 
scripts to add a new column, drop a foreign key or create/drop indexes, call 
these stored procedures, to ensure their SQL statements are idempotent. 
   @rhtyd These 'drop procedure' statements are placed before each 'create 
procedure' statement only. So when the upgrade script runs, the procedures are 
created but not dropped after the script completes. Therefore the stored 
procedures will still exist in the database. So they will be available 
(reusable) to future versions of schema-nn-nn.sql migration scripts. I think 
these 'drop/create procedure' statements also need to be added to the 
setup/db/create-schema.sql script to make them available to new cs installs, 
including the simulator.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Adding a SQL table column is not Idempotent
> -------------------------------------------
>
>                 Key: CLOUDSTACK-10278
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-10278
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the 
> default.) 
>          Components: Install and Setup
>    Affects Versions: 4.10.0.0, 4.11.0.0
>            Reporter: Ernie Janse van Rensburg
>            Assignee: Ernie Janse van Rensburg
>            Priority: Major
>   Original Estimate: 4h
>  Remaining Estimate: 4h
>
> The SQL code to add a new column to a table in the 
> META-INF/db/schema-41000to41100.sql script is not written in an idempotent 
> way. When the upgrade is re-run, the code above causes a SQL error as 
> reported on the user mailing list: 
> ERROR [c.c.u.d.ScriptRunner] (main:null) (logid:)
> Error executing: ALTER TABLE cloud.network_offerings ADD COLUMN for_vpc
> INT(1) NOT NULL DEFAULT 0
> This is a more generic problem for every version due to to the fact that it 
> is not idempotent
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to