<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.appian.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>What is the best practice to deploy update in a cloud database table</title><link>https://community.appian.com/discussions/f/best-practices/34801/what-is-the-best-practice-to-deploy-update-in-a-cloud-database-table</link><description>Hello all, currently I have 3 org, dev, QA, and prod. I have made new inserts in a cloud data base table in the dev environment. Given that the same table in the QA org have the same 14 entries as the table in dev org, what would be the best practice</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: What is the best practice to deploy update in a cloud database table</title><link>https://community.appian.com/thread/134311?ContentTypeID=1</link><pubDate>Fri, 26 Apr 2024 06:00:43 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:e801d8f0-58aa-49fc-ad9b-b43e50d24ca7</guid><dc:creator>Srinivas Thota </dc:creator><description>&lt;p&gt;Hi edmondx0001,&lt;br /&gt;&lt;br /&gt;When you deal with database scripts either in manual or automation scripts, I recommend using idempotent&amp;nbsp;SQL&amp;nbsp;Scripts as per Database best practices for deployment, which can be call as rerunnable script. These scripts can be used for creating table, alter, create view and other scripts use of which of information_schema. This will use be useful when you use third party automation pipelines. As per your problem statement i recommend you use replace keyword instead of insert.&lt;br /&gt;below is example of idempotent sql script.&lt;/p&gt;
&lt;div id="urvanov-syntax-highlighter-662b41ca4ff45840473005-1" class="crayon-line"&gt;&lt;span class="crayon-k"&gt;IF&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-sy"&gt;(&lt;/span&gt;&lt;/div&gt;
&lt;div id="urvanov-syntax-highlighter-662b41ca4ff45840473005-2" class="crayon-line"&gt;&lt;span class="crayon-h"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class="crayon-sy"&gt;(&lt;/span&gt;&lt;/div&gt;
&lt;div id="urvanov-syntax-highlighter-662b41ca4ff45840473005-3" class="crayon-line"&gt;&lt;span class="crayon-h"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class="crayon-k"&gt;SELECT&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-k"&gt;CASE&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-c"&gt;--return 0 if not nullable 1 if nullable&lt;/span&gt;&lt;/div&gt;
&lt;div id="urvanov-syntax-highlighter-662b41ca4ff45840473005-4" class="crayon-line"&gt;&lt;span class="crayon-h"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="crayon-sy"&gt;(&lt;/span&gt;&lt;span class="crayon-c"&gt;--return null if it doesn&amp;#39;t exist&lt;/span&gt;&lt;/div&gt;
&lt;div id="urvanov-syntax-highlighter-662b41ca4ff45840473005-5" class="crayon-line"&gt;&lt;span class="crayon-h"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="crayon-k"&gt;SELECT&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-i"&gt;IS_NULLABLE&lt;/span&gt;&lt;/div&gt;
&lt;div id="urvanov-syntax-highlighter-662b41ca4ff45840473005-6" class="crayon-line"&gt;&lt;span class="crayon-h"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="crayon-k"&gt;FROM&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-i"&gt;INFORMATION_SCHEMA&lt;/span&gt;&lt;span class="crayon-sy"&gt;.&lt;/span&gt;&lt;span class="crayon-i"&gt;COLUMNS&lt;/span&gt;&lt;/div&gt;
&lt;div id="urvanov-syntax-highlighter-662b41ca4ff45840473005-7" class="crayon-line"&gt;&lt;span class="crayon-h"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="crayon-k"&gt;WHERE&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-i"&gt;TABLE_SCHEMA&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-o"&gt;=&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-s"&gt;&amp;#39;dbo&amp;#39;&lt;/span&gt;&lt;/div&gt;
&lt;div id="urvanov-syntax-highlighter-662b41ca4ff45840473005-8" class="crayon-line"&gt;&lt;span class="crayon-h"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="crayon-k "&gt;AND&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-i"&gt;TABLE_NAME&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-o"&gt;=&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-s"&gt;&amp;#39;prices&amp;#39;&lt;/span&gt;&lt;/div&gt;
&lt;div id="urvanov-syntax-highlighter-662b41ca4ff45840473005-9" class="crayon-line"&gt;&lt;span class="crayon-h"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="crayon-k "&gt;AND&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-i"&gt;COLUMN_NAME&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-o"&gt;=&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-s"&gt;&amp;#39;Edition_id&amp;#39;&lt;/span&gt;&lt;/div&gt;
&lt;div id="urvanov-syntax-highlighter-662b41ca4ff45840473005-10" class="crayon-line"&gt;&lt;span class="crayon-h"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="crayon-sy"&gt;)&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-k"&gt;WHEN&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-s"&gt;&amp;#39;NO&amp;#39;&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-k"&gt;THEN&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-cn"&gt;0&lt;/span&gt;&lt;/div&gt;
&lt;div id="urvanov-syntax-highlighter-662b41ca4ff45840473005-11" class="crayon-line"&gt;&lt;span class="crayon-h"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="crayon-k"&gt;WHEN&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-s"&gt;&amp;#39;YES&amp;#39;&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-k"&gt;THEN&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-cn"&gt;1&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-k"&gt;ELSE&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-o"&gt;-&lt;/span&gt;&lt;span class="crayon-cn"&gt;1&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-k"&gt;END&lt;/span&gt;&lt;/div&gt;
&lt;div id="urvanov-syntax-highlighter-662b41ca4ff45840473005-12" class="crayon-line"&gt;&lt;span class="crayon-h"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class="crayon-sy"&gt;)&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-o"&gt;=&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-cn"&gt;1&lt;/span&gt;&lt;/div&gt;
&lt;div id="urvanov-syntax-highlighter-662b41ca4ff45840473005-13" class="crayon-line"&gt;&lt;span class="crayon-h"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class="crayon-sy"&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div id="urvanov-syntax-highlighter-662b41ca4ff45840473005-14" class="crayon-line"&gt;&lt;span class="crayon-h"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="crayon-k"&gt;BEGIN&lt;/span&gt;&lt;/div&gt;
&lt;div id="urvanov-syntax-highlighter-662b41ca4ff45840473005-15" class="crayon-line"&gt;&lt;span class="crayon-h"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="crayon-k"&gt;IF&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-k "&gt;NOT&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-k "&gt;EXISTS&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-sy"&gt;(&lt;/span&gt;&lt;span class="crayon-k"&gt;SELECT&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-cn"&gt;1&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-k"&gt;FROM&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-i"&gt;prices&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-k"&gt;WHERE&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-i"&gt;Edition_id&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-k"&gt;IS&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-k "&gt;NULL&lt;/span&gt;&lt;span class="crayon-sy"&gt;)&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div id="urvanov-syntax-highlighter-662b41ca4ff45840473005-16" class="crayon-line"&gt;&lt;span class="crayon-h"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="crayon-k"&gt;ALTER&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-k"&gt;TABLE&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-i"&gt;dbo&lt;/span&gt;&lt;span class="crayon-sy"&gt;.&lt;/span&gt;&lt;span class="crayon-i"&gt;prices&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-k"&gt;ALTER&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-k"&gt;COLUMN&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-i"&gt;Edition_id&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-k"&gt;INT&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-k "&gt;NOT&lt;/span&gt;&lt;span class="crayon-h"&gt; &lt;/span&gt;&lt;span class="crayon-k "&gt;NULL&lt;/span&gt;&lt;span class="crayon-sy"&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div id="urvanov-syntax-highlighter-662b41ca4ff45840473005-17" class="crayon-line"&gt;&lt;span class="crayon-h"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="crayon-k"&gt;END&lt;/span&gt;&lt;span class="crayon-sy"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the best practice to deploy update in a cloud database table</title><link>https://community.appian.com/thread/134310?ContentTypeID=1</link><pubDate>Fri, 26 Apr 2024 05:24:47 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:dd50c402-c7d5-4d47-bf87-880e61dbaaab</guid><dc:creator>Karumuru Abhishek</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;a href="/members/edmondx0001"&gt;edmondx0001&lt;/a&gt;&amp;nbsp; I would always recommend having a backup of your data when you are running scripts in the database. When you prepare scripts for your target Env, try running them a couple of times in dev and make sure your that your script gives you the expected output.&amp;nbsp; Before deploying the scripts check the data in the target env take back up the data compare the data make necessary changes. Also, make sure if you are using any conditions they should not affect other data in your&amp;nbsp;table&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the best practice to deploy update in a cloud database table</title><link>https://community.appian.com/thread/134309?ContentTypeID=1</link><pubDate>Fri, 26 Apr 2024 05:11:26 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:4c24a2c6-e15b-44f3-8867-e754c6a88b31</guid><dc:creator>Konduru Chaitanya</dc:creator><description>&lt;p&gt;If you are confident about the scripts that you have run in the dev, You can upload the same scripts in the package that you will be deploying to higher environment. Else, try taking a back up or complete export of what is there in&amp;nbsp;the higher environment and then do the deployment for scripts. Also if its an insert statement with no primary keys, I would recommend updating the Scripts with the Primary keys and then proceeding with the deployment.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the best practice to deploy update in a cloud database table</title><link>https://community.appian.com/thread/134306?ContentTypeID=1</link><pubDate>Fri, 26 Apr 2024 03:58:39 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:afece2ec-c6fe-421a-94df-a38a216b4eb3</guid><dc:creator>SRINIVAS M</dc:creator><description>&lt;p&gt;&lt;span style="font-family:verdana, geneva;"&gt;Hi,&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li data-sider-select-id="783bc6ec-6323-4b0c-b09d-4167cc089e93"&gt;&lt;span style="font-family:verdana, geneva;"&gt;Create SQL scripts for your changes in the dev environment.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:verdana, geneva;"&gt;Back up the QA database before applying any changes.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:verdana, geneva;"&gt;Run the SQL scripts in the QA environment to replicate the dev changes.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:verdana, geneva;"&gt;Verify the updates in QA before considering deployment to production.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-family:verdana, geneva;"&gt;Creating SQL scripts of your database changes, backing up your QA database, running the scripts in QA, and verifying the updates before moving to production while using version control for script management is a best practice for deploying updates across environments.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What is the best practice to deploy update in a cloud database table</title><link>https://community.appian.com/thread/134302?ContentTypeID=1</link><pubDate>Fri, 26 Apr 2024 02:08:28 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:8a622ba0-163a-477d-8fd8-992b1676d43a</guid><dc:creator>Shubham Aware</dc:creator><description>&lt;p&gt;Hello&amp;nbsp;&lt;a href="/members/edmondx0001"&gt;edmondx0001&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I recommend that while inserting data into the development environment, you create an SQL script. Please take note of it and run the same insert SQL script in the targeted environment&amp;#39;s database with the proper timestamp. Manage those scripts for future reference.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>