我有一个包含两个主要Java应用程序的项目,这些应用程序使用八个postgres数据库,那么docker-compose中是否有一种方法可以构建八个不同的数据库,以便每个数据库具有不同的所有者和密码?我什至可以在docker-compose中做到这一点吗?
例如:
services:
postgresql:
build: db/.
ports:
- "5432:5432"
environment:
- POSTGRES_DB=database1
- POSTGRES_USER=database1
- POSTGRES_PASSWORD=database1
Run Code Online (Sandbox Code Playgroud)
我知道我可以将所有.sql文件放入docker-entrypoint-initdb.d中,而postgres会自动将它们生成,但是如何声明什么.sql文件进入哪个数据库?
Tnx,汤姆
默认情况下,我的两台 ubuntu 14 机器上有 postgres 10 版本,但我在其中两台机器上安装了 postgres 9.6。
但在其中之一上 pg_config 给我:
VERSION = PostgreSQL 9.6.6
Run Code Online (Sandbox Code Playgroud)
和另一个:
VERSION = PostgreSQL 10.1
Run Code Online (Sandbox Code Playgroud)
他们在以下位置具有相同的 libpq-dev 软件包:
dpkg -l | grep libpq-dev
libpq-dev 10.1-1.pgdg14.04+1 amd64 header files for libpq5 (PostgreSQL library)
Run Code Online (Sandbox Code Playgroud)
所以我想知道是否有办法更改安装的版本,它为我提供了 postgres 9.6 而不是 postgres 10.01?也许使用 pg_config 文件?
Tnx,汤姆
更新:在仍然显示 postgres 10 的实例上,这是结果(表明它尚未安装):
ii pgdg-keyring 2017.3 all keyring for apt.postgresql.org
ii postgresql-9.6 9.6.6-1.pgdg14.04+1 amd64 object-relational SQL database, version 9.6 server
ii postgresql-client-9.6 9.6.6-1.pgdg14.04+1 amd64 front-end programs for PostgreSQL 9.6
ii postgresql-client-common 189.pgdg14.04+1 …
Run Code Online (Sandbox Code Playgroud) 我编写了一个简单的 bash 脚本来下载我的 RDS postgres 文件。但更重要的是,在终端上一切正常,但是当我在脚本中尝试相同的操作时,我收到错误:
An error occurred (DBLogFileNotFoundFault) when calling the DownloadDBLogFilePortion operation: DBLog File: "error/postgresql.log.2017-11-05-23", is not found on the DB instance
Run Code Online (Sandbox Code Playgroud)
有问题的命令是这样的:
aws rds download-db-log-file-portion --db-instance-identifier foobar --starting-token 0 --output text --log-file error/postgresql.log.2017-11-05-23 >> test.log
Run Code Online (Sandbox Code Playgroud)
一切正常,但是当我在 bash 脚本中放入完全相同的行时,我收到错误消息,没有数据库日志文件 - 这是无稽之谈,它们就在那里。
这是 bash 脚本:
download_generate_report() {
for filename in $( aws rds describe-db-log-files --db-instance-identifier $1 | awk {'print $2'} | grep $2 )
do
echo $filename
echo $1
aws rds download-db-log-file-portion --db-instance-identifier $1 --starting-token 0 --output text …
Run Code Online (Sandbox Code Playgroud) 我成功地将文件上传到谷歌存储,但我想跳过文件的创建并改用StringIO并直接在谷歌存储上创建文件。
由于我是 python 新手,我只是尝试使用我用于上传创建的文件的标准方法:
def cloud_upload(self, buffer, bucket, filename):
buffer.seek(0)
client = storage.Client()
bucket = client.get_bucket(bucket)
blob = bucket.blob(filename)
blob.upload_from_filename(buffer)
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
类型错误:预期的字符串或缓冲区
但是既然我给了它 StringIO 对象,我不知道为什么这不起作用?
我刚刚在 aws 上创建了一个新的 postgres RDS 实例(通过仪表板),我给了它一个默认用户,让我们称他为“杰克”。
当我登录到实例时,我看到我创建的用户“jack”,并且他附加了一个角色“ rds_superuser ”。(所以我认为我可以做我以前在普通 postgres 服务器上用超级用户做的同样的事情)。
我检查了文档,我发现这是不可能的。
作为默认用户“stan”登录后,我创建了一个像“stan”这样的新数据库用户,并想创建一个所有者为用户“stan”的新数据库,我不能吗?
我输入了这样的东西:
CREATE DATABASE foobar WITH OWNER = stan;
Run Code Online (Sandbox Code Playgroud)
但是我遇到了一个错误,说的是:
错误:必须是角色“stan”的成员
所以,我所做的是,将角色设置为“stan”,以默认用户“jack”的身份注销,以“stan”的身份登录到 RDS 实例,并以他为所有者创建该数据库。
由于我有三个不同的用户,我不得不重复最后一步三遍。
我的问题是,有没有办法让我在 RDS postgres 创建期间创建的默认用户“jack”能够创建新数据库(如常规 postgres 服务器安装上的超级用户)并为不同的所有者提供这样的:
CREATE DATABASE foobar WITH OWNER = stan;
Run Code Online (Sandbox Code Playgroud)
Tnx,汤姆
我在使用Rails 4中的flash消息时遇到了问题.我正在做一个月的rails,当我尝试登录页面或尝试注销时,我没有收到任何flash消息?可能是浏览器吗?
这是application.html.erb中flash消息的代码
<% flash.each do |name, msg| %>
<% content_tag(:div, msg, class: "alert alert-#{name}") %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我在ubuntu 14上,我正在使用Firefox/Chrome
Tnx,汤姆
我在 Docker 中运行一个 jar 文件(主机 macosx),在启动过程中我得到了这个堆栈跟踪:
10:42:28,101 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.undertow.listener.default: org.jboss.msc.service.StartException in service jboss.undertow.listener.default:
Could not start http listener
rating_1 | 10:42:28,401 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
rating_1 | ("subsystem" => "undertow"),
rating_1 | ("server" => "default-server"),
rating_1 | ("http-listener" => "default")
rating_1 | ]) - failure description: {"WFLYCTL0080: Failed services" => {"jboss.undertow.listener.default" => "org.jboss.msc.service.StartException in service jboss.undertow.listener.default: Could not start http listener
rating_1 …
Run Code Online (Sandbox Code Playgroud)