Using Postgres as your application’s database? If so, there is a handy configuration option that you may not be aware about. The pg gem provides a template option that allows for copying already existing data into an application as long as you have matching schema.

To add this functionality, simply add the template option inside config/database.yml :

development: adapter: postgresql encoding: unicode database: myapp_development template: my_template

Let’s go through a quick example. Suppose we have an existing database, food , and it contains an abundant amount of data with the following schema:

foods: name (string), category_id (integer) categories: category (string)

To use the food database for our application, we are going to create a template by specifying our database with the following command:

createdb -T food my_food_template

We must now set up our Rails application and make sure that our schema matches that of our new template. Our Rails models will mimick food . Having done that, we can now modify our config/database.yml .

database: myapp_development template: my_food_template

Run migrations and voilà! Our database has been populated and is ready to be used.