Body: <p>I'm working on a Drupal/CiviCRM site and would like to manage as much of the site's configuration as possible using git.</p>
  <p>My goals are:</p>
  <ul>
  <li>Improve local developer experience (local, staging, prod)</li>
  <li>Disable UI configuration on the production site</li>
  <li>Track the history of what's been done and why</li>
  </ul>
  <p>In drupal this is possible with the <code>drush config:export</code> and <code>drush config:import</code> along with the <a href="https://www.drupal.org/project/config_split" rel="nofollow noreferrer"><code>Configuration Splits</code></a> and <a href="https://www.drupal.org/project/config_ignore" rel="nofollow noreferrer"><code>Config Ignore</code></a> modules.</p>
  <p>How would I accomplish this in CiviCRM?</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-09-23T18:25:12.233Z
Comments.Text: Perhaps you could say a little more about what you mean by "configuration"? CiviCRM has a *lot* of configurable data!
Comments.UserDisplayName: Coleman
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-09-23T19:15:33.213Z
Comments.Text: Thank you Coleman. Aside from user, email, payment, and other data, I'd like as much as possible in code. I realized this might not be possible and I'll take anything I can get. Off the top of my head, I'd like custom fields, options, extension settings, etc.
Comments.UserDisplayName: IanEdington
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-09-23T19:38:31.563Z
Comments.Text: This is the "community wiki" answer to this question: https://civicrm.stackexchange.com/questions/30438/reproduce-civicrm-configuration-best-practice/30474#30474
Comments.UserDisplayName: Demerit
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-09-24T00:38:47.720Z
Comments.Text: Awesome! Thank you @Demerit! This is exactly what I was looking for!
Comments.UserDisplayName: IanEdington
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-09-25T15:30:53.770Z
Comments.Text: I just updated item #2 in that community wiki answer to reflect the powerful new `civix export` command for [exporting managed entities to an extension](https://docs.civicrm.org/dev/en/latest/extensions/managed/)
Comments.UserDisplayName: Coleman
Tags: <drupal><configuration>
Title: Configuration as code in CiviCRM
ThreadText: # Configuration as code in CiviCRM
  
  (Asked by: username_0 on 2024-09-23)
  
  I'm working on a Drupal/CiviCRM site and would like to manage as much of the site's configuration as possible using git.
  
  My goals are:
  
  * Improve local developer experience (local, staging, prod)
  * Disable UI configuration on the production site
  * Track the history of what's been done and why
  
  In drupal this is possible with the `drush config:export` and `drush config:import` along with the [`Configuration Splits`](https://www.drupal.org/project/config_split) and [`Config Ignore`](https://www.drupal.org/project/config_ignore) modules.
  
  How would I accomplish this in CiviCRM?
  
  **Tags:** drupal, configuration
  
  > **Comments:**
  > **username_1**: Perhaps you could say a little more about what you mean by "configuration"? CiviCRM has a *lot* of configurable data!  
  > **username_0**: Thank you username_1. Aside from user, email, payment, and other data, I'd like as much as possible in code. I realized this might not be possible and I'll take anything I can get. Off the top of my head, I'd like custom fields, options, extension settings, etc.  
  > **username_2**: This is the "community wiki" answer to this question: https://civicrm.stackexchange.com/questions/30438/reproduce-civicrm-configuration-best-practice/30474#30474  
  > **username_0**: Awesome! Thank you @username_2! This is exactly what I was looking for!  
  > **username_1**: I just updated item #2 in that community wiki answer to reflect the powerful new `civix export` command for [exporting managed entities to an extension](https://docs.civicrm.org/dev/en/latest/extensions/managed/)  
  
  ---
  
  ## 0 answers
  
  