我正在尝试在User
下的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
日志的关键部分是:
Conflict occurred attempting to store user. (1054, "Unknown column 'tfa_enabled' in 'field list'") (HTTP 409)
其中tfa_enabled
是我要添加的列。
有谁知道发生了什么事?我还需要修改一些其他代码吗?
谢谢!
答案 0 :(得分:0)
据我所知,您正在尝试向表格字段列表添加新列。你能看到数据库中的列吗?如果没有,那么我猜它是因为你还没有将列添加到表中。
执行此操作的方法是您需要添加数据库迁移。转到keystone / common / sql / migrate_repo / version并使用下一个数字添加修改后的版本。添加迁移文件后运行&#34; keystone-manage db_sync&#34;并且您应该能够在数据库中看到新列。 HTH。