One database per project with multiple projects?
Added by Ed Beaty over 16 years ago
Hello, all. I have several projects, and need to have each project use its own database (I'm migrating from a system where project A had an Issue #1 and project B had and Issue #1, and I need to preserve the numbering of these old bugs).
I'm using redmine through Mongrel Clusters, served by Apache. I'm able to create the databases in mysql:
create database projectA character set utf8;
create database projectB character set utf8;
and setup the tables:
sudo rake db:migrate RAILS_ENV="projectA"
sudo rake db:migrate RAILS_ENV="projectB"
sudo rake redmine:load_default_data RAILS_ENV="projectA"
sudo rake redmine:load_default_data RAILS_ENV="projectB"
and setup the database.yml:
projectA:
adapter: mysql
database: projectA
host: localhost
username: *
password: *
projectB:
adapter: mysql
database: projectB
host: localhost
username: *
password: *
But when I try to configure mongrel_rails, I can't figure out how to make it serve the projects with different databases.
If I do:
sudo mongrel_rails cluster::configure -e projectA -p 8000 -N 3 -c /home/redmine --user apache --group apache
then any issues I add to Project B get put in the Project A database.
If I leave out the -e projectName argment, I get this error in my mongrel log:
- Daemonized, any open files are closed. Look at tmp/pids/mongrel.9000.pid and log/mongrel.9000.log for info.
- Starting Mongrel listening at 0.0.0.0:9000
- Initiating groups for "apache":"apache".
- Changing group to "apache".
- Changing user to "apache".
- Starting Rails with development environment...
/home/redmine/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb:217:in `establish_connection': development database is not configured (ActiveRecord::AdapterNotSpecified)
from /home/redmine/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb:208:in `establish_connection'
from /home/redmine/config/../vendor/rails/railties/lib/initializer.rb:234:in `initialize_database'
from /home/redmine/config/../vendor/rails/railties/lib/initializer.rb:94:in `process'
from /home/redmine/config/../vendor/rails/railties/lib/initializer.rb:49:in `send'
from /home/redmine/config/../vendor/rails/railties/lib/initializer.rb:49:in `run'
from /home/redmine/config/environment.rb:20
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
... 9 levels...
from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.4/bin/../lib/mongrel/command.rb:212:in `run'
from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.4/bin/mongrel_rails:281
from /usr/bin/mongrel_rails:19:in `load'
from /usr/bin/mongrel_rails:19
Any ideas on how to make this work? I don't HAVE to use Mongrel; it's just that I was able to get a single-database multiple-project setup working with it pretty
easily. If there's a non-mongrel way to run Redmine through apache, I'm game.
Thanks for all your help.
-Ed