openstack team mailing list archive
-
openstack team
-
Mailing list archive
-
Message #19623
[keystone] IBM DB2 configuration
(raising to the mailing list)
Which DB2 driver are you using? I was referring to:
http://code.google.com/p/ibm-db/wiki/README
... which shows an example connection string for sqlalchemy as:
>>> db2 = sqlalchemy.create_engine('ibm_db_sa://
db2inst1:secret@xxxxxxxxxxxxx:50000/pydev')
-Dolph
On Thu, Dec 20, 2012 at 4:05 AM, Kevin-Yang <benbenzhuforever@xxxxxxxxx>wrote:
> Dolph,
>
> Really appreciated for your response.
>
> My VM configuration is:
>
> OS ->
> Red Hat Enterprise Linux Server release 6.3 (Santiago)
>
> DB2 ->
> Informational tokens are "DB2 v9.7.0.0", "s090521", "LINUXAMD6497", and Fix
> Pack "0"
> ibm_db ->
> http://pypi.python.org/packages/source/i/ibm_db/ibm_db-2.0.0.tar.gz#md5=709c576c0ec2379ca15049f5c861beb1
> ibm_db_sa ->
>
> When i changed from "ibmdb" -> "ibm_db_sa", I came with a different error
> -> Could not determine dialect for 'ibm_db_sa'.
>
> ##################################################################################
> Traceback (most recent call last):
> File "/usr/local/bin/keystone-manage", line 5, in <module>
> pkg_resources.run_script('keystone==2012.2', 'keystone-manage')
> File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 499, in
> run_script
> File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 1239, in
> run_script
> File
> "/usr/local/lib/python2.7/site-packages/keystone-2012.2-py2.7.egg/EGG-INFO/scripts/keystone-manage",
> line 28, in <module>
> cli.main(argv=sys.argv, config_files=config_files)
> File
> "/usr/local/lib/python2.7/site-packages/keystone-2012.2-py2.7.egg/keystone/cli.py",
> line 164, in main
> return run(cmd, (args[:1] + args[2:]))
> File
> "/usr/local/lib/python2.7/site-packages/keystone-2012.2-py2.7.egg/keystone/cli.py",
> line 147, in run
> return CMDS[cmd](argv=args).run()
> File
> "/usr/local/lib/python2.7/site-packages/keystone-2012.2-py2.7.egg/keystone/cli.py",
> line 35, in run
> return self.main()
> File
> "/usr/local/lib/python2.7/site-packages/keystone-2012.2-py2.7.egg/keystone/cli.py",
> line 56, in main
> driver.db_sync()
> File
> "/usr/local/lib/python2.7/site-packages/keystone-2012.2-py2.7.egg/keystone/identity/backends/sql.py",
> line 136, in db_sync
> migration.db_sync()
> File
> "/usr/local/lib/python2.7/site-packages/keystone-2012.2-py2.7.egg/keystone/common/sql/migration.py",
> line 49, in db_sync
> current_version = db_version()
> File
> "/usr/local/lib/python2.7/site-packages/keystone-2012.2-py2.7.egg/keystone/common/sql/migration.py",
> line 61, in db_version
> return versioning_api.db_version(CONF.sql.connection, repo_path)
> File "<string>", line 2, in db_version
> File
> "/usr/local/lib/python2.7/site-packages/migrate/versioning/util/__init__.py",
> line 155, in with_engine
> engine = construct_engine(url, **kw)
> File
> "/usr/local/lib/python2.7/site-packages/migrate/versioning/util/__init__.py",
> line 140, in construct_engine
> return create_engine(engine, **kwargs)
> File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/__init__.py", line
> 338, in create_engine
> File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/strategies.py",
> line 50, in create
> File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/url.py", line 123,
> in get_dialect
>
> sqlalchemy.exc.ArgumentError: Could not determine dialect for 'ibm_db_sa'.
>
> ##################################################################################
>
> --
> You received this bug notification because you are a bug assignee.
> https://bugs.launchpad.net/bugs/987121
>
> Title:
> strict constraint for database table creation
>
> Status in OpenStack Identity (Keystone):
> Fix Released
>
> Bug description:
> OpenStack claims that any type of database supporting SQLAlchemy can be
> taken as the database for OpenStack use.
> In some databases, if a column is defined as UNIQUE, it must be
> specified NOT NULL at the same time, e.g. IBM DB2, which is SQLAlchemy
> supporting. I am doing some tests with DB2 now.
> For the tables TENANT, USER and ROLE, they all have the column NAME, but
> they don't define this column NOT NULL. For database like MYSQL, it is
> permitted and keystone-manage db_sync works well. However, for database
> with strict constrains, like IBM DB2, this is not allowed. Running
> keystone-manage db_sync will prompt the error, which tells me UNIQUE and
> NOT NULL must be specified for the column NAME.
> Suggestion:
> In the code keystone/identity/backends/sql.py, we have
> name = sql.Column(sql.String(64), unique=True)
>
> If we change it into
> name = sql.Column(sql.String(64), unique=True, nullable=False),
> this issue will be solved.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/keystone/+bug/987121/+subscriptions
>
Follow ups