mysql - Rails 3 - Beta environment trying to create/migrate a blank database name -
my app works on dev , trying deploy new slice. environment called 'beta'. seems working okay except rake keeps trying pass blank '' database name, whether called in capistrano or manually. appreciate i'm not sure next. googling has turned nothing.
thank you, rabbit on rails
ops@rws:~/sites/darkserve/current$ rake db:drop (in /home/ops/sites/darkserve/releases/20110218183444) couldn't drop : #<activerecord::statementinvalid: mysql2::error: incorrect database name '': drop database if exists ``> ops@rws:~/sites/darkserve/current$ rake db:create (in /home/ops/sites/darkserve/releases/20110218183444) exists * executing "cd /home/ops/sites/darkserve/releases/20110218183444; bundle exec rake rails_env=beta db:migrate" servers: ["173.203.106.112"] [173.203.106.112:30000] executing command *** [err :: 173.203.106.112:30000] rake aborted! *** [err :: 173.203.106.112:30000] *** [err :: 173.203.106.112:30000] mysql2::error: no database selected: show tables *** [err :: 173.203.106.112:30000] *** [err :: 173.203.106.112:30000] *** [err :: 173.203.106.112:30000] (see full trace running task --trace) *** [err :: 173.203.106.112:30000] ** [out :: 173.203.106.112:30000] (in /home/ops/sites/darkserve/releases/20110218183444)
i have tried obvious things massaging database.yml , beta.rb files, no avail. mysql works , right user created.
common: &mysql adapter: mysql2 host: localhost encoding: utf8 username: root password: pool: 5 timeout: 5000 reconnect: true development: <<: *mysql database: darkserve_development test: <<: *mysql database: darkserve_test beta: <<: *mysql database: darkserve_beta production: <<: *mysql database: darkserve_prod ops@rws:~/sites/darkserve/current$ mysql -u root welcome mysql monitor. commands end ; or \g. mysql connection id 57 server version: 5.1.41-3ubuntu12.9 (ubuntu) type 'help;' or '\h' help. type '\c' clear current input statement. mysql> show databases; +--------------------+ | database | +--------------------+ | information_schema | | mysql | +--------------------+ 2 rows in set (0.00 sec) mysql> #beta.rb darkserve::application.configure # settings specified here take precedence on in config/environment.rb # production environment meant finished, "live" apps. # code not reloaded between requests config.cache_classes = true # full error reports disabled , caching turned on config.consider_all_requests_local = false config.action_controller.perform_caching = true # specifies header server uses sending files config.action_dispatch.x_sendfile_header = "x-sendfile" # nginx: # config.action_dispatch.x_sendfile_header = 'x-accel-redirect' # if have no front-end server supports x-sendfile, # comment out , rails serve files # see in log (default :info) # config.log_level = :debug # use different logger distributed setups # config.logger = sysloglogger.new # use different cache store in production #config.cache_store = :mem_cache_store # disable rails's static asset server # in production, apache or nginx config.serve_static_assets = false # enable serving of images, stylesheets, , javascripts asset server # config.action_controller.asset_host = "http://assets.example.com" # disable delivery errors, bad email addresses ignored # config.action_mailer.raise_delivery_errors = false config.action_mailer.delivery_method = :smtp # enable threaded mode # config.threadsafe! # enable locale fallbacks i18n (makes lookups locale fall # i18n.default_locale when translation can not found) config.i18n.fallbacks = true # send deprecation notices registered listeners config.active_support.deprecation = :notify end ops@rws:~/sites/darkserve/current$ ruby -v ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-linux] ops@rws:~/sites/darkserve/current$ rails -v rails 3.0.4 ops@rws:~/sites/darkserve/current$ irb ruby-1.9.2-p136 :001 > require 'mysql' => true
i switched ruby 1.9 , discovered same error. think bug yaml parser. seems fail include other keys when reference expanded.
consider following file: test.yml
common: &default user_name: 'test_user' failed: <<: *default database: 'ignored db name' success: user_name: 'test_user' database: 'db name'
now @ ruby prompt:
puts yaml.load_file('test.yml').inspect {"common"=>{"user_name"=>"test_user"}, "failed"=>{"user_name"=>"test_user"}, "success"=>{"user_name"=>"test_user", "database"=>"db name"}}
to fix make sure boot.rb selects 'syck', believe, has been around while.
require 'rubygems' # set gems listed in gemfile. env['bundle_gemfile'] ||= file.expand_path('../../gemfile', __file__) require 'yaml' yaml::engine.yamler= 'syck' require 'bundler/setup' if file.exists?(env['bundle_gemfile'])
Comments
Post a Comment