Client Description
Highland Industries began in 1988 as it took on the equipment and expertise of Burlington Industrial Fabrics Company (BIFCO). With manufacturing locations in Cheraw, SC and Kernersvile, NC, Highland Industries specializes in the conception, design, and delivery of high-performance textiles for automotive, military, industrial, aerospace, and medical applications. The company consists of experienced scientists, engineers, partners, and ambassadors, who are all focused on combining the latest materials to meet or exceed demanding performance and regulatory standards.
The Challenge
The Highland Industries website was based on Django 1.4 which was approaching its end-of-life. To ensure that the platform stayed up to date it needed to be updated to a more recent version. Django 1.7 introduced native data migrations and the implementation of them was not compatible with the site's existing table structure.
The Solution
DesignHammer decided to target the latest long term support release of Django: 1.8 LTS. In order to complete the migration the Django instance had to be updated, in turn, from 1.4 to 1.5, then to 1.6, then 1.7, and finally 1.8. Each version of Django represented a long list of potentially breaking changes. In addition to this, the existing Django implementation relied on multiple-inherited data models for representing content pages in the site.
DesignHammer carefully undertook the process of updating Django to the next version while reviewing and documenting deprecations. The database schema and model definitions were carefully restructured so that they could be properly understood by Django's migrations system. All of this was executed in a safe testing environment using Vagrant. Once the migration work was complete and well-tested in a development environment DesignHammer was able to perform the migration on the production server. The migration went very smoothly with minimal interruption and no visible change to end-users.
The Results
The result is that the Highland Industries website continues to run on the latest LTS release of Django. Additional development projects for the site have benefitted from having native migrations and better dependency support.