Table of Contents:

TOC

Migration From Oxygen Builder To Bricks Builder: How I Cleaned Up My Database

I used Oxygen Builder for most of my websites over the last five years or so. Since updating my tech stack to build WordPress site with Bricks Builder, I have slowly been migrating my sites from Oxygen over to Bricks.

My workflow was to migrate from Oxygen Builder To Bricks is as follows:

  • Clone the website and database to a testing subdomain
  • Rebuild all templates and pages with Bricks
  • Clean up the database to remove as many Oxygen references as possible

Cleaning up the database is always a stressful, difficult, and time consuming task.

If you make one small mistake, you can crash your site and potentially force yourself to start over.

That being said, always take a backup before you start editing your WP database. I even will take multiple backups after completing successful SQL commands to create checkpoints, kind-of like saving progress in a video game.

Prerequisites To Clean Up Your Database

Before you can start the task of cleaning your database, you need a tool to access the database. I prefer phpMyAdmin but AdminerNeo works too. Talk to your hosting provider to learn ways you can view your WP database. Once you have access, take some time to study up on the WP Schema and SQL.

I promise that the WP database and SQL are not as hard to learn as some people make it sound. As long as you have a backup, you can break your testing environments and roll back to a working version!

Always work on a test environment!

How To Clean Up The WP Database When Migrating From Oxygen Builder To Bricks Builder

Migrating from Oxygen Builder to Bricks Builder requires removing database entries created by Oxygen to maintain a clean and efficient site.

Oxygen stores data across multiple locations, including postmeta, options, and post content fields, such as custom meta keys, configuration options, and shortcode blocks.

Identifying and removing this data can be done using direct SQL queries executed through phpMyAdmin or a similar database management tool.

Below is a list of SQL commands that I have put together on my journey purging my WP database of Oxygen records. I will continuously update this post as I discover new SQL queries.

Query wp_postmeta Table

This query searches the wp_postmeta table for meta keys that match patterns starting with _ct_ or _oxygen_, and returns a distinct list of matching terms:

SELECT DISTINCT meta_key AS oxygen_term
FROM wp_postmeta
WHERE meta_key LIKE '_ct_%'
   OR meta_key LIKE '_oxygen_%';

Query wp_options Table

This query searches the wp_options table for option names that begin with oxygen_ and returns a distinct list of matching option names. These entries are typically created by Oxygen Builder for storing global settings, templates, and configuration data.

SELECT DISTINCT option_name AS oxygen_term
FROM wp_options
WHERE option_name LIKE 'oxygen_%';

Query post_content From wp_posts Table

This query extracts distinct Oxygen Builder block identifiers from the post_content field in the wp_posts table. It searches for content containing <!-- wp:oxygen-vsb/ comments and isolates the component name that follows. This identifies Oxygen block references that may remain embedded in post content.

SELECT DISTINCT
  SUBSTRING_INDEX(SUBSTRING_INDEX(post_content, '<!-- wp:oxygen-vsb/', -1), '/', 1) AS oxygen_component
FROM wp_posts
WHERE post_content LIKE '%<!-- wp:oxygen-vsb/%';

Why You Should Clean Up Your Database When Migrating From Oxygen to Bricks

When a site is rebuilt with Bricks Builder, the Oxygen Builder data stored in the database no longer serves any functional purpose.

If this data is not removed, it can cause several issues over time, including

  • increased database size
  • slower query performance
  • conflicts with plugins that interact with postmeta or options
  • A dirty database makes future migrations or site maintenance harder.

Residual Oxygen data can also lead to unexpected behavior if Bricks or other plugins attempt to read outdated meta keys or settings. Cleaning the database removes unnecessary overhead and ensures that only relevant and active data remains in the system.

My advice is to take some time learning the WP database, play around in a test environment, and try to keep your database as lean as possible to serve your website and visitors

How To Safely Test and Delete the Data

Deleting database records without testing can easily break core/critical site functionality, corrupt the database content, or crash the entire WP installation.

To prevent these issues, start by taking a full backup of the database before making any changes.

Run SELECT queries first!

This will help you to see exactly which records are likely associated with Oxygen, reducing the risk of accidentally removing unrelated data.

After reviewing and confirming the results, you can use DELETE statements to remove the Oxygen entries in small batches. Testing these changes on a staging or development copy of the site ensures that if any issues occur, they can be identified and corrected without affecting the live site. Only after a successful validation should changes be applied to the production database.

All Above Queries Combined Together in One SQL Command

As a bonus, here are the three queries combined together. This will output a list of many records created by Oxygen that you can search for and delete at your discretion.

SELECT DISTINCT meta_key AS oxygen_term
FROM wp_postmeta
WHERE meta_key LIKE '_ct_%' OR meta_key LIKE '_oxygen_%'

UNION

