具有永久数据库的SAP CAP项目:错误-缺少localized_ *表

2020-08-16 01:00发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我正在尝试运行SAP CAP示例中提供的示例书店应用程序( https: //github.com/SAP-samples/cloud-cap-samples )。 使用默认的内存sqlite数据库(默认设置)时,它将按预期运行。 如果我尝试更改设置以使用持久性sqlite数据库,则服务将引发以下形式的错误:

 SQLITE_ERROR:没有这样的表:localized_ <服务名称> _ <实体名称> 
 http://localhost:4004/browse/Books


 
  500 
  SQLITE_ERROR:没有这样的表:localized_CatalogService_Books 
 
 

以下是我所做工作的详细步骤。 非常感谢您对可能出问题的地方以及如何解决问题有任何见解。 谢谢!

"> https://github.com/SAP-samples/cloud- 上限样本

 cd cloud-cap-samples/
 我
 npm运行书店
 

默认配置在内存中运行sqlite数据库。 为了使用永久数据库,请进行以下更改:

 cd包/书店
 cds部署-至sqlite:my.db
 

cds deploy命令将创建一个持久数据库,并使用示例CSV数据文件填充必要的表。 它还使用cds配置更新package.json,以使用持久数据库而不是默认的内存数据库。 您应该看到如下控制台消息:

>从db/data/sap.capire.bookshop-Authors.csv中填充sap.capire.bookshop.Authors
  >从db/data/sap.capire.bookshop-Books.csv填充sap.capire.bookshop.Books
  >从db/data/sap.capire.bookshop-Books_texts.csv中填充sap.capire.bookshop.Books_texts
  >从db/data/sap.capire.bookshop-OrderItems.csv中填充sap.capire.bookshop.OrderItems
  >从db/data/sap.capire.bookshop-Orders.csv中填充sap.capire.bookshop.Orders
  >从db/data/sap.common-Currencies.csv填充sap.common.Currencies
  >从db/data/sap.common-Currencies_texts.csv中填充sap.common.Currencies_texts
/>已成功部署到./my.db
  >更新了./package.json
 

package.json应该具有更新的" cds"部分,如下所示-

" cds":{
     "要求":{
       "D b": {
         " kind":" sqlite",
         " model":" db/schema.cds",
         "凭据":{
           "数据库":" my.db"
         }
       }
     }
   } 

现在,如果我们触发命令" cds run",则cds应该开始使用持久性数据库进行服务。

 cds运行
 [cds]-连接到数据源-sqlite:my.db
 [cds]-在/admin上提供AdminService
 [cds]-在/browse处提供CatalogService-具有impl:srv/cat-service.js
 [cds]-从以下位置加载的服务定义:


   app/index.cds
   srv/admin-service.cds
   srv/cat-service.cds
   app/admin/fiori-service.cds
   应用程序/浏览/fiori-service.cds
   应用程序/订单/fiori-service.cds
   app/common.cds
   db/schema.cds
   ../../node_modules/@sap/cds/common.cds


 [cds]-发射时间:1303.835ms
 [cds]-服务器在http://localhost:4004 
上监听

现在,如果您转到链接http://localhost:4004/browse/Books,则会显示以下错误:

 <错误xmlns =" http://docs.oasis-open.org/odata/ns/metadata">
  500 
  SQLITE_ERROR:没有这样的表:localized_CatalogService_Books 
 
 

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我正在尝试运行SAP CAP示例中提供的示例书店应用程序( https: //github.com/SAP-samples/cloud-cap-samples )。 使用默认的内存sqlite数据库(默认设置)时,它将按预期运行。 如果我尝试更改设置以使用持久性sqlite数据库,则服务将引发以下形式的错误:

 SQLITE_ERROR:没有这样的表:localized_ <服务名称> _ <实体名称> 
 http://localhost:4004/browse/Books


 
  500 
  SQLITE_ERROR:没有这样的表:localized_CatalogService_Books 
 
 

以下是我所做工作的详细步骤。 非常感谢您对可能出问题的地方以及如何解决问题有任何见解。 谢谢!

"> https://github.com/SAP-samples/cloud- 上限样本

 cd cloud-cap-samples/
 我
 npm运行书店
 

默认配置在内存中运行sqlite数据库。 为了使用永久数据库,请进行以下更改:

 cd包/书店
 cds部署-至sqlite:my.db
 

cds deploy命令将创建一个持久数据库,并使用示例CSV数据文件填充必要的表。 它还使用cds配置更新package.json,以使用持久数据库而不是默认的内存数据库。 您应该看到如下控制台消息:

>从db/data/sap.capire.bookshop-Authors.csv中填充sap.capire.bookshop.Authors
  >从db/data/sap.capire.bookshop-Books.csv填充sap.capire.bookshop.Books
  >从db/data/sap.capire.bookshop-Books_texts.csv中填充sap.capire.bookshop.Books_texts
  >从db/data/sap.capire.bookshop-OrderItems.csv中填充sap.capire.bookshop.OrderItems
  >从db/data/sap.capire.bookshop-Orders.csv中填充sap.capire.bookshop.Orders
  >从db/data/sap.common-Currencies.csv填充sap.common.Currencies
  >从db/data/sap.common-Currencies_texts.csv中填充sap.common.Currencies_texts
/>已成功部署到./my.db
  >更新了./package.json
 

package.json应该具有更新的" cds"部分,如下所示-

" cds":{
     "要求":{
       "D b": {
         " kind":" sqlite",
         " model":" db/schema.cds",
         "凭据":{
           "数据库":" my.db"
         }
       }
     }
   } 

现在,如果我们触发命令" cds run",则cds应该开始使用持久性数据库进行服务。

 cds运行
 [cds]-连接到数据源-sqlite:my.db
 [cds]-在/admin上提供AdminService
 [cds]-在/browse处提供CatalogService-具有impl:srv/cat-service.js
 [cds]-从以下位置加载的服务定义:


   app/index.cds
   srv/admin-service.cds
   srv/cat-service.cds
   app/admin/fiori-service.cds
   应用程序/浏览/fiori-service.cds
   应用程序/订单/fiori-service.cds
   app/common.cds
   db/schema.cds
   ../../node_modules/@sap/cds/common.cds


 [cds]-发射时间:1303.835ms
 [cds]-服务器在http://localhost:4004 
上监听

现在,如果您转到链接http://localhost:4004/browse/Books,则会显示以下错误:

 <错误xmlns =" http://docs.oasis-open.org/odata/ns/metadata">
  500 
  SQLITE_ERROR:没有这样的表:localized_CatalogService_Books 
 
 
付费偷看设置
发送
7条回答
哎,真难
1楼 · 2020-08-16 01:39.采纳回答

您可以将package.json中的`model`属性更改为

" model":[" db"," srv"] 

,然后重试吗?

Nir深蓝
2楼-- · 2020-08-16 01:31

很好的问题,格式正确,细节很多。 干得好!

Haoba3210
3楼-- · 2020-08-16 01:34

亲爱的Ashish,

感谢您报告此问题,似乎是一个错误!
您使用的是哪个版本的@@ sap/cds`? 您可以通过键入" cds -v"来找到此信息。

我用@ sap/cds:3.21.3对其进行了测试,并且工作正常。

感谢和问候,
大卫

bbpeas
4楼-- · 2020-08-16 01:27

您好 DJ Adams ,谢谢! 从您最近在Youtube上发现的现场录音中学到了很多东西。 不能对您所做的努力感到足够的感谢!

Baoming ROSE
5楼-- · 2020-08-16 01:46

而不是cds run命令,请尝试以下命令

npx nodemon -e cds,csv,properties -w app -w db -x" cds deploy && cds run"

三十六小时_GS
6楼-- · 2020-08-16 01:33

Hi @ 克里斯蒂安·格奥尔基

问题在于此package.json文件。 我在json中删除了这些行,并且一切运行良好:

" requires":{" db":{" kind":" sqlite"," model":[" db"," srv"]," credentials":{" database":" sqlite.db"} }}

小灯塔
7楼-- · 2020-08-16 01:34

一些其他信息:

如果使用以下指南将同一应用程序部署到SAP HANA云: https: //cap.cloud.sap/docs/advanced/deploy-to-cloud ,该服务可以正常运行。 将持久数据库用作sqlite时,似乎出现了此问题。

一周热门 更多>