0

我正在尝试Userkeystone/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我要添加的列在哪里。

有谁知道发生了什么?我还需要修改其他代码吗?

谢谢!

4

1 回答 1

0

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

这样做的方法是您需要添加数据库迁移。进入 keystone/common/sql/migrate_repo/version 并添加下一个数字的修改版本。添加迁移文件后运行“keystone-manage db_sync”,您应该能够看到数据库中的新列。HTH。

于 2014-02-10T11:30:19.447 回答