首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grails in Action第2版-错误生成Scaffold

Grails in Action第2版-错误生成Scaffold
EN

Stack Overflow用户
提问于 2015-10-27 14:16:20
回答 1查看 74关注 0票数 0

我一直在努力使用Groovy工具套件来教自己Grails。

GGTS 3.6.4 Grails 2.4.4 JDK 1.8.0_45

我在书中的第92页,有两个问题:

  1. 在运行Grails控制台时,我会收到以下错误: 错误:2015-09-2908:03:29,168个主要错误hbm2ddl.SchemaExport - HHH000389:不成功:如果存在错误,请更改表post drop约束FK_kpfnivid38f5bwx3yl1lxeeae,如果存在错误,则为2015-09-29 :03:29,168主要错误hbm2ddl.SchemaExport -表"POST“未找到;SQL语句:如果存在42102-176个错误区FK_kpfnivid38f5bwx3yl1lxeeae -209-09-2908:03:29,168个主要错误hbm2ddl.SchemaExport - HHH000389:不成功:如果存在错误的话,alter post_tags drop约束FK_rf0kr7eqk5xoalmc4gigdwg3p :03:29,168个主错误hbm2ddl.SchemaExport -表"POST_TAGS“未找到;SQL语句:如果存在42102-176个错误区post_tags drop约束FK_rf0kr7eqk5xoalmc4gigdwg3p (如果存在42102-176个错误)-09-2908:03:29,168个主要错误hbm2ddl.SchemaExport - HHH000389:不成功:如果存在错误的话,alter post_tags drop约束FK_n8k2owli9ecanh4phj01mddvv :如果存在错误,则更改表post_tags删除约束FK_n8k2owli9ecanh4phj01mddvv:03:29,168个主错误hbm2ddl.SchemaExport -表"POST_TAGS“未找到;SQL语句:如果存在42102-176个错误post_tags drop约束FK_n8k2owli9ecanh4phj01mddvv (如果存在42102-176个错误)-209-09-2908:03:29,168个主要错误hbm2ddl.SchemaExport - HHH000389:不成功:如果存在错误,则更改表配置文件删除约束FK_c1dkiawnlj6uoe6fnlwd6j83j,如果存在错误,则为:2005-09:03:29,168个主错误hbm2ddl.SchemaExport -表“配置文件”未找到;SQL语句:如果存在42102-176个错误区FK_c1dkiawnlj6uoe6fnlwd6j83j -209-09-2908:03:29,168个主要错误hbm2ddl.SchemaExport - HHH000389:不成功:如果存在错误,请更改表标签拖放约束FK_151ooxskkpn49blwsh7mjwysx,如果存在错误,则更改表标签拖放约束FK_151ooxskkpn49blwsh7mjwysx:03:29,168个主错误hbm2ddl.SchemaExport -表“标签”未找到;SQL语句:如果存在42102-176个错误区FK_151ooxskkpn49blwsh7mjwysx -209-09-2908:03:29,168个主要错误hbm2ddl.SchemaExport - HHH000389:不成功:如果存在错误的话,alter user_user drop约束FK_s7pwk9swjfqs0w7ub9tt5s47y :03:29,168个主错误hbm2ddl.SchemaExport -表"USER_USER“未找到;SQL语句:如果存在42102-176个错误user_user drop约束FK_s7pwk9swjfqs0w7ub9tt5s47y (如果存在42102-176个错误)-99-2908:03:29,168个主要错误hbm2ddl.SchemaExport - HHH000389:不成功:如果存在错误,则更改表user_user删除约束FK_1hl85r166108l1vgkxycm3cq0 :03:29,168个主错误hbm2ddl.SchemaExport -表" user_user“未找到;SQL语句:如果存在42102-176,则更改表user_user删除约束FK_1hl85r166108l1vgkxycm3cq0

我的猜测是,问题在于我没有将DataSource.groovy文件更改为'update'而不是'create-drop',而是将DB从内存中取出。

我还没有测试这个理论,因为Grails控制台还在运行,这导致了我的第二个错误。

  1. 我们被告知使用以下命令生成4个控制器: 创建-脚手架-控制器com.grailsinaction.User创建-支架-控制器com.grailsinaction.Profile创建-支架-控制器com.grailsinaction.Post创建-脚手架-控制器com.grailsinaction.Tag

每次,我都会收到一个"EOF预期“错误:

代码语言:javascript
复制
1 compilation error:

expecting EOF, found 'com' at line: 1, column: 28

这两个错误似乎没有关系,我不只是跳过它,我很想了解发生了什么.

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2015-10-27 20:17:00

DataSource.groovy文件到'update'而不是'create-drop',并将DB从内存中取出。

这是假设您已经将数据源配置为连接到真正的数据库。

我可以看到hbm2ddl是上面的日志,对于内存DB中的内部日志来说,它应该是'create-drop'

DataSource.groovy文件到'update'告诉您的应用程序只更新现有表,这将不会创建任何新表。

在实际应用程序连接到MySQL的情况下。此设置将等同于手动更新数据库和创建开发中设计的任何新表。

DataSource.groovy文件到'create-drop'的名称是这样的,它将创建新的表和删除条目,因此在开发环境中,甚至在测试等其他环境中,您可能很乐意将它放在create上,让grails生成表。

需要注意的唯一一件事是,如果您假设您有某个域类,并且有一个

代码语言:javascript
复制
Boolean isValid

static constraints { 
 isValid(nullable:false)
}

如果稍后决定它实际上应该是空的,在MySQL示例中,您将不得不登录并手动调整它,因为它已经创建了。在内联内存(您的例子)中,谁关心下一个run= next。

关于:create-scaffold-controller

这是一个新的,http://grails.github.io/grails-doc/2.4.4/ref/Command%20Line/create-scaffold-controller.html它看起来是正确的,你正在执行什么。

但是,如果我正确地理解了(我还没有开始深入研究该命令的作用),就可以简化或扩展这个范围,但是手动执行这样的操作肯定不会太远。

grails create-controller com.grailsinaction.User

然后转到user类并执行以下操作:

代码语言:javascript
复制
class UserController {
  static scaffold = true   
}

为每个文档保存重复,然后继续使用这些文档。

在这里了解有关脚手架概念的更多信息:

http://grails.asia/grails-tutorial-for-beginners-scaffolding/

http://tutorials.techmytalk.com/2014/07/19/grails-scaffolding-controllers-and-views/

另外,如果您使用的是ggts,请用鼠标右键遍历域类,选择grails,生成控制器和视图。

这将是脚手架的替代方案,脚手架就是脚手架提供给您的动态内容,然后生成,供您使用和编辑。这是进入grails的好方法,因为它为您提供了您可以看到/编辑和学习的东西。

脚手架只是隐藏了所有这些,并且是隐藏生成的东西的整洁的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33370389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档