Check out v4 of the Fauna CLI

v4 of the Fauna CLI is now in beta.

The new version introduces enhancements to the developer experience, including an improved authentication workflow. To get started, check out the CLI v4 quick start.

fauna project init

Initialize a project directory by creating a .fauna-project file.

Syntax

fauna project init [<PROJECT_DIR>]

Description

fauna project init initializes a project directory by creating a .fauna-project file.

fauna project init

Interactive prompts

The fauna project init command requires input to interactive prompts.

When running fauna project init, you’ll be prompted for:

  • Schema directory

    • Location to store your .fsl schema files

    • Default: Current director

    • Example: schema or db/schema

  • Default environment

    • Default environment for the project

    • Example: dev, qa, or prod

    • Defined in .fauna-project

  • Default endpoint

    • Default Fauna endpoint for the environment

    • Example: fauna-us or fauna-eu

    • Defined in .fauna-shell

  • Default database

    • Default database for the environment

    • Example: myapp/dev or myproject_development

Project directory

A project directory includes:

<APP>/              // Directory containing app source code (optional)
├── .fauna-project  // INI-format file containing Fauna CLI defaults for the project
├── schema/         // Directory containing Fauna .fsl schema files
│   └── *.fsl
...
  • A .fauna-project file that stores a default configuration for the project in Fauna CLI

  • .fsl files for the project’s database(s), typically stored in a subdirectory

  • (Optional) The application’s source code

For more about the .fauna-project file, see Project configuration.

.fauna-project file

.fauna-project is an INI-format file that stores a default Fauna CLI configuration for a project directory.

The Fauna CLI uses these defaults when you run commands in the directory. If you run commands in a subdirectory, the CLI searches parent directories for the nearest .fauna-project file.

Example:

schema_directory=schema
default=dev

[environment.dev]
endpoint=fauna-us
database=accounts/dev

[environment.qa]
endpoint=fauna-us
database=accounts/qa

[environment.prod]
endpoint=fauna-us
database=accounts/prod

Several Fauna CLI commands, such as fauna eval, let you easily switch environments using the --environment option:

fauna eval "Product.all()" --environment='prod'

For more information about environments, see environments.

The .fauna-project` file is typically committed to version control.

Set up a project

You can use fauna project init to set up a project directory and FSL files for an application. See Set up a project using FSL and the Fauna CLI.

Arguments

Argument Description

<PROJECT_DIR>

The directory to initialize as a Fauna project. Defaults to the current directory.

If the directory doesn’t exist, the command creates it.

Options

Option Description

--help

Help for project init command.

Examples

Basic example

fauna project init

When prompted, provide:

  • A schema directory used to store .fsl files. If the directory doesn’t exist, the command creates it. Press Enter to use the current directory.

  • A default environment name. See environments.

  • A default endpoint to use for Fauna CLI commands.

  • A default database for Fauna CLI commands.

Specify a project directory

To specify a project directory to create the .fauna-project file in:

fauna project init path/to/some/other/dir

Is this article helpful? 

Tell Fauna how the article can be improved:
Visit Fauna's forums or email docs@fauna.com

Thank you for your feedback!