Apache Superset 如何升级到 1.4


Apache Superset 1.4.2 已经出来有一段时间了,我的 Apache Superset Portable 还是 1.3.2 版本(我打算等1.5版本正式发布才更新便携版本,因为DuckDB的支持将在该版本正式发布),尝试升级下,
pip install -U apache-supersetsuperset db upgradesuperset db init
然后报错了,
ValueError: Invalid decryption key
不合法的解密键值,这是什么鬼?网上搜索很久,才找到了原因,
17984[1]: Default Flask SECRET_KEY has changed for security reasons. You should always override with your own secret. Set PREVIOUS_SECRET_KEY (ex: PREVIOUS_SECRET_KEY = "\2\1thisismyscretkey\1\2\e\y\y\h") with your previous key and use superset re-encrypt-secrets to rotate you current secrets
因为安全原因, Flask 修改了 SECRET_KEY 默认值, 这要求我们重置我们的密码,解决报错的办法是,
把以前的 SECRET_KEY 赋值给 PREVIOUS_SECRET_KEY
执行命令 superset re-encrypt-secrets 重置当前的密码。
superset re-encrypt-secrets -a '\2\1thisismyscretkey\1\2\e\y\y\h'
然后再继续升级操作
superset db upgradesuperset db init
如果还有问题,也许你需要重置 dbs 的 password 和 encrypted_extra 为 null
update dbs set password = null, encrypted_extra = null where id=1
上面是官方给的解决办法, 下面是网上给的另外一个解决办法,
修改 superset_config.py 里的 SECRET_KEY
重置 dbs 的 password 和 encrypted_extra 为 null
update dbs set password = null, encrypted_extra = null where id=1
superset db upgrade
superset init
superset run
登录 Superset, 访问 Data > Databases 修改密码(如果是 SQLite, 则这步可以略过)
我最开始就是使用的方法二,后来发现了方法一后,经测试一样 OK。
参考资料
[1]
17984: https://github.com/apache/superset/pull/17984
到顶部