SELECT DISTINCT option_name AS oxygen_term
FROM wp_options
WHERE option_name LIKE 'oxygen_%'

UNION

SELECT DISTINCT
  SUBSTRING_INDEX(SUBSTRING_INDEX(post_content, '<!-- wp:oxygen-vsb/', -1), '/', 1) AS oxygen_term
FROM wp_posts
WHERE post_content LIKE '%<!-- wp:oxygen-vsb/%';

The Output of the Combined SQL Command

oxygen_term
_ct_template_archive_post_types_all
_ct_template_categories
_ct_template_categories_all
_ct_template_tags
_ct_template_tags_all
_ct_template_custom_taxonomies
_ct_template_custom_taxonomies_all
_ct_template_authors_archives_all
_ct_template_index
_ct_template_front_page
_ct_template_blog_posts
_ct_template_date_archive
_ct_template_search_page
_ct_template_inner_content
_ct_template_404_page
_ct_template_all_archives
_ct_template_archive_among_taxonomies
_ct_template_apply_if_archive_among_taxonomies
_ct_template_archive_post_types
_ct_template_apply_if_archive_among_cpt
_ct_template_authors_archives
_ct_template_apply_if_archive_among_authors
_ct_template_single_all
_ct_template_post_types
_ct_template_exclude_ids
_ct_template_include_ids
_ct_template_taxonomies
_ct_use_template_taxonomies
_ct_template_post_of_parents
_ct_template_apply_if_post_of_parents
_ct_template_order
_ct_builder_shortcodes
_oxygen_lock_post_edit_mode
_ct_preview_url
_ct_page_settings
_ct_builder_shortcodes_revisions
_ct_builder_shortcodes_revisions_dates
_ct_other_template
_ct_parent_template
_ct_template_type
action_priority
action_type
_ct_builder_json
_ct_connection_page_category
oxygen-vsb-activated
oxygen_aos_classes
oxygen_breakpoints_cache_update_required
oxygen_global_colors_cache_update_required
oxygen_gutenberg_license_key
oxygen_gutenberg_license_status
oxygen_license_key
oxygen_license_status
oxygen_license_updated
oxygen_options_autoload
oxygen_private_key
oxygen_rewrite_rules_updated
oxygen_vsb_access_role_author
oxygen_vsb_access_role_contributor
oxygen_vsb_access_role_editor
oxygen_vsb_access_role_subscriber
oxygen_vsb_block_category_label
oxygen_vsb_codemirror_theme
oxygen_vsb_codemirror_wrap
oxygen_vsb_comments_list_templates
oxygen_vsb_connection_access_key
oxygen_vsb_css_cache_generated_2_2
oxygen_vsb_css_files_state
oxygen_vsb_disable_embeds
oxygen_vsb_disable_emojis
oxygen_vsb_disable_google_fonts
oxygen_vsb_disable_jquery_migrate
oxygen_vsb_easy_posts_templates
oxygen_vsb_element_presets
oxygen_vsb_enable_3rdp_designsets
oxygen_vsb_enable_connection
oxygen_vsb_enable_default_designsets
oxygen_vsb_enable_google_fonts_cache
oxygen_vsb_enable_ie_layout_improvements
oxygen_vsb_enable_selector_detector
oxygen_vsb_enable_signature_frontend_errors
oxygen_vsb_enable_signature_validation
oxygen_vsb_full_page_block_category_label
oxygen_vsb_global_colors
oxygen_vsb_google_fonts_cache
oxygen_vsb_google_maps_api_key
oxygen_vsb_history_limit
oxygen_vsb_ignore_post_type_affiliate-links-cpt
oxygen_vsb_ignore_post_type_car
oxygen_vsb_ignore_post_type_drone
oxygen_vsb_ignore_post_type_feedzy_categories
oxygen_vsb_ignore_post_type_feedzy_imports
oxygen_vsb_ignore_post_type_helicopter
oxygen_vsb_ignore_post_type_mb-post-type
oxygen_vsb_ignore_post_type_mb-relationship
oxygen_vsb_ignore_post_type_mb-settings-page
oxygen_vsb_ignore_post_type_mb-taxonomy
oxygen_vsb_ignore_post_type_mb-views
oxygen_vsb_ignore_post_type_meta-box
oxygen_vsb_ignore_post_type_news
oxygen_vsb_ignore_post_type_ninja-table
oxygen_vsb_ignore_post_type_oxy_user_library
oxygen_vsb_ignore_post_type_page
oxygen_vsb_ignore_post_type_plane
oxygen_vsb_ignore_post_type_post
oxygen_vsb_ignore_post_type_rank_math_schema
oxygen_vsb_ignore_post_type_rc-car-track
oxygen_vsb_ignore_post_type_rc-cars
oxygen_vsb_ignore_post_type_rc-locations
oxygen_vsb_ignore_post_type_rc-planes
oxygen_vsb_ignore_post_type_rm_content_editor
oxygen_vsb_ignore_post_type_scheduled-action
oxygen_vsb_ignore_post_type_user_request
oxygen_vsb_ignore_post_type_wpcb_snippet_folder
oxygen_vsb_ignore_post_type_wpcb_snippet_post
oxygen_vsb_ignore_post_type_wp_block
oxygen_vsb_ignore_post_type_wp_font_face
oxygen_vsb_ignore_post_type_wp_font_family
oxygen_vsb_ignore_post_type_wp_global_styles
oxygen_vsb_ignore_post_type_wp_navigation
oxygen_vsb_ignore_post_type_wp_template
oxygen_vsb_ignore_post_type_wp_template_part
oxygen_vsb_is_agency_bundle
oxygen_vsb_is_composite_elements_agency_bundle
oxygen_vsb_last_save_time
oxygen_vsb_latest_typekit_fonts
oxygen_vsb_load_aos_in_head
oxygen_vsb_number_of_daily_revisions
oxygen_vsb_number_of_latest_revisions
oxygen_vsb_options_role_access_advanced_tab
oxygen_vsb_options_role_access_disable_classes
oxygen_vsb_options_role_access_disable_ids
oxygen_vsb_options_role_access_drag_n_drop
oxygen_vsb_options_role_access_enabled_elements
oxygen_vsb_options_role_access_enable_elements
oxygen_vsb_options_users_access_advanced_tab
oxygen_vsb_options_users_access_disable_classes
oxygen_vsb_options_users_access_disable_ids
oxygen_vsb_options_users_access_drag_n_drop
oxygen_vsb_options_users_access_enabled_elements
oxygen_vsb_options_users_access_enable_elements
oxygen_vsb_options_users_access_list
oxygen_vsb_presets_updated_3_3
oxygen_vsb_presets_updated_3_4
oxygen_vsb_preview_dropdown_exclude_non_public
oxygen_vsb_preview_dropdown_limit
oxygen_vsb_screenshot_generate_url
oxygen_vsb_show_all_acf_fields
oxygen_vsb_site_screenshot
oxygen_vsb_source_sites
oxygen_vsb_universal_css_cache
oxygen_vsb_universal_css_cache_success
oxygen_vsb_universal_css_latest_version
oxygen_vsb_universal_css_url
oxygen_vsb_update_3_6
oxygen_vsb_update_3_7
oxygen_vsb_update_4_0_shortcodes_signed
oxygen_vsb_update_4_9
oxygen_vsb_use_css_for_google_fonts
ovsb-faq-section
ovsb-pro-media-player

