在Macbook上创建的Postgres DB的Ruby on Rails项目需要在Windows 10上访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Macbook上创建的Postgres DB的Ruby on Rails项目需要在Windows 10上访问相关的知识,希望对你有一定的参考价值。

前段时间我用postgres数据库创建了一个Ruby on Rails项目。它最初是在macbook上创建的,我在那里建立了一个可用的生产和测试环境。不幸的是,这台计算机已经死了,现在我必须继续使用我唯一拥有的机器来处理同一个项目:Windows 10笔记本电脑。

我一直在关注这些指南,在我的windows 10 pc上设置一个可行的rails环境:https://medium.com/@colinrubbert/installing-ruby-on-rails-in-windows-10-w-bash-postgresql-e48e55954fbf

https://gorails.com/setup/windows/10

我已经成功安装了bash / ubuntu。我已经成功安装了git。我已经成功安装了ruby。我已经安装了所有必备的宝石,以便我可以成功运行bundle install。当我按照两个教程的建议进入postgres时,我通过windows安装它而不是通过终端安装它。随着Postgres 9.6安装并作为Windows服务运行,我无法在终端中输入psql。我收到此错误:

psql:无法连接到服务器:没有这样的文件或目录服务器是否在本地运行并接受Unix域套接字“/var/run/postgresql/.s.PGSQL.5432”上的连接?

此外,以下是我尝试使用rake db命令执行某些操作时出现的错误:

致命:角色“xxx”不存在无法为{“adapter”=>“postgresql”,“encoding”=>“unicode”,“pool”=> 5,“database”=>“YelpClone_development”创建数据库, “host”=>“localhost”}耙子中止了! ActiveRecord :: NoDatabaseError:FATAL:角色“xxx”不存在

上面的'xxx'是我的用户名。我不确定它的用户名是来自我的旧Mac还是我的新Windows机器。我试图在rails项目中编辑database.yml,但结果相同。

this topic关于角色错误,我试图使用命令“sudo -u postgres -i”导致另一个错误:

sudo:setresuid()[1000,112,1000] - > [-1,0,-1]:操作不允许sudo:无法设置runas组向量:操作不允许sudo:无法mkdir / var / run / sudo :xxx的权限被拒绝[sudo]密码:sudo:PERM_ROOT:setresuid(0,-1,0):不允许操作xxx不在sudoers文件中。将报告此事件。

再次'xxx'是我的用户名。现在我开始怀疑所有这些东西都没有正确安装。但我不确定如何检查。我现在尝试重新安装postgres大约5-6次。任何人都可以对这个烂摊子有所了解吗?

答案

我找到了解决这个问题的方法,我想如果其他人遇到同样的问题,我会发布如何解决它:

我按照this page上的说明查看特定于WSL(Windows子系统Linux)的问题,特别是由用户leafofLegend发布的。

我遇到的主要问题是卡在第7步。我不得不将我的postgres安装降级到9.3,以便PGAdmin 3而不是4,因为它不再具有服务器配置的编辑功能。第二个问题是无法访问〜/ .bashrc文件。我试图在原子(通过终端)打开它,但每次都会显示一个空白文件。或者,如果我导航到Windows上的文件并在那里打开它,它将被损坏并且不能正确地提供给终端。您无法使用Windows工具编辑Linux文件。因此,我必须使用nano编辑器来编辑〜。/ bashrc文件,如步骤9中所述。

上面的步骤解决了大部分问题,即安装Windows的Windows与WSL终端友好。完成其余步骤后,我现在可以运行rake DB命令并创建新的dbs。

以上是关于在Macbook上创建的Postgres DB的Ruby on Rails项目需要在Windows 10上访问的主要内容,如果未能解决你的问题,请参考以下文章

sequelize db:migrate 和 postgres 的问题

text 创建新的db postgres

Postgres和MySQL创建用户并授予db权限

Flask-Sqlalchemy 使用 postgres 创建视图

Django ORM 在 Postgres DB 上留下空闲连接

sh 检查命令行上是否存在postgres DB