Openstack 向Keystone模型添加列

Openstack 向Keystone模型添加列,openstack,keystone,Openstack,Keystone,我试图在keystone/identity/backends/sql.py下向用户模型添加一列。我也在使用devstack来进行设置 但是,当我运行stack.sh时,会出现以下错误: + [[ g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-net,n-cond,cinder,c-sch,c-api,c-vol,n-sch,n-novnc,n-xvnc,n-cauth,horizon,rabbit,tempest,mysql =~ tempest ]] ++

我试图在keystone/identity/backends/sql.py下向用户模型添加一列。我也在使用devstack来进行设置

但是,当我运行stack.sh时,会出现以下错误:

+ [[ g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-net,n-cond,cinder,c-sch,c-api,c-vol,n-sch,n-novnc,n-xvnc,n-cauth,horizon,rabbit,tempest,mysql =~ tempest ]]
++ get_id keystone tenant-create --name=alt_demo
+++ awk '/ id / { print $4 }'
+++ keystone tenant-create --name=alt_demo
++ echo ad1bcb522efd46ccbad8f6a47e1161a9
+ ALT_DEMO_TENANT=ad1bcb522efd46ccbad8f6a47e1161a9
++ get_id keystone user-create --name=alt_demo --pass=123456 --email=alt_demo@example.com
+++ keystone user-create --name=alt_demo --pass=123456 --email=alt_demo@example.com
+++ awk '/ id / { print $4 }'
Conflict occurred attempting to store user. (1054, "Unknown column 'tfa_enabled' in 'field list'") (HTTP 409)
++ echo
+ ALT_DEMO_USER=
+ keystone user-role-add --tenant-id ad1bcb522efd46ccbad8f6a47e1161a9 --user-id --role-id dff99958c9ec4b19b656c52f52469589
usage: keystone user-role-add --user <user> --role <role> [--tenant <tenant>]
keystone user-role-add: error: argument --user/--user-id/--user_id: expected one argument
++ failed
++ local r=2
+++ jobs -p
++ kill
++ set +o xtrace
日志的关键部分是:

试图存储用户时发生冲突。1054,“字段列表”HTTP 409中的未知列“tfa\U已启用”

其中tfa_enabled是我试图添加的列

有人知道发生了什么事吗?是否有其他代码需要修改


谢谢

据我所知,您正在尝试向表字段列表添加一个新列。您能在数据库中看到该列吗?如果没有,那么我猜是因为您没有将列添加到表中

要做到这一点,您需要添加数据库迁移。转到keystone/common/sql/migrate_repo/version并添加带有下一个编号的修改版本。添加迁移文件后,运行keystone manage db_sync,您应该能够在数据库中看到新列。嗯