Development App

In order to start developing you will need what is called a development_app. This is nearly the same as a new Decidim app (that you can create with decidim app_name) but with a Gemfile pre-configured for local development and some other small config modifications. You need it in order to have a Rails application configured to lookup Decidim modules from your filesystem. This way changes in your modules will be directly observed by this development_app.

You can create a development_app from inside the project’s root folder with the command:

git clone https://github.com/decidim/decidim.git
cd decidim
bundle install
bundle exec rake development_app
cd development_app

A development_app/ entry appears in the .gitignore file, so you don’t have to worry about committing the development app by mistake.

On creation, this steps are automatically invoked by the generator:

  • create a config/database.yml

  • bundle install

  • bin/rails decidim:upgrade

  • bin/rails db:migrate db:seed

If the default database.yml does not suit your needs you can always configure it at your will and run this steps manually.

The last command will set your database and add some example data (called "seed data") so that you can start trying Decidim. We don’t recommend using seed data for production environments, but it’s useful for local development and staging environments.

Once the app is created you are ready to start the server:

  • bin/rails s

Migrations

When creating new migrations in Decidim’s modules, you will need to "apply" this migrations to your development_app. The way to do this is by copying the migration from your module into the db/migrate dir of your development_app. Luckily we already have a script that automates this: it copies all missing migrations in development_app/db/migrate. The command is:

bin/rails decidim:upgrade

Anyway we recommend re-creating your development_app every once in a while.