尝试通过执行以下操作更新生产mysql数据库:rvmsudo RAILS_ENV = production rake db:schema:使用rails 3.1.0在ubuntu 10.04上加载。更新的目的是添加表。 mysql数据库已经存在。以下是跟踪错误:
dtt@ubuntu:/var/www/mylab/current$ rvmsudo RAILS_ENV=production rake db:schema:load --trace
** Invoke db:schema:load (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:schema:load
-- create_table("categories", {:force=>true})
rake aborted!
Mysql2::Error: DROP command denied to user 'dtt'@'localhost' for table 'categories': DROP TABLE `categories`
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0/lib/active_record/connection_adapters/mysql2_adapter.rb:283:in `query'
然而,在没有RAILS_ENV =生产的情况下运行rake命令没有错误。但它只创建了开发数据库。
有关错误的任何想法?感谢。
答案 0 :(得分:2)
您在production
中为config/database.yml
环境配置的用户无权在生产环境中执行必要的操作。您需要更改MySQL设置或使用其他用户。