当我尝试为Airflow 1.10.10创建只读用户时,user.commit()不起作用

2024-04-26 17:55:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用MySQL数据库,并将Airflow 1.10.5升级到1.10.10,我还想为其添加一个用户只读访问的功能。尝试使用https://airflow.apache.org/docs/stable/security.html创建新用户,但当我使用sudo docker container exec用ssh连接到docker容器时-it<;集装箱名称>/bin/bash并执行

# navigate to the airflow installation directory
$ cd ~/airflow
$ python
Python 2.7.9 (default, Feb 10 2015, 03:28:08)
Type "help", "copyright", "credits" or "license" for more information.
>>> import airflow
>>> from airflow import models, settings
>>> from airflow.contrib.auth.backends.password_auth import PasswordUser
>>> user = PasswordUser(models.User())
>>> user.username = 'new_user_name'
>>> user.email = 'new_user_email@example.com'
>>> user.password = 'set_the_password'
>>> session = settings.Session()
>>> session.add(user)

everything runs fine but afetr this wjhen I run 
>>> session.commit()

引发错误: sqlalchemy.exc.InvalidRequestError:由于刷新期间的前一个异常,此会话的事务已回滚。要使用此会话开始新事务,请首先发出Session.rollback()。最初的异常是:(sqlite3.OperationalError)没有这样的表:users [SQL:在用户(用户名、电子邮件、超级用户、密码)中插入值(?、、?、?)] [参数:(‘只读用户’、‘只读用户’)_user@gmail.com“,0,”$2b$12$xytxjyzwkieva7ekdqgqe8kn7v84dvuw/jqQ.8B/bulOdMcWuwRa')] (此错误的背景信息:http://sqlalche.me/e/e3q8)(此错误的背景信息:http://sqlalche.me/e/7s2a

有人能告诉我为什么会这样吗??我们可以做些什么呢


Tags: thedocker用户fromimportauthnewsettings
1条回答
网友
1楼 · 发布于 2024-04-26 17:55:56

当数据库中的模型不可用于执行事务时,通常会发生此错误。这可能是initdb根本没有运行initdb尚未完全完成(导致某些竞争条件;执行Python的上下文无法访问已运行initdb的服务

请务必完成这些操作,并让我们知道问题是否仍然存在

相关问题 更多 >