我正在尝试创建连接到现有MS SQL Server数据库的Catalyst项目。我得到了正确的连接字符串,它正在进行身份验证,但它找不到任何表。有人知道我可能会错过什么吗?
我替换了真实的ip地址、数据库名称、用户名和密码,但您已经明白了。
这是我运行的命令:
script\qa_utility_create.pl model DB DBIC::Schema QA_Utility::Schema create=static "db_schema=DatabaseName" "dbi:ODBC:Driver={sql server};Server=1.1.1.1,1433;Database=DatabaseName" username password当我运行此命令时,我得到以下错误:
exists "C:\strawberry\perl\site\bin\QA_Utility\lib\QA_Utility\Model"
exists "C:\strawberry\perl\site\bin\QA_Utility\t"
Dumping manual schema for QA_Utility::Schema to directory C:\strawberry\perl\site\bin\QA_Utility\lib ...
Schema dump completed.
WARNING: No tables found, did you forget to specify db_schema?
exists "C:\strawberry\perl\site\bin\QA_Utility\lib\QA_Utility\Model\DB.pm"发布于 2012-09-11 13:47:10
按照错误提示检查您的db_schema。默认值通常为"dbo“。
发布于 2013-11-28 00:56:20
因此,我在连接mySQL数据库时遇到了类似的问题,这让我抓狂了4个小时(我是Catalyst的新手)。
create脚本执行正常,但未能拾取任何表,并给出"WARNING No tables found...“
但是,这些表存在于数据库中。
在此之前,当脚本尝试连接到数据库时,我一直收到错误,在尝试了一段时间后,连接错误被清除,我认为此时一切正常(错误!)。
在这一点上,指定db_schema的建议解决方案具有误导性,因为问题更多的是连接无法返回任何有效数据的问题。因此,我认为发生的情况是它正在查找数据库,连接正常,但没有返回任何数据,因此没有表……
在对连接的参数进行了大约4个小时的尝试后,其中一个组合神奇地发挥了作用。
下面是成功的命令行...
脚本/testcatalyst_create.pl模型DB DBIC::Schema testcatalyst::Schema::perl_test create=static dbi:mysql:perl_test:user=root
导致错误的参数是最后一个参数,它指定了连接参数dbi:mysql...
之前我试过..。脚本/testcatalyst_create.pl模型数据库DBIC::Schema testcatalyst::Schema::perl_test create=dynamic dbi:mysql:perl_test,username=root
以及来自各种在线搜索的许多其他格式。":user=root“被证明是正确的格式。
希望这对其他人有帮助!
https://stackoverflow.com/questions/12361015
复制相似问题