[odb-users] Create schema error (unknown database schema '')

Posted DoubleLi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[odb-users] Create schema error (unknown database schema '')相关的知识,希望对你有一定的参考价值。

Boris Kolpackov boris at codesynthesis.com 
Fri May 31 11:13:02 EDT 2013

 


Hi Andrey,

Andrey Devyatka <an9bit at gmail.com> writes:

> Please tell me, can I use the static library in the following case:
>> [...]

This is exactly the same issue that we‘ve discussed just a few days
ago:

http://www.codesynthesis.com/pipermail/odb-users/2013-May/001286.html

Because your application doesn‘t directly reference any symbols from
library-odb.cxx, the linker ignores library-odb.o from library.a. As
a result the schema creation code does not end up in the executable.

Normally this is not a problem since most application executables
will also include code that persists objects, etc., which will
force the linker to include all the object files from the library.

In your test, however, all you do is create the schema. As mentioned
in the above email, with GNU ld you can use the --whole-archive
option to force the linker to include every object file from your
static library:


> $ g++ -o test2 main.o library.a -lodb-sqlite -lodb

g++ -o test2 main.o -Wl,-whole-archive library.a -Wl,-no-whole-archive -lodb-sqlite -lodb

Another thing that you may find useful is the ‘separate‘ value for
the --schema-format option. It will trigger the generation of the
schema creation code as a separate C++ source file (library-schema.cxx).
You can then perhaps link it directly to your executable instead of
packaging it into a static library. See the ODB compiler command line
documentation (man pages) for more information on this option.

Boris


 

from:http://www.codesynthesis.com/pipermail/odb-users/2013-May/001299.html

以上是关于[odb-users] Create schema error (unknown database schema '')的主要内容,如果未能解决你的问题,请参考以下文章

让 SQLAlchemy 在 create_all 上发布 CREATE SCHEMA

Create schema error (unknown database schema '')

CREATE SCHEMA - 定义一个新的模式

[GraphQL] Create a GraphQL Schema

Redshift 中的 CREATE SCHEMA 无法创建架构

problem during schema create,statement create sequence act_evt_log_seq