# Simulating script/console for backend process

**URL:** <https://www.ruby-forum.com/t/simulating-script-console-for-backend-process/161337>\
**Category:** Rails\
**Created:** [February 25, 2009, 4:57pm UTC](https://www.ruby-forum.com/t/simulating-script-console-for-backend-process/161337 "2009-02-25T16:57:40Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![dmorin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/f0a364/32.png) [@dmorin](https://www.ruby-forum.com/u/dmorin)\
**Post date:** [February 25, 2009, 4:57pm UTC](https://www.ruby-forum.com/t/simulating-script-console-for-backend-process/161337/1 "2009-02-25T16:57:40Z")

</div>

I could swear I’ve seen instructions before on how to do this, but I  
can’t find them. I’ve got a backend process that runs in the same  
environment as my webapp, injecting data into the model. In the  
interests of not repeating myself I’d like to take advantage of the  
app/models from my webapp as well as my config/database.yml information.

Normally when running the script by hand I’d go into script/console and  
just do a ‘require’ on it. This has served me quite nicely, actually.

But I’ve got to put this into a cron job and take the people out of the  
loop. Is there a “right” way to do that, and simulate all those  
assumptions that the console has to make before running my script? As  
far as I can figure the console app does not have a standard “start up,  
run X script and then exit” option. I suppose I can just string  
together all the necessary requires at the top of my script, manually  
including the model files I need and such. I’m just trying to figure  
out if there’s a better/cleaner way already out there.

[This feels like a FAQ and trust me, I’m googling as best I can and just  
not finding it! I hate asking when I feel like I should know the  
answer…]

---

<div class="post-metadata">

**Author:** ![dmorin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/f0a364/32.png) [@dmorin](https://www.ruby-forum.com/u/dmorin)\
**Post date:** [February 25, 2009, 5:21pm UTC](https://www.ruby-forum.com/t/simulating-script-console-for-backend-process/161337/2 "2009-02-25T17:21:09Z")

</div>

Go to your RAILS\_ROOT folder and then:

script/runner “here goes the name of your script” -e production

Read the help:

script/runner -h  
Usage: script/runner [options] (‘Some.ruby(code)’ or a filename)

```
-e, --environment=name Specifies the environment for the

```

runner to operate under (test/development/production).  
Default: development

```
-h, --help Show this help message.

```

## You can also use runner as a shebang line for your scripts like this:

#!/usr/bin/env /home/mauricio/NetBeansProjects/something/script/runner

## Product.find(:all).each { |p| p.price \*= 2 ; p.save! }

- 

Maurício Linhares  
[http://alinhavado.wordpress.com/](http://alinhavado.wordpress.com/) (pt-br) | [http://blog.codevader.com/](http://blog.codevader.com/)  
(en)

On Wed, Feb 25, 2009 at 12:57 PM, Duane M.

---

<div class="post-metadata">

**Author:** ![dmorin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/f0a364/32.png) [@dmorin](https://www.ruby-forum.com/u/dmorin)\
**Post date:** [February 26, 2009, 2:28am UTC](https://www.ruby-forum.com/t/simulating-script-console-for-backend-process/161337/3 "2009-02-26T02:28:15Z")

</div>

Generally, you want to put this sort of thing in a rake task (instead  
of a script) and then your cron is just  
cd /application\_rails\_directory; rake do\_my\_thing --RAILS\_ENV=production
