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 commiting 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.

Once created you are ready to:

  • 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.