Redmine无法登陆错误must_change_passwd解决

  • 安装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被重新创建。从而造成此问题。所以,对于一些配置资料,如果写的不是很详细,那么尽可能把每一步、每一条命令搞懂,以免带来一些棘手的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林多

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值