繁体   English   中英

在外壳程序脚本中使用psql创建数据库以用户名作为数据库名称

create database using psql in shell script takes username as db name

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

以下是我用于在Shell脚本中创建数据库的命令

psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" \
            -c "CREATE DATABASE $database;"

引发错误

FATAL:  database "POSTGRES_USER" does not exist

如果我打印$ database和$ POSTGRES_USER,它们显示正确的值,但是当此命令由于某种原因运行时,用户名将作为数据库名称传递。

任何线索,我可能会错过什么?

======

function create_db() {
    local database=$1
    local query_databases="select datname from pg_database;"
    local databases=$(echo "$query_databases" | psql -Aqt)
//this do not return any database but I have one db
    database_exist=$(containsElement "$databases" "$database")
    echo $database_exist;

    if [[ "$database_exist" == 1 ]]; then
        echo "Database '$database' exists. Skipping."
    else
        echo "Create Database '$database'"
        psql -v ON_ERROR_STOP=1 --username=$POSTGRES_USER \
             -c "CREATE DATABASE $database;"
    fi

}

-https://github.com/mrts/docker-postgresql-multiple-databases/pull/10/files获取参考

2 个回复

您需要删除"的命令。

psql -v ON_ERROR_STOP=1 --username $POSTGRES_USER -c "CREATE DATABASE $database;"

您没有正确使用psql终端 使用长格式的选项时,需要在选项及其值之间使用=号。 同样也不需要双引号。

考虑:

psql -v ON_ERROR_STOP=1 --username=$POSTGRES_USER \
        -c "CREATE DATABASE $database;"
2 shell脚本传递到psql?

我是Shell脚本命令的新手。 我想将参数中的值传递到Psql脚本中。 我已经使用此链接作为示例,但是效果不好。 http://www.thegeekstuff.com/2010/03/how-to-execute-postgresql-commands-inside-unix-she ...

3 Shell脚本中的psql循环

我需要从file.csv 2值中读取,然后在PostgreSQL中进行13.000个以上的查询。 正如您在上面的代码中看到的那样,这应该是一个非常简单的任务,但是存在一些问题。 代码执行时出现错误: 我如何处理多个查询并在进行另一个查询之前关闭每个查询中的连接,到目前 ...

4 在Shell脚本中添加psql

我有这段代码$(echo "psql -U postgres -d mydb -c "SELECT * FROM table_name;" " | ssh $REMOTE_IP) 我需要在远程主机中运行该查询,但是我无法在回显中应用查询部分 有什么帮助吗? ...

6 psql shell 中 username-# 和 username=# 的区别?

一旦您在终端中输入psql ,用户通常以username=#的形式出现在控制台中。 但后来我注意到它说username-#等号被一个连字符替换,但它似乎仍然以相同的方式执行。 我知道这是一个简单的问题,但我仍然想知道。 符号的这种变化有什么特别的意义吗? ...

7 需要使用unix shell脚本连接DB2数据库

需要使用unix shell脚本连接到DB2数据库我正在使用QMF工具每次都运行DB2查询。 现在我需要通过shell脚本来连接它。 DSN名称--GM2P数据库名称-DPPRICMG表名称-项目任何帮助和建议,将不胜感激。 谁能尽快回答这个问题。 谢谢 ...

2012-07-09 16:32:28 1 13002   unix/ db2
8 psql:严重:数据库“ db_name”当前不接受连接

我在Postgres 9.3.5数据库上运行了Rails应用程序。 在我的开发环境中,它已经启动并运行了一段时间。 今天,我进行了Rails迁移,然后尝试运行rake db:reset时收到错误消息: 现在,这是我尝试运行任何psql或rake db任务时的唯一响应。 例如: ...

10 用户名在psql命令中被视为数据库?

这个问题类似于在外壳程序脚本中使用psql创建数据库以用户名作为db name ,但是由于没有可接受的答案,因此我在这里再次询问。 我用用户名myuser和密码mypassword创建了一个用户: 但是,如果我执行psql --username=myuser ,则会收到错误消息,指出d ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM