水果车:配置

故事被切成薄片,设定了目标,现在该轮到购物车了。

水果车:配置

配置和项目启动对我来说总是很尴尬。 您在项目进行期间只启动了一次,因此使代码准备就绪所需执行的所有步骤都不在我的肌肉记忆或大脑记忆中。 毕竟,我并不是一直在启动新项目。

但是,我们必须开始。 首先,我们要做的是:

  • Bootstrapped a Gradle project using https://start.spring.io/ We added the JPA, Devtools, and Postgres dependencies, which you can search for on the site. We will be using MyBatis to run the migrations, but not as a mapper; that will be handled "under the hood" by the JPA repository library.

  • Initiated a Git repo (remote and local) for Fruit Cart and performed our first commit of the initial codebase.

  • Installed and ran a Postgres server. Followed these instructions to create a new database 'fruitcart' with superuser 'fruitcart':

启动postgres服务器并设置数据库 *检查水果车超级用户是否存在 运行“ psql -c'\ du'” *如果用户不存在 运行“ c”(无需设置密码,默认为“ postgres”) *创建数据库Fruitcart 运行“ ./gradlew initdb” *使用列ID,说明和列为水果表创建迁移 名称。 运行“ ./gradlew createdb” *添加一些数据 run "psql -h localhost -U fruitcart --password -d fruitcart < db/backup.sql"

  • 运行一个干净的版本,看是否有任何错误(剧透警报:数据库配置不正确)。创建了Gradle任务以在干净的构建中初始化和创建我们的数据库。 在正确建立数据库并在端口:5432上运行之后,我们准备开始我们的第一个测试。

但是,让我们备份一秒钟。 让我们来谈谈外卖。

水果车:配置

首先,必须在数据库环境所在的目录中的命令行中创建并运行迁移。 我以前确实知道这一点,但是需要重复一遍,因为我通常会忘记它(嘿,这个博客对我来说也是一种资源)。

命令是: ./mybatis/bin/migrate新的迁移名称

这应该在scripts目录中创建一个文件(名称以时间戳开头-迁移按照创建的顺序运行)。 使用它来添加SQL语句。

水果车:配置

第二:如果处理正确,.gitignore是您的朋友。

因此,有些文件我们不想出现在我们的远程仓库中。 我通常认为.gitignore是隐藏秘密的便捷位置,但实际上,我认为它使我们可以隐藏项目的某些部分,这些部分特定于我们的本地版本,而对于在其他环境(例如那些环境)中构建项目不是必需的 跟踪我们工作区或构建中的更改。

We used https://gitignore.io/ to generated the correct .gitignore file for IntelliJ, our IDE for this project. It's a little overkill: we don't have Jira or the Crashalytics plugin enabled (pure IntelliJ CE level for us), but it gives us a good sense of what should be included. So we just copied and pasted that into our very own .gitignore. And all is well.

好吧,对杰夫而言,不多。

水果车:配置

.idea文件之一-workspace.xml-保留从.gitignore转义。 他将尝试提交/推送他的代码,这将导致失败:他的workspace.xml文件中的更改没有被跟踪。 但是,当然有,当然也不会被跟踪:这是一个文件,可跟踪他在IDE中的位置以及工作区特有的其他内部结构。 由于某些原因,.gitignore不会告诉git该文件不应被跟踪。

事实证明,如果您已经提交了该文件并将其推送到远程存储库中,它将困扰您。 用杰夫的话说,“这是一件令人讨厌的事”。

解决方案:删除.idea文件夹(它仍然会由IntelliJ自动生成),提交更改,然后将.idea / workspace.xml添加到.gitignore中,然后添加/提交/推送所有内容。

tl; dr:如果文件已经提交到您的仓库中,则无论您是否将其放入.gitignore中,都会自动跟踪该文件

水果车:配置

第三:您的Postgres DB可能需要手动设置SQL。

我们的构建失败了。 原来我们的数据库没有被创建。 考虑到Postgres正在运行,这太奇怪了(我认为它总是在我的机器上;那个和Docker一起)。 但是没有创建数据库。 只是不在那里。

事实证明,我们必须创建一个Shell脚本才能实际创建数据库,并且当我们创建一个所有者(水果推车)时,它实际上并不存在。

我们的shell脚本使createdb函数很好用,我们在构建中执行了该任务,但是数据库实际上会失败,因为没有超级用户,甚至没有拥有写权限的用户。 基本上,我们没有按照本文开头的前两个*指示进行操作。 一旦有了,我们的水果车便迅速存在了。

水果车:配置

现在所有这些花费了比我们想象的更长的时间。 这将成为我们的一个持续主题:我们加倍努力,进入互联网虫洞,并花大量时间进行探索。 我们查看了Jetty发生的情况,无数次失败后将其丢弃。 我们花了很长时间来处理workspace.xml。 我们修补了Postgres。 越来越好了。 但是,即使在学习时也很难知道要问什么问题。 当您不知道不知道的地方时,甚至都不知道在哪里看。

毕竟,这就是什么:学习。

from: https://dev.to//sleepycecy/fruit-cart-config-31f6