---
title: "Updating with the acsf-init command"
date: "2024-02-14T06:18:38+00:00"
summary: "Learn how to update your Drupal site with the acsf-init command. This guide covers adding the Site Factory Connector module, executing updates, modifying settings for local development, and troubleshooting common issues."
image:
type: "page"
url: "/site-factory/updating-acsf-init-command"
id: "b215c102-fcfd-479e-9382-9cf6511bacbd"
---

The `acsf-init` Drush command (provided as part of the [Site Factory Connector](https://www.drupal.org/project/acsf) module) prepares a custom Drupal distribution for development and deployment on Site Factory. The command appends information to your website’s `sites/default/settings.php` file, while also creating any necessary directories, identifying database credentials, creating a `sites.php` file, and copying files required by Site Factory.

Important

Since `acsf-init` will make changes to your website’s `sites/default/settings.php` file, move your customizations in your `settings.php` file to another file or into a [post-settings.php hook](/site-factory/extend/hooks/settings-php). Failing to move your customizations could cause you to lose them when your `settings.php` is overwritten.

You must execute the `acsf-init` command whenever you update Drupal core or the [Site Factory Connector module](https://www.drupal.org/project/acsf) to a newer version.

Note

For more information about the different `settings.php` files in your Site Factory platform, see [Understanding settings.php file differences](/site-factory/help/94691-acquia-cloud-site-factory-understanding-settingsphp-file-differences "Acquia Cloud Site Factory: Understanding settings.php file differences").

Adding the Connector module to your codebase
--------------------------------------------

To add the [Site Factory Connector](https://www.drupal.org/project/acsf) module to your codebase, use the command appropriate for your installed version of Drupal:

**Drupal version**

**Command**

Drupal 7

Download the module by using the `drush dl acsf` command.

[Current Drupal version](/service-offerings/guide/software-life-cycle#supported-drupal-version)

Add the module to your `composer.json` by using the `composer require drupal/acsf` command.

Do not install the module in more than one location in your code repository (such as both `docroot/profiles/profilename/modules/contrib` and `docroot/modules/contrib`). Multiple instances of the module can prevent Site Factory from discovering and using the module.

To determine if your code repository contains more than one version of the module, run the following Git command in the `docroot` directory:

    git ls-files "*acsf.info*"

Executing `acsf-init` after module or Drupal core updates
---------------------------------------------------------

Whenever you update the [Site Factory Connector](https://www.drupal.org/project/acsf) module to a newer version, complete the following steps to update the module in your Drupal distribution:

1.  Download and extract the updated [Site Factory Connector](https://www.drupal.org/project/acsf) module from Drupal.org into your distribution with the command appropriate to your version of Drupal, replacing `[path/to/acsf/acsf_init]` with the path to your `acsf_init` module:
    
    *   Composer:
        
            composer update drupal/acsf --with-dependencies
            /local/site/vendor/bin/drush acsf-init --include="[path/to/acsf/acsf_init]/acsf/acsf_init" --root="/local/site/docroot" -y
        
    
    The Drush command creates several directories and then copies files that Site Factory requires for its tasks, including locating the correct database credentials.
    
2.  Run the following Drush command from the docroot directory to ensure everything is in order before you commit the custom distribution to the repository:
    
        drush --include=/path/to/acsf/acsf_init acsf-init-verify
    
    The `acsf-init-verify` command should display the following message:
    
        acsf-init required files ok
    
    You must repeat this process every time you update the [Site Factory Connector module](https://www.drupal.org/project/acsf).
    
3.  Commit and push your custom distribution’s files to Site Factory. For the specific procedure to guide you through this process, see [Preparing for the code deployment](/site-factory/workflow/deployments/steps#acsf-prepare-deployment).
4.  Update your Prod environment with the custom distribution’s files you pushed. For the specific procedure to guide you through this process, see [Performing a production deployment](/site-factory/workflow/deployments/steps).

If you fail to execute the `acsf-init` command, or Site Factory cannot determine the Site Factory Connector module version, your [deployment will fail](../deployments.html#acsf-deploy-failure).

Modifying `settings.php` for local development
----------------------------------------------

The [Site Factory Connector](https://www.drupal.org/project/acsf) module ensures the `settings.php` file includes only the required settings for Site Factory. When developing a custom Drupal distribution locally for use on Site Factory, you may need to modify `settings.php` in ways conflicting with the requirements enforced by the [Site Factory Connector](https://www.drupal.org/project/acsf) module.

You can avoid conflicts by executing the `acsf-init` command with the `--skip-default-settings` parameter to skip the `settings.php` validation when running a Drupal website that includes the [Site Factory Connector](https://www.drupal.org/project/acsf) module, but is not on Site Factory, as in the following example:

    drush --include=/path/to/acsf/acsf_init acsf-init --skip-default-settings

This parameter enables you to locally deploy and test a version of `settings.php` with settings needed for local development, while still ensuring your production websites use the version of `settings.php` required by Site Factory.

Note

You must execute `acsf-init` without `--skip-default-settings` before you commit and push your custom distribution’s files to Site Factory.

Troubleshooting: Is settings.php included in .gitignore?
--------------------------------------------------------

The `acsf-init` command writes your `sites/default/settings.php` file when you [prepare a custom Drupal distribution](/site-factory/workflow/distro) for development and deployment on Site Factory. If you cannot create new websites using your custom Drupal distribution, examine the `.gitignore` file in your code repository. Your `.gitignore` file may be set to exclude the `settings.php` file, so `settings.php` never gets pushed to the Site Factory. If your `.gitignore` file contains a line similar to the following example, delete it from `.gitignore`:

    # Ignore configuration files that may contain sensitive information.
    sites/*/settings.php

After deleting the line, commit your changes, and push your code again, as described in [Performing a production deployment](/site-factory/workflow/deployments/steps).

Common problems with `acsf-init`
--------------------------------

If you do not execute the `acsf-init` command after an Site Factory platform release, or execute the command incorrectly, you may encounter one or more of the following error messages:

Error

Description

`Verification failed: Verify that acsf-init has run`   
 

`The file settings.php is out of date`

If a hotfix fails, ensure your user has permission to overwrite the `settings.php` file, and then execute the command as described in [Executing acsf-init after module or Drupal core updates](#execute-acsf-init).

`Command acsf-init needs a higher bootstrap level to run`

The `acsf-init` command was executed from a directory without Git checkout or write permissions. Execute the command from a directory with these permissions to resolve the problem.

`settings.php` included in `.gitignore`

If the `acsf-init` command fails, even when executed from the correct directory and by a user with correct permissions, check that your website’s `settings.php` is not included in your `.gitignore` file, which will cause `acsf-init` to fail. Remove `settings.php` from your `.gitignore` file to resolve the problem.