Changing decimal field scale and precision using database

I’m using a custom decimal field in a custom product type in Drupal commerce. It has a precision of 10 and a scale of 2 (2 digits to the right of the decimal place).

I have a client with a large number of products that use this field, but their specification has now changed to require a decimal to 3dp.

By default Drupal “locks” the field to avoid data loss:

Because the field already has data, some settings can no longer be changed.

I took to editing the database, and it seems to have worked fine. I did three things:

  1. Changed the structure type of field_THIS_FIELD_value field in the drupal_field_data_THIS_FIELD table from decimal(10,2) to decimal(11,3)

  2. Repeated the same for the field revision table

  3. I downloaded the BLOB from table ‘drupal_field_config’ for field_THIS_FIELD and altered {s:9:"precision";s:2:"10";s:5:"scale";s:1:"2" to {s:9:"precision";s:2:"11";s:5:"scale";s:1:"3"

I cleared cache and existing data now has an extra 0 after the decimal place, and when I alter the data it stores it to 3 decimal places.

So it seems to work fine. But am I missing anything? Is there anywhere else where field data is changed that I might need to change?

Does the system integrity remain intact? I think I’ve done what’s necessary but don’t want to inadvertently break something else or cause any weakness in the system.

This article was republished from its original source.
Call Us: 1(800)730-2416

Pixeldust is a 20-year-old web development agency specializing in Drupal and WordPress and working with clients all over the country. With our best in class capabilities, we work with small businesses and fortune 500 companies alike. Give us a call at 1(800)730-2416 and let’s talk about your project.

FREE Drupal SEO Audit

Test your site below to see which issues need to be fixed. We will fix them and optimize your Drupal site 100% for Google and Bing. (Allow 30-60 seconds to gather data.)

Powered by

Changing decimal field scale and precision using database

On-Site Drupal SEO Master Setup

We make sure your site is 100% optimized (and stays that way) for the best SEO results.

With Pixeldust On-site (or On-page) SEO we make changes to your site’s structure and performance to make it easier for search engines to see and understand your site’s content. Search engines use algorithms to rank sites by degrees of relevance. Our on-site optimization ensures your site is configured to provide information in a way that meets Google and Bing standards for optimal indexing.

This service includes:

  • Pathauto install and configuration for SEO-friendly URLs.
  • Meta Tags install and configuration with dynamic tokens for meta titles and descriptions for all content types.
  • Install and fix all issues on the SEO checklist module.
  • Install and configure XML sitemap module and submit sitemaps.
  • Install and configure Google Analytics Module.
  • Install and configure Yoast.
  • Install and configure the Advanced Aggregation module to improve performance by minifying and merging CSS and JS.
  • Install and configure Schema.org Metatag.
  • Configure robots.txt.
  • Google Search Console setup snd configuration.
  • Find & Fix H1 tags.
  • Find and fix duplicate/missing meta descriptions.
  • Find and fix duplicate title tags.
  • Improve title, meta tags, and site descriptions.
  • Optimize images for better search engine optimization. Automate where possible.
  • Find and fix the missing alt and title tag for all images. Automate where possible.
  • The project takes 1 week to complete.