hi,
im using rvm + gemsets, but i dont know why rake always picks staging environment. i did not set this anywhere manually. any ideas?
thx
hi,
im using rvm + gemsets, but i dont know why rake always picks staging environment. i did not set this anywhere manually. any ideas?
thx
What’s the output of echo $RAILS_ENV ?
its empty
here are some values from ‘env’
MY_RUBY_HOME=/home/tom/.rvm/rubies/ruby-1.9.3-p194
rvm_bin_path=/home/tom/.rvm/bin
GEM_HOME=/home/tom/.rvm/gems/ruby-1.9.3-p194@mygemset
TERM=xterm
SHELL=/bin/bash
IRBRC=/home/tom/.rvm/rubies/ruby-1.9.3-p194/.irbrc
rvm_path=/home/tom/.rvm
escape_flag=1
rvm_prefix=/home/tom
MAIL=/var/mail/tom
PATH=/home/tom/.rvm/gems/ruby-1.9.3-p194@mygemset/bin:/home/tom/.rvm/gems/ruby-1.9.3-p194@global/bin:/home/tom/.rvm/rubies/ruby-1.9.3-p194/bin:/home/tom/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/var/lib/gems/1.8/bin
LANG=en_US.UTF-8
_second=1
rvm_version=1.14.1 (stable)
SHLVL=1
HOME=/home/tom
_first=0
LOGNAME=tom
GEM_PATH=/home/tom/.rvm/gems/ruby-1.9.3-p194@mygemset:/home/tom/.rvm/gems/ruby-1.9.3-p194@global
install_flag=1
RUBY_VERSION=ruby-1.9.3-p194
_=/usr/bin/env
i did delete all rvm stuff, rebooted and reinstalled rvm. this is my rvmrc file:
rvm_trust_rvmrcs_flag=1
rvm use ruby-1.9.3-p194@mygemset --create
thx
what’s the content of Rakefile?
hi,
its just a simple rake import tasks (using :environment, but all my rake commands are affected, even a migration goes straight to staging…
namespace :import do
desc “import automobiles step1”
task :automobiles => :environment do
…
…
i’ve checked everything for staging, but i dont see what could point towards staging. ill try to setup a new system-user and rerun rvm setup with the same rvmrc file…
thx for any pointers
hi, its just a simple rake import tasks (using :environment, but all my rake commands are affected, even a migration goes straight to staging...
namespace :import do desc "import automobiles step1" task :automobiles => :environment do ..... ........
i've checked everything for staging, but i dont see what could point towards staging. ill try to setup a new system-user and rerun rvm setup with the same rvmrc file...
Does it run ok if you do something like RAILS_ENV=development rake .....
no, it executes eg the migrations on the staging-db, but if i start up webrick via “rails s” it comes up the standard development environment
where does rake get the environment info if i ommit ‘RAILS_ENV’ when executing a rake command?
thx
no, it executes eg the migrations on the staging-db, but if i start up webrick via "rails s" it comes up the standard development environment
Since you have top posted (rather than inline) I am not certain what you are saying no to. Are you saying that if you do RAILS_ENV=development rake db:migrate that it runs on the staging environment and not development?
Colin
yes, thats correct
RAILS_ENV=development rake db:migrate
runs in staging env.
thx
Top posting still ![]()
yes, thats correct
RAILS_ENV=development rake db:migrate
runs in staging env.
I don't understand why you then went on to ask
> where does rake get the environment info if i ommit 'RAILS_ENV' when > executing a rake command?
Two points (please reply inline so that it makes it easier to follow the thread. Thanks
1. How do you know that rake db:migrate is running in staging environment?
2. Please post database.yml here.
Colin
inline
Top posting still
yes, thats correct
RAILS_ENV=development rake db:migrate
runs in staging env.
I don’t understand why you then went on to ask
where does rake get the environment info if i ommit ‘RAILS_ENV’ when
executing a rake command?
Two points (please reply inline so that it makes it easier to follow
the thread. Thanks
- How do you know that rake db:migrate is running in staging environment?
because the migrations are being executed on the staging-db (eg adding a new colum)
- Please post database.yml here.
database.yml is pretty much standard:
staging:
adapter: mysql2
encoding: utf8
reconnect: false
database: myproject_staging
pool: 5
username: myproject_dbuser
password: myproject_dbuser
socket: /var/run/mysqld/mysqld.sock
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: myproject_development
pool: 5
username: myproject_dbuser
password: myproject_dbuser
socket: /var/run/mysqld/mysqld.sock
test:
adapter: mysql2
encoding: utf8
reconnect: false
database: myproject_test
pool: 5
username: myproject_dbuser
password: myproject_dbuser
socket: /var/run/mysqld/mysqld.sock
production:
adapter: mysql2
encoding: utf8
reconnect: false
database: myproject_production
pool: 5
username: myproject_dbuser
password: myproject_dbuser
socket: /var/run/mysqld/mysqld.sock
as i said, starting webrick works fine in different environments, whereas rake tasks always use “staging”, no matter what specify. here a sample of a migration:
rails g migration add name_to_testbooks name:string
/home/tom/.rvm/gems/ruby-1.9.3-p194@mygemset/gems/railties-3.2.1/lib/rails/script_rails_loader.rb:11: warning: Insecure world writable dir /home/tom in PATH, mode 040777
/home/tom/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/runtime.rb:211: warning: Insecure world writable dir /home/tom in PATH, mode 040777
invoke active_record
create db/migrate/20120610111033_add.rb
tom@debian6ror3:~/rails3/myproject$ RAILS_ENV=development rake db:migrate --trace
/home/tom/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.4/lib/bundler/runtime.rb:211: warning: Insecure world writable dir /home/tom in PATH, mode 040777
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Invoke rails_env (first_time)
** Execute rails_env
** Execute db:load_config
** Execute db:migrate
== Add: migrating ============================================================
– add_column(:testbooks, :name, :string)
→ 0.3212s
== Add: migrated (0.3216s) ===================================================
** Invoke db:_dump (first_time)
** Execute db:_dump
** Invoke db:schema:dump (first_time)
** Invoke environment
** Invoke db:load_config
** Execute db:schema:dump
furthermore, removing staging from the database.yml results in rake telling me that it doesnt find a staging adapter - even though when i run in ''dev mode"
@rvm i installed a user-rvm, straight from the docs. does that interfere?
@ill setup a new user and rvm again, then reusing the GEMFILE/rvmrc
How about running: “export RAILS_ENV=development ; rake about”
What does rake report for Environment in this case?
How about running: "export RAILS_ENV=development ; rake about"
What does rake report for Environment in this case?
I had forgotten rake about, what does rake about show without setting RAILS_ENV?
Colin
I’m not really too up on rvm but I wonder… Is it possible that your work environment, specifically the login shell that you are using to type commands in a terminal window, includes an alias for rake? Since staging is not one of the three default environments for RoR it had to be created with all rules for it’s use somewhere “outside” the vanilla system. What I’m thinking is that somewhere you have a runtime command file (eg.: .bashrc, .cshrc, .profile, …) that contains a line: alias rake=‘rake RAILS_ENV=staging’ To find out if this is so, type: alias rake
Rick
good points rick, it lead me to the issue: my system-user groupmembership was wrong. i added for some other reasons my system user to the root and some other groups…that messed everythign up. using a new user, same rvmrc & Gemfile works again as expected.
thx