DELETE Queries for all SELECT Queries in this Article

Make sure you are confident in your select queries before running the delete queries. If you make a mistake, restore the database from your backup.

Delete From wp_postmeta Table

After verifying the records returned by the SELECT, you can remove Oxygen-related meta keys from the wp_postmeta table with:

DELETE FROM wp_postmeta
WHERE meta_key LIKE 'ct%'
OR meta_key LIKE 'oxygen%';

Delete From wp_options Table

To remove Oxygen-related options from the wp_options table:

DELETE FROM wp_options
WHERE option_name LIKE 'oxygen_%';

Clean Up post_content in wp_posts Table

There is no simple DELETE query for cleaning post_content, because Oxygen Builder shortcodes are embedded within post bodies. Instead, you must update the post_content to remove specific Oxygen blocks.

A safe method is to target and replace Oxygen blocks with an empty string, for example:

UPDATE wp_posts
SET post_content = REPLACE(post_content, '<!-- wp:oxygen-vsb/', '<!-- oxygen-block-removed/')
WHERE post_content LIKE '%<!-- wp:oxygen-vsb/%';

Conclusion

Oxygen Builder stores a large amount of data across the WordPress database, even after you delete the plugin from your site.

Leaving this data in place can result in performance issues, plugin conflicts, and long-term maintenance challenges.

By identifying and removing these records using targeted SQL queries, you can ensure a cleaner, more efficient environment for Bricks Builder to operate in.

As with any direct database operation, testing on a staging site and taking backups at each step is essential. This cleanup process isn’t just about removing clutter — it’s about reducing risk, improving performance, and maintaining full control over your site’s structure moving forward.

Need Help With Bricks Builder?

John the owner of Bricks Coach and the lead instructor.
Book a consultation

Related Posts

Migration From Oxygen Builder To Bricks Builder: How I Cleaned Up My Database

April 25, 2025

How to hide the active class indicator in Bricks Builder

April 16, 2025

The Bricks Builder Query Loop Meta Query Explained

February 22, 2025

How To Send A Webhook To n8n With Header Authentication With Bricks Forge Pro Forms

February 8, 2025

How To Find The Form ID And Form Fields For A Bricks Builder Custom Form Action

January 5, 2025

Review Your Cart
0
Add Coupon Code
Subtotal