在安装Rainbond的时候, 总是出现 ./entrypoint.sh if [ “$1” = “debug” -o “$1” = “bash” ];then执行报错, 一度怀疑shell脚本出了问题。
报错如下:
刚刚使用Rainbond,自己也有点闷,不知如何下手,在Rainbond官方工程师的操作帮助下,渐渐熟悉了Rainbond的内部结构。
发现原来是初始化数据库时候, django.db.utils.OperationalError: (1071, ‘Specified key was too long; max key length is 767 bytes’),
Rainbond使用了 超过阿里云RDS默认大小的索引, 解决办法是把阿里云rds超长索引打开
最后提一点建议:
if [ "$ui_num" == 1 ]; then status=$(docker exec rbd-app-ui ./entrypoint.sh init >/dev/null 2>&1 && echo 0 || echo 1 ) [ "$status" -eq 0 ] && break || ( echo "migrate ui try $i" >> /tmp/migrate.ui.log docker exec rbd-app-ui python ./entrypoint.sh init >> /tmp/migrate.ui.log ((fail_num+=1)) ) else
官方这段脚本, 写的有点不明白什么意思, 执行数据库初始化失败后, 还用python 在执行一遍,会让人误以为初始化脚本出的问题, 希望可以优化