{"id":109334,"date":"2026-03-18T14:01:06","date_gmt":"2026-03-18T14:01:06","guid":{"rendered":"https:\/\/www.red-gate.com\/simple-talk\/?p=109334"},"modified":"2026-04-07T13:56:18","modified_gmt":"2026-04-07T13:56:18","slug":"how-to-migrate-from-on-prem-to-the-cloud-uncovering-legacy-system-skeletons","status":"publish","type":"post","link":"https:\/\/www.red-gate.com\/simple-talk\/cloud\/how-to-migrate-from-on-prem-to-the-cloud-uncovering-legacy-system-skeletons\/","title":{"rendered":"How to migrate from on-prem to the cloud: uncovering legacy system &#8216;skeletons&#8217;"},"content":{"rendered":"\n<p><strong>In this article, Pat Wright explains<\/strong> <strong>how to identify hidden risks in legacy applications before moving to the cloud. It features practical advice and guidance to avoid migration failures and surprises.<\/strong><\/p>\n\n\n\n<p>I have worked in very few companies that had applications that were only a few years old or were for greenfield projects. Typically, I find companies have applications that are more than five years old and have been running on the same hardware for many years more.&nbsp;For these applications, <a href=\"https:\/\/www.red-gate.com\/solutions\/use-cases\/cloud-migration-and-workload-optimization\/\" target=\"_blank\" rel=\"noreferrer noopener\">making a move to the cloud<\/a> can be a challenge.<\/p>\n\n\n\n<p>A DB migration I was recently involved with had an application that had been running on a local server, in the office, for over five years. It was in maintenance mode and didn\u2019t really have much new code being written for it. It was critical to the company, and they were working on moving all the systems to the cloud. When it came time for the migration of this DB, however, a problem arose.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-the-problem-with-this-migration-explained\">The problem with this migration, explained<\/h2>\n\n\n\n<p id=\"h-the-problem-with-this-migration-explained-went-through-the-same-steps-as-we-had-done-with-others-but-then-discovered-that-this-particular-application-didn-t-work-without-specific-database-system-admin-permissions-these-permissions-weren-t-easy-to-set-up-in-the-cloud-so-the-first-testing-we-did-with-the-application-failed\">We went through the same steps as we had done with others, but discovered that this particular application didn\u2019t work without specific <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/database-administration-sql-server\/sql-server-security-fixed-server-and-database-roles\/\" target=\"_blank\" rel=\"noreferrer noopener\">Database System Admin permissions<\/a>.&nbsp;These permissions weren\u2019t easy to set up in the cloud, so the first testing we did with the application failed.<\/p>\n\n\n\n<p>We didn\u2019t have any documentation around this, and none of the original engineers who understood what was needed from the application were around to help. Thankfully, in the end we were able to provide the proper permissions to the application to get it working in the cloud, using a temporary solution we created. This temporary solution allowed me to formulate the following advice to ensure the same doesn&#8217;t happen to you.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-we-tackled-the-permissions-issue\">How we tackled the permissions issue<\/h2>\n\n\n<div class=\"block-core-list\">\n<ol class=\"wp-block-list\">\n<li>Start a task force to list all applications and products that exist in the organization.&nbsp;<br><br><\/li>\n\n\n\n<li>Identify which applications are still needed and which ones need to change.&nbsp;This should be done in parallel with getting ready for the migration<br><br><\/li>\n\n\n\n<li>Track down documentation if possible. Introduce a process to create the documentation of the system as you migrate.<br><br><\/li>\n\n\n\n<li>Start building a test plan &#8211; or run a \u201cquick test\u201d with a copy of the application in the cloud &#8211; to find simple problems.<br><br><\/li>\n\n\n\n<li>Find genuine users of the application within your organization and make sure they do the testing. For example, somebody working in accounting is often the best person to test these items.<br><br><\/li>\n\n\n\n<li>Try to categorize the applications both by risk and by length of time for migration.&nbsp;This is important for future steps.<\/li>\n<\/ol>\n<\/div>\n\n\n<p>I hope this has helped you to find the skeletons in your systems and I am looking forward to helping you in the next article.<\/p>\n\n\n\n<section id=\"my-first-block-block_c4a8a5e6afd6fd5882121edb0661dc43\" class=\"my-first-block alignwide\">\n    <div class=\"bg-brand-600 text-base-white py-5xl px-4xl rounded-sm bg-gradient-to-r from-brand-600 to-brand-500 red\">\n        <div class=\"gap-4xl items-start md:items-center flex flex-col md:flex-row justify-between\">\n            <div class=\"flex-1 col-span-10 lg:col-span-7\">\n                <h3 class=\"mt-0 font-display mb-2 text-display-sm\">Cloud adoption is accelerating, but database migrations aren\u2019t keeping pace. Find out why.<\/h3>\n                <div class=\"child:last-of-type:mb-0\">\n                                            The Cloud Migration Divide explores why complex, business-critical databases remain on-premises &#8211; and what\u2019s holding organizations back as confidence fails to scale with complexity.                                    <\/div>\n            <\/div>\n                            <a href=\"https:\/\/www.red-gate.com\/solutions\/state-of-database-landscape\/2026\/cloud-migration-divide\/\" class=\"btn btn--secondary btn--lg\">Download the free report<\/a>\n                    <\/div>\n    <\/div>\n<\/section>\n\n\n<section id=\"faq\" class=\"faq-block my-5xl\">\n    <h2>FAQs: Uncovering legacy system &#039;skeletons&#039; before a cloud migration<\/h2>\n\n                        <h3 class=\"mt-4xl\">1. What are \u201cskeletons in the closet\u201d in IT systems?<\/h3>\n            <div class=\"faq-answer\">\n                <p data-start=\"388\" data-end=\"595\">They are hidden dependencies, outdated configurations, or undocumented features in legacy applications that can cause issues during cloud migration.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">2. Why do legacy applications fail during cloud migration?<\/h3>\n            <div class=\"faq-answer\">\n                <p>They often rely on old permissions, hardware setups, or undocumented behavior that doesn\u2019t translate easily to cloud environments.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">3. How can I prepare legacy systems for cloud migration?<\/h3>\n            <div class=\"faq-answer\">\n                <p>Audit all applications, review documentation, test early in the cloud, and involve real users in validation.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">4. What is the first step in a successful cloud migration?<\/h3>\n            <div class=\"faq-answer\">\n                <p>Create an inventory of all applications and identify which ones are still needed or require updates.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">5. Why is documentation important in cloud migration?<\/h3>\n            <div class=\"faq-answer\">\n                <p>Without documentation, critical system requirements may be missed, leading to delays or failures.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">6. Who should test applications after migration?<\/h3>\n            <div class=\"faq-answer\">\n                <p>Actual end users &#8211; often those who use the system daily &#8211; are best suited to identify real-world issues.<\/p>\n            <\/div>\n            <\/section>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Learn how to identify hidden risks in legacy applications before moving to the cloud. Practical tips to avoid migration failures and surprises.&hellip;<\/p>\n","protected":false},"author":346611,"featured_media":106856,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[10,143523],"tags":[5336,4168,4170,159381,4214],"coauthors":[159379],"class_list":["post-109334","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","category-databases","tag-cloud","tag-database","tag-database-administration","tag-how-to-migrate-from-on-prem-to-the-cloud-a-dba-stories-series","tag-migrating-databases"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/109334","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/users\/346611"}],"replies":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/comments?post=109334"}],"version-history":[{"count":6,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/109334\/revisions"}],"predecessor-version":[{"id":109435,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/109334\/revisions\/109435"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media\/106856"}],"wp:attachment":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media?parent=109334"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/categories?post=109334"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/tags?post=109334"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/coauthors?post=109334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}