我目前正在使用带有eclipse的Grails工具套装。我创建了一个应用程序,定义了一个域类,我的应用程序运行良好。我的问题是,当我部署war文件时,数据库是如何存储的?我是否将数据源文件链接到sql数据库URL。如果是这样,Grails第一次运行我的应用程序时为您创建数据库?你现在可能已经理解了我的问题。这是如何运作的?
我查看了这个文档,无法找到grails与创建我定义的数据库的关系。
http://grails.org/doc/latest/guide/conf.html#dataSourcesAndEnvironments
答案 0 :(得分:2)
首先,除了H2之外,Grails不会设置您的数据库。您需要设置数据库,并配置数据源以连接到数据库。
也就是说,Grails将根据您的Domain类管理(尽可能)数据库的架构。这是dbCreate
设置为" 更新"时的默认行为在DataSource.groovy
文件中。
我建议您阅读有关数据库配置和设置的精彩在线documentation。
如果您需要这种级别的控制和灵活性,您还可以使用更多高级工具,例如database migration plugin。
答案 1 :(得分:1)
在DataSource.groovy(在conf目录下),您可以找到H2 db的定义。你可以配置一个mysql db,oracle,mongodb等数据库。 您还可以指定在dev,test和prod环境中使用哪个数据库。
答案 2 :(得分:1)
运行默认的rails应用时。 grails环境为您的应用程序创建内存数据库。每次重新启动项目时都会创建它。
如果你想拥有像mysql,mongodb等持久数据库。 你需要做的是(例如mysql)
在BuildConfig.groovy中添加一个mysql依赖项,如runtime 'mysql:mysql-connector-java:5.1.27'
Add Database and driver settings in DataSource.groovy
。现在,您可以为不同的环境(即prod,test和dev模式)提供不同的数据库。您可以通过对数据库进行全局设置或分别为每个模式定义设置来完成此操作。
要从正在运行的应用程序查看数据库,您可以使用链接http://localhost:8080/app/dbconsole
只输入数据库密码和用户名。您可以在此处执行所有与数据库相关的查询。如果你在内存数据库中使用grails default,只需使用命令输入数据库中DataSource.groovy中的默认值