local reposin 和 origin reposin 之间没有区别 git。但是别人克隆项目的时候在H2DB里面找不到table?

No difference between local and the origin reposin git. But the table is not found in H2DB when someone else cloned the project?

我正在使用带有 java 的 play framework 2.4 来开发 Web 应用程序,并且我在项目中包含了一个嵌入式 H2 DB 文件。该文件包含在一个名为“db”的单独文件夹中。我必须使用 git 强制添加将此文件添加到 git,因为 git 忽略了此文件夹中的内容。该代码在我的本地机器上运行良好,在我从原点拉出后它说已经是最新的(我的本地回购和原点的回购没有区别)。但是当其他人克隆和 运行 这个项目时,它说 table 'SOMENAME' 在数据库中找不到(数据库连接没问题)。并且也找不到该克隆项目和原始仓库之间的任何区别。但是,当我将本地计算机中的项目复制到该计算机时,它 运行 没有问题。我真的很困惑,这个问题的原因可能是什么?两台机器使用相同的播放版本和相同的 OS.

我也有过同样的经历。 play 版本 1.4 之后,当您尝试连接到 h2 db 时,它会自动创建一个 mv db。然后它读取这个空的 mv db,而不是你的 h2 db。这就是为什么它说找不到您的 table。不显示原始存储库和克隆存储库之间的任何差异的原因是 git 忽略了 db 文件夹中的内容。 mv db创建后,mv db被git忽略。您可以将“IFEXISTS=TRUE”添加到您的数据库 URL.Then Ebean 仅当数据库存在时才连接到数据库。通过这样做,您可以避免自动创建 mv db。