How to run several instances of a rails app with a single code base?
What is the problem?
Sometimes you want to run several instances of the same application on your server. How to easily do this in rails?
The solution :)
Rails offers us the environments, allowing to run an application under different status: development, test or production environment.
We just have to create in the database.yml a specific database connection for each new environment:
prod1:
adapter: mysql
database: prod_one
username: root
password: password
and for another instance
prod2:
adapter: mysql
database: prod_two
username: root
password: password
and to create a specific configuration file 'prod1.yml' in the directory config/environments/.
After this, you just generate the database schema with the following command:
-
rake db:migrate RAILS_ENV=prod1
And run the server on a specified port:
./script/server -p 4001 -e prod1
Et voilà ! an instance running on the specified port (4000).
If you want another one (let's say prod2).
Let's create the database instance... rake db:migrate RAILS_ENV=prod2
./script/server -p 4002 -e prod2 ... and another instance of the same code base is now running on port 4002.
Bliss.

Pourquoi ne pas laisser une réponse?
Laisser une réponse