我有一个包含Postgres数据库的Docker容器.它使用官方的Postgres图像,该图像具有在主线程上启动服务器的CMD条目.
我想RUN psql –U postgres postgres < /dump/dump.sql在开始收听查询之前通过运行来填充数据库.
我不明白Docker如何实现这一点.如果我RUN在CMD之后放置命令,它当然永远不会到达,因为Docker已经完成了对Dockerfile的读取.但是如果我把它放在它之前CMD,它将在psql甚至作为一个进程存在之前运行.
如何在Docker中预填充Postgres数据库?
如何从String生成有效的UUID?单独的字符串不是我正在寻找的.相反,我正在寻找类似哈希函数的东西,将任何String转换为有效的UUID.
该文章通过Scala的解释依赖注入Cake Pattern.
我对这种模式的好处的理解是,特征可以与(生产对测试)和静态检查混合在一起.
在Bonér先生的例子中,他列出了这个完成的(每个例子)代码:
UserRepositoryComponent和UserServiceComponent
我根据我的理解添加了评论.
trait UserRepositoryComponent {
val userRepository: UserRepository // stand-alone component
class UserRepository {
... // actual implementation here
}
}
trait UserServiceComponent {
this: UserRepositoryComponent => //Requires a mixed-in UserRepo*Component
val userService: UserService
class UserService {
... // actual implementation here
}
}
Run Code Online (Sandbox Code Playgroud)
我的理解是,这Service取决于注射Repository成分.
出于生产目的,可以使用以下内容将"生产" Repository组件连接到UserServiceComponent:
object ComponentRegistry extends
UserServiceComponent with
UserRepositoryComponent
{
val userRepository = new UserRepository
val userService = new …Run Code Online (Sandbox Code Playgroud) 我刚开始学习Scala的Akka库.我遇到了使用Ask模式从Actor获取响应(就像启动一个线程来完成一些计算并获得结果).
下面是我的代码,其中我使用了Ask模式,其中Timeout阻止它执行.为什么?
import akka.actor._
import akka.routing._
import akka.util.Timeout
import akka.pattern.ask
import java.math.BigInteger
import java.time.LocalDate
import scala.concurrent.duration._
import scala.concurrent.Await
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
import scala.util.{Success, Failure}
object Main extends App {
val system = ActorSystem("listRetriever")
val workerActor = system.actorOf(Props[Worker], "workerActor")
val listRetriever= new listRetriever
implicit val timeout = Timeout(10 seconds)
val future = workerActor ? new Work(date, listRetriever)
future onComplete {
case Success(result: Result) => println(result.getList())
case Failure(result) => println(result)
}
system.shutdown
}
Run Code Online (Sandbox Code Playgroud) 希望你能帮我解决这个问题.使用Akka HTTP,Slick和PosgreSQL,我正在尝试实现一个公告板作为练习.您可以在这里找到它的最新版本以获得完整的图片.
我所拥有的,简而言之:
我有这样的表:
final class Posts(tag: Tag) extends Table[Post](tag, "POSTS") with CustomColumnTypes {
def id = column[Long]("ID", O.PrimaryKey, O.AutoInc)
def threadId = column[Long]("THREAD_ID")
def secretId = column[String]("SECRET")
def pseudonym = column[String]("PSEUDONYM")
def email = column[String]("EMAIL")
def content = column[String]("CONTENT")
def created = column[DateTime]("CREATED")
final class Threads(tag: Tag) extends Table[Thread](tag, "THREADS") {
def threadId = column[Long]("THREAD_ID", O.PrimaryKey, O.AutoInc)
def subject = column[String]("SUBJECT")
Run Code Online (Sandbox Code Playgroud)
和域模型:
case class Post(
postId: Option[Long] = None,
threadId: Option[Long],
secretId: String,
pseudonym: String, …Run Code Online (Sandbox Code Playgroud) scala ×3
postgresql ×2
akka ×1
akka-http ×1
database ×1
docker ×1
java ×1
slick ×1
spray-json ×1
uuid ×1