我正在尝试使用Capistrano部署Rails 5应用程序,但我被db:迁移步骤挂起了。
具体来说,当我的脚本尝试运行db:migrate时,会出现以下错误:
ActiveRecord::NoDatabase aseError: FATAL:角色"admin"不存在
我的数据库。生产块的yml文件如下所示:
production:
adapter: postgresql
encoding: unicode
# For details on connection pooling, see rails configuration guide
# http://guides.rubyonrails.org/configuring.html#database-pooling
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
url: <%= ENV['DATABASE_URL'] %>
我的数据库url采用以下形式:
postgresql:://mydb_user:mydbuser_pass@localhost/db_name
用mydb_user、mydbuser_pass和db_name替换为我自己的正确值。
在postgres内部,我可以在我的数据库上看到这些权限:
db_name | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/postgres + postgres=CTc/postgres + mydb_user=CTc/postgres
我认为这意味着mydb_user拥有使用我的数据库所需的权限。
现在,我在capistrano部署期间登录的用户的用户名确实是“admin”,这让我觉得我根本不了解postgres角色的某些内容。当我通过数据库url为我已经创建的特定postgres用户提供用户名和密码时,为什么我当前登录的用户与postgres连接有任何关系?这是不是说我的ubuntu用户名需要匹配mydb_用户才能登录?如何通过postgres修复特定于rails和数据库URL的错误?
愚蠢错误的典型案例。URL中没有我上面描述的两个冒号,而是
postgres://
默认情况下,rails试图以“管理员”身份连接,因为那是我登录的unix用户。解决方案,仔细检查您的postgres url格式。
prev commenter错误:数据库url的正确格式是
postgresql://[user[:password]@][netloc][:port][/dbname][?param1=value1&...]
例如:
postgresql://db_user:db_password@localhost:5432/db_name?timeout=5000&connect_timeout=5&pool=10
我正在使用postgres与docker和它有麻烦。我成功地docker-compose-build 当我在命令下面运行时,它工作得很好。psql按预期以my_username用户开始。我可以看到我的数据库,\l,\dt命令工作正常。 docker-compose exec db psql--username=my_username--dbname=my_database 苏波斯特格雷斯 crea
PSQL-D db_dev PSQL:错误:无法连接到服务器:致命:角色“root”不存在 或
psql-d db_dev PSQL:错误:无法连接到服务器:致命:角色“root”不存在 或
我是个新手。 我为Mac安装了Postgres.App。我在玩psql命令时不小心丢失了postgres数据库。我不知道里面是什么。 我目前正在编写一个教程:http://www.rosslaird.com/blog/building-a-project-with-mezzanine/ 而且我被困在 错误消息: 那么我应该采取哪些步骤呢?删除一个与psql相关的所有内容并重新安装所有内容? 谢谢你
我试图在NixOS上使用postgresql,在运行时遇到以下错误 当使用默认用户(我的用户名)简单地运行时,我会遇到类似的错误。似乎我的postgres安装没有可以用来创建其他角色或运行任何命令的角色。 我还按照本示例配置中的建议添加了postgres身份验证,因此文件的postgresql行如下所示
我无法获得任何与CreateUser一起工作的东西。