无法使用 rake db:create 命令创建数据库
Unable to create database with rake db:create command
我有 postgresql 服务 运行ning 但是当我 运行 rake db:create
它中止 rake 并抛出错误
ActiveRecord::NoDatabaseError: connection to server on socket "/tmp/.s.PGSQL.5432" failed: FATAL: database “chat_development" does not exist
在我的 database.yml
我有
development:
<<: *default
database: chat_development
通过 运行 宁 rake 命令它应该创建数据库但它没有。我做了很多研究并尝试了给出的解决方案,但没有任何效果。我确实检查了这个讨论 here 但是当我 运行 rm /usr/local/var/postgres/postmaster.pid
它抛出错误
rm: /usr/local/var/postgres/postmaster.pid: No such file or directory
如果我运行命令ps auxwww | grep postgres
它会显示/opt/homebrew/opt/postgresql/bin/postgres -D /opt/homebrew/var/postgres
如果我没记错的话,我在开始时(大约 4 周前)遇到了 postgres 安装问题,并且确实使用 Postgres.app 安装,然后我还安装了 brew install postgresql
(因为我正在使用 mac)。不知道是不是多次安装有冲突
但刚才我卸载了 postgres.app 和 运行 gem uninstall pg
并使用命令 gem install pg -- --with-pg-config=/usr/local/bin/pg_config
重新安装(参考 here)
问题依然存在。我不知道该怎么办了。很高兴有人能提供帮助。谢谢!
为了解决这个问题,您需要以 step-by-step 的方式取得进展。
- 运行 postgresql 服务器
- 测试使用像 psql 这样的简单客户端创建示例数据库,它应该显示服务器是否 运行 并且您是否拥有正确的 socket/port 连接和用户凭据授权
- 检查您的应用程序配置以查看您是否具有正确的连接和用户凭据设置
遇到过这个问题,但从未完全弄明白为什么 rails 会这样做,但下面应该可以解决它。
- 在终端
psql template1
CREATE USER <username from config/database.yml if specified> with password '<password from config/database.yml if specified>';
ALTER USER <username ...> WITH SUPERUSER;
CREATE DATABASE chat_development WITH OWNER = '<username ...>';
CREATE DATABASE chat_test WITH OWNER = '<username ...>';
您不需要第 2/3 步或 WITH OWNER = '<username>';
,除非您在 config/database.yml
中指定 user/password。
一些常见的错误,注意我放单引号的地方,别忘了semi-colons!
我有 postgresql 服务 运行ning 但是当我 运行 rake db:create
它中止 rake 并抛出错误
ActiveRecord::NoDatabaseError: connection to server on socket "/tmp/.s.PGSQL.5432" failed: FATAL: database “chat_development" does not exist
在我的 database.yml
我有
development:
<<: *default
database: chat_development
通过 运行 宁 rake 命令它应该创建数据库但它没有。我做了很多研究并尝试了给出的解决方案,但没有任何效果。我确实检查了这个讨论 here 但是当我 运行 rm /usr/local/var/postgres/postmaster.pid
它抛出错误
rm: /usr/local/var/postgres/postmaster.pid: No such file or directory
如果我运行命令ps auxwww | grep postgres
它会显示/opt/homebrew/opt/postgresql/bin/postgres -D /opt/homebrew/var/postgres
如果我没记错的话,我在开始时(大约 4 周前)遇到了 postgres 安装问题,并且确实使用 Postgres.app 安装,然后我还安装了 brew install postgresql
(因为我正在使用 mac)。不知道是不是多次安装有冲突
但刚才我卸载了 postgres.app 和 运行 gem uninstall pg
并使用命令 gem install pg -- --with-pg-config=/usr/local/bin/pg_config
重新安装(参考 here)
问题依然存在。我不知道该怎么办了。很高兴有人能提供帮助。谢谢!
为了解决这个问题,您需要以 step-by-step 的方式取得进展。
- 运行 postgresql 服务器
- 测试使用像 psql 这样的简单客户端创建示例数据库,它应该显示服务器是否 运行 并且您是否拥有正确的 socket/port 连接和用户凭据授权
- 检查您的应用程序配置以查看您是否具有正确的连接和用户凭据设置
遇到过这个问题,但从未完全弄明白为什么 rails 会这样做,但下面应该可以解决它。
- 在终端
psql template1
CREATE USER <username from config/database.yml if specified> with password '<password from config/database.yml if specified>';
ALTER USER <username ...> WITH SUPERUSER;
CREATE DATABASE chat_development WITH OWNER = '<username ...>';
CREATE DATABASE chat_test WITH OWNER = '<username ...>';
您不需要第 2/3 步或 WITH OWNER = '<username>';
,除非您在 config/database.yml
中指定 user/password。
一些常见的错误,注意我放单引号的地方,别忘了semi-colons!