- 安装Redmine及一些插件,配置DB文件后,插件可以正常显示,但admin账户无法登陆。
- 查看log文件,报错大体如下:
NoMethodError (undefined method `must_change_passwd?' for #<User:0x00000003f08018>):
app/models/user.rb:327:in `must_change_password?'
app/controllers/application_controller.rb:93:in `start_user_session'
app/controllers/application_controller.rb:182:in `logged_user='
app/controllers/account_controller.rb:256:in `successful_authentication'
app/controllers/account_controller.rb:203:in `password_authentication'
app/controllers/account_controller.rb:189:in `authenticate_user'
app/controllers/account_controller.rb:40:in `login'
-
尝试1:因为说未定义must_change_passwd方法,所以让调用该方法的地方,不调用此方法。
-
结果1:肯定是失败了,并且无限循环的输出一些奇怪的log。
-
尝试(目前看来似乎是正确的):执行如下语句
# 执行路径大体应该是redminex.x.x/apps/redmine/hotdocs/
# 总之就是在配置redmine插件时,执行rake命令的路径
RAILS_ENV=production bundle exec rake db:migrate:reset
- 原因:应该是配置db后,没有去更新一些访问db的规则。即没有更新db/schema.rb文件。
- 更新1:BZ是在本地配一个Redmine,执行“RAILS_ENV=production bundle exec rake db:migrate:reset”后。服务器那边的Redmine无法登陆。原因是数据库中,对应redmine(prodution环境)的db重新创建,导致原服务器redmine使用的production环境的db变化。
- **更新2:**使用上述方法,在移植的redmine时,如果两个redmin版本不相同。会造成生成的对应production环境的db文件不匹配,导致redmine部分页面错误。修复Redmine(主服务器)的方法为,在主服务器redmine对应目录(参上)执行下述命令:
# 该命令会drop掉对应production环境的db,然后重新create
# 执行该命令时,如果因权限命令报错,修改配置文件config/database.yml中,对应prodcution环境db的配置,确保配置的用户有权限修改DB
# 之后,看情况,赋予相应用户操作production对应db的各种表的操作权限
RAILS_ENV=production bundle exec rake db:migrate:reset
- 注意:其实在配置本地redmine(production环境的db)与服务器redmine(production环境db)同名,导致该db被重新创建。从而造成此问题。所以,对于一些配置资料,如果写的不是很详细,那么尽可能把每一步、每一条命令搞懂,以免带来一些棘手的问题。